🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Button drucken

Alles zur Programmierung im LibreOffice.
Picco
Beiträge: 31
Registriert: Do 23. Jan 2014, 15:45

Button drucken

Beitrag von Picco » Do 4. Dez 2014, 13:27

Hallo, suche ein Skript in LO Basic oder Python mit dem ich ein Tabellenblatt per Button drucken kann.

Beispiel aus VBA:

Code: Alles auswählen

Private Sub Etikett_drucken_Click() 
	Sheets("Etikett drucken").Range("A1:R45").PrintOut
End Sub 

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: Button drucken

Beitrag von karolus » Do 4. Dez 2014, 14:25

LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Picco
Beiträge: 31
Registriert: Do 23. Jan 2014, 15:45

Re: Button drucken

Beitrag von Picco » Do 4. Dez 2014, 15:49

Danke, aber ich glaube wir reden aneinander vorbei.

Ich suche einen simplen Befehl der (per Button) den Druck einer bestimmten Tabelle auswirft. Das müsste doch einfach in LO Basic machbar sein, oder nicht?

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: Button drucken

Beitrag von karolus » Do 4. Dez 2014, 16:52

Hallo

Ok, dann helfe ich dir bei der Suche:
http://www.de.openoffice.info/search.ph ... bmit=Suche
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Picco
Beiträge: 31
Registriert: Do 23. Jan 2014, 15:45

Re: Button drucken

Beitrag von Picco » Do 4. Dez 2014, 17:01

Ich schau mal ob ich etwas finde, hab aber schon ein Makro zusammengebastelt. Problem ist nur, Daten werden (augenscheinlich) an den Drucker gesendet, nur dort kommt nichts raus. Weiß nicht warum. Hier soll die zweite Tabelle gedruckt werden.

Code: Alles auswählen

sub Etikett_drucken_Click
	dim document as object
	document = ThisComponent

	DIM PrintProps(0) AS NEW com.sun.star.beans.PropertyValue 
		PrintProps(0).Name = "Nr"
		PrintProps(0).Value = "2"

	document.print(PrintProps())
end sub

Picco
Beiträge: 31
Registriert: Do 23. Jan 2014, 15:45

Re: Button drucken

Beitrag von Picco » Do 4. Dez 2014, 17:07

Okay, damit scheint es nun zu funktionieren. Danke wieder mal für die Hilfe, kann geschlossen werden! :)

Code: Alles auswählen

sub A4_drucken

    dim printProp() as new com.sun.star.beans.PropertyValue
    ocontroller = thiscomponent.currentcontroller
    ocurrentsheet = ocontroller.activesheet
    osheet = Thiscomponent.sheets.getbyname("A4 drucken")
    ocontroller.activesheet = osheet
    thiscomponent.print(printProp)
    wait 1000
    ocontroller.activesheet = ocurrentsheet    

   
end sub

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: Button drucken

Beitrag von karolus » Do 4. Dez 2014, 17:09

Hallo

Vielleicht so: ( Tabellenname und Druckbereich aus deinem VBA-beispiel. )

Code: Alles auswählen

from com.sun.star.beans import PropertyValue

def setandprint(*_):
    doc = XSCRIPTCONTEXT.getDocument()
    sheet = doc.Sheets.getByName("Etikett drucken")
    printrange = sheet.getCellRangeByName("A1:R45")
    sheet.setPrintAreas((printrange.RangeAddress,))
    printprop = PropertyValue()
    printprop.Name = 'Wait'
    printprop.Value = True
    doc.print((printprop,))
 
Nach Basic musst du dir das selber übersetzen, dafür bin ich nicht qualifiziert :|

Karolus
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Picco
Beiträge: 31
Registriert: Do 23. Jan 2014, 15:45

Re: Button drucken

Beitrag von Picco » Fr 5. Dez 2014, 11:09

Okay, damit hab ich nun auch die gewollte Range in meinem Makro. Ein Schritt weiter zu der vollkommenen Lösung.

Nun müsste ich noch einen Weg finden, wie ich die Range (die in einer Zelle der Tabelle steht) auslesen kann, sodass das Makro nur diesen Bereich druckt. Habe der Zelle den Namen "DruckbereichA4" gegeben, aber im Makro nimmt er nicht den Wert der Zelle, sondern den Inhalt an >> printrange = osheet.getcellrangebyname("DruckbereichA4") <<

Damit wird diese Zelle gedruckt (ein Zettel mit den Worten A14:D64 kommt raus), anstatt dass das Makro den Wert heranzieht und den Bereich A14:D64 druckt. Auch wenn ich den Namen als Druckbereich definiere hat es keinen Effekt.

*edit: Zur Erklärung: In der Zelle 'A4 drucken'.AG1 steht der Druckbereich drinnen, der sich automatisch generiert. Zum Beispiel enthält die Zelle den Wert A14:D64 oder A14:D110 oder ähnliches. Auf diesen Inhalt müsste ich im Makro zugreifen können.

Code: Alles auswählen

sub A4_drucken_click
    dim printProp() as new com.sun.star.beans.PropertyValue
    ocontroller = thiscomponent.currentcontroller
    ocurrentsheet = ocontroller.activesheet
    osheet = Thiscomponent.sheets.getbyname("A4 drucken")
    printrange = osheet.getcellrangebyname("DruckbereichA4")
    
	oCursor = oSheet.createCursorByRange(printrange)
	oAdress = oCursor.RangeAddress
	
	Dim aDruckbereich(0)
	aDruckbereich(0) = oAdress
    osheet.setPrintAreas(aDruckbereich())
    
    ocontroller.activesheet = osheet
    thiscomponent.print(printProp)
    wait 1000
    ocontroller.activesheet = ocurrentsheet
        
    MsgBox("Seiten werden gedruckt.",64,"Etiketten-Tool")  
end sub

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: Button drucken

Beitrag von karolus » Fr 5. Dez 2014, 12:55

Hallo

Code: Alles auswählen


    argcell = osheet.getcellrangebyname("DruckbereichA4")
    printrange = osheet.getcellrangebyname( argcell.String )  
die Übergabe an oCursor kannst du dir schenken, printrange.RangeAddress ist identisch mit oCursor.RangeAddress.
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Picco
Beiträge: 31
Registriert: Do 23. Jan 2014, 15:45

Re: Button drucken

Beitrag von Picco » Fr 5. Dez 2014, 13:05

Danke! Das hatte ich vorher so ähnlich schon drinnen, hat aber nicht funktioniert. So wie von dir geschrieben geht's.

Mein Problem mit dem variablen Druckbereich löst das leider nicht. :/


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten