Tabelle mehrfach ausdrucken

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Tabelle mehrfach ausdrucken

Re: Tabelle mehrfach ausdrucken

von Basitsch » Do, 19.06.2008 07:36

Hallo,

danke für die weiteren Beiträge.

Onprint scheint beim Anfordern eines Druckvorganges ausgelöst zu werden und ist daher ein etwas anderes Thema.

Das Argument Wait auf true zu setzen, hat nichts gebracht.

grüsse
Hannes

Re: Tabelle mehrfach ausdrucken

von Stephan » Mi, 18.06.2008 14:27

Ob es ein exaktes ereignisgesteuertes Verfahren gibt, würde mich aber immer noch interessieren
ergänze einen Parameter:

Code: Alles auswählen

args1(2).Name = "Wait"
args1(2).Value = true

Gruß
Stephan

Re: Tabelle mehrfach ausdrucken

von Basitsch » Mi, 18.06.2008 13:35

Hallo Rainer,

danke für den Hinweis. Dein Vorschlag funktioniert.

Ob es ein exaktes ereignisgesteuertes Verfahren gibt, würde mich aber immer noch interessieren. Darum lasse ich den Thread noch offen.

grüsse,
Hannes

Tabelle mehrfach ausdrucken

von Basitsch » Di, 17.06.2008 13:35

Hallo,

bin erst einen halben Tag mit Staroffice Basic beschäftigt und brauche enscheinend Hilfe von Menschen mit mehr Erfahrung.

In SO Calc habe ich eine Namensliste und in Formularblatt.
Das Formularblatt will ich für jeden vorhandenen Namen der Liste ausdrucken lassen.

Der folgende Versuch macht das nur für den ersten Eintrag. Die Testzeile funktioniert aber für jeden Eintrag.

Code: Alles auswählen

Rem Attribute VBA_ModuleType=VBADocumentModule
Option VBASupport 1
Sub Formulare_Drucken
' ThisComponent.Sheets.getbyName("Test").getCellRangebyName("B1").String = "Hallo" '  OK

Dim i          as integer
Dim j          as integer
dim Person     as string
dim Frame1     as object
dim dispatcher as object
dim weeksheet  as object
dim listsheet  as object
dim args1(1)   as new     com.sun.star.beans.PropertyValue

Frame1 = ThisComponent.CurrentController.Frame
WeekSheet = ThisComponent.Sheets.getByName("Wochenblatt")
ListSheet = ThisComponent.Sheets.getByName("Namensliste")
ThisComponent.CurrentController.setActiveSheet(WeekSheet)
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
args1(0).Name = "Copies"
args1(0).Value = 1
args1(1).Name = "Collate"
args1(1).Value = false

j = 0
for i = 10 to 111 ' Zellen zählen von 0 an
   Person =  ThisComponent.Sheets.getbyName("Namensliste").getCellByPosition(0,i).String
   if Person <> "" then
      ThisComponent.Sheets.getbyName("Test").getCellByPosition(0,j).String =  Person '  OK
      ThisComponent.Sheets.getbyName("Wochenblatt").getCellByPosition(4,1).String =  Person ' Test OK
      dispatcher.executeDispatch(Frame1, ".uno:PrintDefault", "", 0, Args1()) ' Nur für 1. Person gedruckt
      j = j + 1  
   end if   
next i

ThisComponent.CurrentController.setActiveSheet(ListSheet)

End Sub
Anscheinend brauche ich einen anderen _Druckbefehl, der synchron funktioniert, oder eine Möglichkeit auf die Aufnahmebereitschaft des Druckbefehls zu warten.

Habe SO 8 auf xp professional sp2.

Wäre für jeden Hinweis dankbar und
grüsse,

Hannes

Nach oben