von Leibundgut » Do, 23.04.2009 14:07
Hallo
So jetzt haben wirs >>>>>>> FAST<<<<<<<< geschafft!!
Der Code funktioniert : (leider nicht sauber Programmiert!!)
Hier der Code
Code: Alles auswählen
Sub Druck_PDF
oCalc = thisComponent
oSheet = oCalc.sheets().getByName("Berechnung")'Tabellennamen anpassen
Filename = oSheet.getCellRangeByName("E1").string 'Zellinhalt auslesen für Dateinamen
myView = oCalc.CurrentController
myView.setActiveSheet(oSheet)
oZellRange = oSheet.getCellRangeByName("$A$1:$F$59")'Bereich anpassen
oCursor = oSheet.createCursorByRange(oZellRange)
oAdress = oCursor.RangeAddress
Dim aDruckbereich(0)
aDruckbereich(0) = oAdress
oSheet.setPrintAreas(aDruckbereich())
Dim myProps(0) as New com.sun.star.beans.PropertyValue
sUrl= "file:///P:/Geschäft/Kalk/" & Filename & ".pdf" 'Speicherort anpassen
myProps(0).Name="FilterName"
myProps(0).Value = "calc_pdf_Export"
oCalc.storetoUrl(sUrl,myProps())
oSheet.setprintareas(Array())'Druckbereich löschen
End Sub
Sub GotoSheet( nameRef as String )
oDocument = ThisComponent
oView = oDocument.CurrentController
oSheet = oDocument.Sheets.getByName( nameRef )
oView.setActiveSheet( oSheet )
End Sub
REM ***** BASIC *****
Sub GotoSheet2
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "aTableName"
args1(0).Value = "Berechnung"
dispatcher.executeDispatch(document, ".uno:Show", "", 0, args1())
GotoSheet( "Berechnung" )
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PrintDefault", "", 0, Array())
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "aTableName"
args3(0).Value = "Berechnung"
dispatcher.executeDispatch(document, ".uno:Hide", "", 0, args3())
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Nr"
args4(0).Value = 1
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args4())
End Sub
Sub Druck1_PDF
oCalc = thisComponent
oSheet = oCalc.sheets().getByName("BST_FO")'Tabellennamen anpassen
Filename = oSheet.getCellRangeByName("F5").string 'Zellinhalt auslesen für Dateinamen
myView = oCalc.CurrentController
myView.setActiveSheet(oSheet)
oZellRange = oSheet.getCellRangeByName("$A$1:$AY$38")'Bereich anpassen
oCursor = oSheet.createCursorByRange(oZellRange)
oAdress = oCursor.RangeAddress
Dim aDruckbereich(0)
aDruckbereich(0) = oAdress
oSheet.setPrintAreas(aDruckbereich())
Dim myProps(0) as New com.sun.star.beans.PropertyValue
sUrl= "file:///P:/Geschäft/Best/" & Filename & ".pdf" 'Speicherort anpassen
myProps(0).Name="FilterName"
myProps(0).Value = "calc_pdf_Export"
oCalc.storetoUrl(sUrl,myProps())
oSheet.setprintareas(Array())'Druckbereich löschen
End Sub
Sub GotoSheet3( nameRef as String )
oDocument = ThisComponent
oView = oDocument.CurrentController
oSheet = oDocument.Sheets.getByName( nameRef )
oView.setActiveSheet( oSheet )
End Sub
REM ***** BASIC *****
Sub GotoSheet4
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "aTableName"
args1(0).Value = "BST_FO"
dispatcher.executeDispatch(document, ".uno:Show", "", 0, args1())
GotoSheet( "BST_FO" )
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PrintDefault", "", 0, Array())
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "aTableName"
args3(0).Value = "BST_FO"
dispatcher.executeDispatch(document, ".uno:Hide", "", 0, args3())
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Nr"
args4(0).Value = 1
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args4())
End Sub
Tja eben nur fast !!
Wenn wir die Datei als VORLAGE (.OTS) abspeichere (schreibgeschützt) funktioniert das Pdf machen!! Jedoch der Drucker druckt nur die sichtbare Tabelle!!
WIESO??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
Hat DDDDAAAAAA jemand einen kleinen Hinweis?
Danke für Eure Hilfe
Gruss Mathias
Hallo
So jetzt haben wirs >>>>>>> FAST<<<<<<<< geschafft!!
Der Code funktioniert : (leider nicht sauber Programmiert!!)
Hier der Code
[code]Sub Druck_PDF
oCalc = thisComponent
oSheet = oCalc.sheets().getByName("Berechnung")'Tabellennamen anpassen
Filename = oSheet.getCellRangeByName("E1").string 'Zellinhalt auslesen für Dateinamen
myView = oCalc.CurrentController
myView.setActiveSheet(oSheet)
oZellRange = oSheet.getCellRangeByName("$A$1:$F$59")'Bereich anpassen
oCursor = oSheet.createCursorByRange(oZellRange)
oAdress = oCursor.RangeAddress
Dim aDruckbereich(0)
aDruckbereich(0) = oAdress
oSheet.setPrintAreas(aDruckbereich())
Dim myProps(0) as New com.sun.star.beans.PropertyValue
sUrl= "file:///P:/Geschäft/Kalk/" & Filename & ".pdf" 'Speicherort anpassen
myProps(0).Name="FilterName"
myProps(0).Value = "calc_pdf_Export"
oCalc.storetoUrl(sUrl,myProps())
oSheet.setprintareas(Array())'Druckbereich löschen
End Sub
Sub GotoSheet( nameRef as String )
oDocument = ThisComponent
oView = oDocument.CurrentController
oSheet = oDocument.Sheets.getByName( nameRef )
oView.setActiveSheet( oSheet )
End Sub
REM ***** BASIC *****
Sub GotoSheet2
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "aTableName"
args1(0).Value = "Berechnung"
dispatcher.executeDispatch(document, ".uno:Show", "", 0, args1())
GotoSheet( "Berechnung" )
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PrintDefault", "", 0, Array())
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "aTableName"
args3(0).Value = "Berechnung"
dispatcher.executeDispatch(document, ".uno:Hide", "", 0, args3())
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Nr"
args4(0).Value = 1
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args4())
End Sub
Sub Druck1_PDF
oCalc = thisComponent
oSheet = oCalc.sheets().getByName("BST_FO")'Tabellennamen anpassen
Filename = oSheet.getCellRangeByName("F5").string 'Zellinhalt auslesen für Dateinamen
myView = oCalc.CurrentController
myView.setActiveSheet(oSheet)
oZellRange = oSheet.getCellRangeByName("$A$1:$AY$38")'Bereich anpassen
oCursor = oSheet.createCursorByRange(oZellRange)
oAdress = oCursor.RangeAddress
Dim aDruckbereich(0)
aDruckbereich(0) = oAdress
oSheet.setPrintAreas(aDruckbereich())
Dim myProps(0) as New com.sun.star.beans.PropertyValue
sUrl= "file:///P:/Geschäft/Best/" & Filename & ".pdf" 'Speicherort anpassen
myProps(0).Name="FilterName"
myProps(0).Value = "calc_pdf_Export"
oCalc.storetoUrl(sUrl,myProps())
oSheet.setprintareas(Array())'Druckbereich löschen
End Sub
Sub GotoSheet3( nameRef as String )
oDocument = ThisComponent
oView = oDocument.CurrentController
oSheet = oDocument.Sheets.getByName( nameRef )
oView.setActiveSheet( oSheet )
End Sub
REM ***** BASIC *****
Sub GotoSheet4
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "aTableName"
args1(0).Value = "BST_FO"
dispatcher.executeDispatch(document, ".uno:Show", "", 0, args1())
GotoSheet( "BST_FO" )
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PrintDefault", "", 0, Array())
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "aTableName"
args3(0).Value = "BST_FO"
dispatcher.executeDispatch(document, ".uno:Hide", "", 0, args3())
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Nr"
args4(0).Value = 1
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args4())
End Sub[/code]
Tja eben nur fast !!
Wenn wir die Datei als VORLAGE (.OTS) abspeichere (schreibgeschützt) funktioniert das Pdf machen!! Jedoch der Drucker druckt nur die sichtbare Tabelle!!
WIESO??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
Hat DDDDAAAAAA jemand einen kleinen Hinweis?
Danke für Eure Hilfe
Gruss Mathias