Druckvorschau
Verfasst: Mi, 03.01.2007 15:48
Hallo,
dies ist meine erste Anfrage hier im Forum.
Ich hoffe, ich halte die Regeln ein...
Ich bin dabei, eine VBA-Anwendung in Starbasic um zu schreiben.
Ich möchte u.a. über einen selbst programmierten Button in die Druckvorschau (Seitenansicht) gelangen.
Die scheint in Starbasic nicht ohne weiteres möglich zu sein, da irgendwie die Makros "verloren" gehen.
Mit folgendem Code (aus OOoForum.org) klappt es:
Allerdings wird hier zunächst eine neue Datei erzeugt, dies ist nicht in meinem Sinne.
Wenn ich die Zeile:
durch
ersetze, komme ich zwar auch in die Seitenansicht, aber irgendetwas geht nebenbei den Bach runter. In der IDE bin ich plötzlich in "Meine Makros" und der ursprüngliche Quellcode ist verschwunden.
In VBA mache ich das übrigens mit .PrintPreview .
Würde mich freuen, wenn mir jemand weiter helfen könnte.
Ciao
Thomas
dies ist meine erste Anfrage hier im Forum.
Ich hoffe, ich halte die Regeln ein...
Ich bin dabei, eine VBA-Anwendung in Starbasic um zu schreiben.
Ich möchte u.a. über einen selbst programmierten Button in die Druckvorschau (Seitenansicht) gelangen.
Die scheint in Starbasic nicht ohne weiteres möglich zu sein, da irgendwie die Makros "verloren" gehen.
Mit folgendem Code (aus OOoForum.org) klappt es:
Code: Alles auswählen
Sub Main
' Create new empty spreadsheet.
' Get document model, controller, and frame.
oDoc = StarDesktop.loadComponentFromURL( "private:factory/scalc", "_blank", 0, Array() )
oDocCtrl = oDoc.getCurrentController()
oDocFrame = oDocCtrl.getFrame()
' Put some stuff into the spreadsheet to preview
' so we have something to look at.
PutInSomeStuff( oDoc )
' Now preview the spreadsheet..
oDispatcher = createUnoService( "com.sun.star.frame.DispatchHelper" )
oDispatcher.executeDispatch( oDocFrame, ".uno:PrintPreview", "", 0, Array() )
End Sub
Sub PutInSomeStuff( oDoc )
' Get first sheet.
oSheet = oDoc.getSheets().getByIndex( 0 )
' Load it with something interesting to look at.
oSheet.getCellRangeByName( "A1" ).setString( "Month" )
oSheet.getCellRangeByName( "B1" ).setString( "Sales" )
oSheet.getCellRangeByName( "A2" ).setString( "Jan" )
oSheet.getCellRangeByName( "A3" ).setString( "Feb" )
oSheet.getCellRangeByName( "A4" ).setString( "Mar" )
oSheet.getCellRangeByName( "A5" ).setString( "Apr" )
oSheet.getCellRangeByName( "A6" ).setString( "May" )
oSheet.getCellRangeByName( "A7" ).setString( "Jun" )
oSheet.getCellRangeByName( "B2" ).setValue( 4509.23 )
oSheet.getCellRangeByName( "B3" ).setValue( 3705.45 )
oSheet.getCellRangeByName( "B4" ).setValue( 2941.20 )
oSheet.getCellRangeByName( "B5" ).setValue( 2132.11 )
oSheet.getCellRangeByName( "B6" ).setValue( 1445.34 )
oSheet.getCellRangeByName( "B7" ).setValue( 937.31 )
' Format some cells as currency.
' For a date formatting example, or other calc examples in general
' see this....
' http://www.oooforum.org/forum/viewtopic.php?t=4996
oFormats = oDoc.getNumberFormats()
oLocale = createUnoStruct( "com.sun.star.lang.Locale" )
nNumKey = oFormats.getStandardFormat( com.sun.star.util.NumberFormat.CURRENCY, oLocale )
oCell = oSheet.getCellRangeByName( "B2:B7" )
oCell.NumberFormat = nNumKey
End Sub
Wenn ich die Zeile:
Code: Alles auswählen
oDoc = StarDesktop.loadComponentFromURL( "private:factory/scalc", "_blank", 0, Array() )
Code: Alles auswählen
oDoc = ThisComponent
In VBA mache ich das übrigens mit .PrintPreview .
Würde mich freuen, wenn mir jemand weiter helfen könnte.
Ciao
Thomas