Seltsames Druckverhalten

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Seltsames Druckverhalten

Beitrag von ykcim »

Hallo,

ich habe in einem anderen Forum jemanden helfen wollen und bin dabei auf ein erstmal ein Problem gestoßen.
Folgendes Makro soll eine Calc-Blatt drucken. Insgesamt vier mal, wobei die letzten drei Ausdrucke einen anderen Inhalt in einem Feld haben. Eigentlich einfach. Aber die Kopien werden bei mir nur gedruckt wenn ich eine Messagebox vorschalte. Ansonsten kommt nur die erste Seite.

Code: Alles auswählen

sub kopiendrucken
     mydoc=thiscomponent
     Dim printProp(1) as New com.sun.star.beans.PropertyValue
     printProp(0).Name = "CopyCount"
     printProp(0).Value = 1
     myDoc.Print(printProp())
     mySheet = myDoc.sheets(0)
     mycell = mysheet.getCellRangeByName("$A$1")
     mycell.string = "Rechnungskopie"
     printProp(0).Name = "CopyCount"
     printProp(0).Value = 3
     msgbox("Kopien werden gedruckt")
     myDoc.Print(printProp())
end sub
Kann das jemand bestätigen?

mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Ja, kann ich (2.0.2 unter Win2k)

Ein:

Code: Alles auswählen

Wait 1000
hilft statt der Msg-Box.

Meine Erklärung ist etwas wage, aber gehe davon aus das der Drucker wohl einen kurzen Moment braucht den Druckauftrag anzunehmen und in dieser Zeit keine Befehle entgegennimmt. Ich glaube aber nicht mal das es sich um die Zeit zum 'spoolen' handelt ohne es überprüft zu haben.

Naja, abenteuerliche Begründung.

die IDL-Referenz sagt bzgl. der Wait-Eigenschaft(s.u.):
"...
@attention Using of this property with TRUE as value is highly reommended. Otherwhise following actions (as e.g. closing the corresponding model) can fail.
..."


Lösung ist:

Code: Alles auswählen

sub kopiendrucken 
     mydoc=thiscomponent 
     Dim printProp(1) as New com.sun.star.beans.PropertyValue 
     printProp(0).Name = "CopyCount" 
     printProp(0).Value = 1 
     printProp(1).Name = "Wait" 
     printProp(1).Value = True 
     myDoc.Print(printProp()) 
     mySheet = myDoc.sheets(0) 
     mycell = mysheet.getCellRangeByName("$A$1") 
     mycell.string = "Rechnungskopie" 
     printProp(0).Name = "CopyCount" 
     printProp(0).Value = 3 
     'msgbox("Kopien werden gedruckt") 
     myDoc.Print(printProp()) 
end sub


Gruß
Stephan
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

Ich glaube ich sollte mal Urlaub machen.
Den Bug habe ich schon selber mal entdeckt:

http://www.starbasicfaq.de/Warumwirdder ... fhrt..html

mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

ykcim hat geschrieben:Ich glaube ich sollte mal Urlaub machen.
Den Bug habe ich schon selber mal entdeckt:

http://www.starbasicfaq.de/Warumwirdder ... fhrt..html
:D

Ich habe es aus Pitonyak's Buch Seite 258.


Gruß
Jörg
Antworten