🙏 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. 🤗

Machbarkeitsfrage: automatischer Etikettendruck

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
christian
Beiträge: 12
Registriert: Mo 15. Nov 2010, 12:33

Machbarkeitsfrage: automatischer Etikettendruck

Beitrag von christian » Do 12. Jan 2012, 17:34

Hallo zusammen, ich benutze libreoffice hauptsächlich als Formular-Frontend für MySQL-Datenbanken und bin immer wieder erstaunt was damit alles (trotz einiger Schwierigkeiten) möglich ist.

Ich bin gerade dabei eine art "Produktionsplanung" zu erstellen, bei der zu jedem Auftrag ein Etikett gedruckt werden muss. Ich stelle mir das dann in etwa so vor:

1. Ein Datensatz wird aus einer Tabelle ausgewählt und der Button "Etikett drucken" wird angeklickt.

2. Im Hintergrund wird ein neues Writer-Dokument (basierend auf einer Vorlage) geladen und mit den Feldern der Datenbank erstellt und automatisch gedruckt.

-> hier sehe ich momentan die Schwierigkeit


3. Etikett wird wieder geschlossen und das ursprüngliche Formular wird angezeigt.

Hat jemand von Euch schonmal sowas (ähnliches) umgesetzt, bzw könnt ihr mir sagen ob sowas generell machbar ist? Könnt Ihr mir Tips geben wurüber ich mich hier einlesen muss (zur Erstellung der Etiketten o.ä.)?

Vielen Dank im Voraus.

Benutzeravatar
hwoehrle
Beiträge: 18
Registriert: Di 3. Jan 2012, 08:56

Re: Machbarkeitsfrage: automatischer Etikettendruck

Beitrag von hwoehrle » Fr 13. Jan 2012, 11:26

Hallo Christian,

denke für den Ausdruck solltest du am ehesten der Report Buidler verwenden. Damit nur ein Datensatz ausgedruckt wird, würde ich eine entsprechende Abfrage erstellen, dann mit rechter Maustaste auf den Abfragenamen, "Als Ansicht erstellen" als Pseudo-Tabelle erstellen. Diese kannst du als Datenbasis für deinen Bericht verwenden.

Das automatische Drucken und Schliessen müßte sich über Makros dann auch entsprechend lösen lassen. Da stecke ich aber zu wenig drin, um auf die schnelle eine Lösung bieten zu können.

VG
Heiko

christian
Beiträge: 12
Registriert: Mo 15. Nov 2010, 12:33

Re: Machbarkeitsfrage: automatischer Etikettendruck

Beitrag von christian » Fr 13. Jan 2012, 14:21

Hallo Heiko,

Danke für den Vorschlag. Ich habe heute eine Möglichkeit gefunden das ganze über die Serienbrief-Funktion sehr einfach und effektiv zu realisieren. Ich beschreibe das mal für alle die vor der gleichen Herausforderung stehen. Habe mir zuerst über "Datei->Neu->Etiketten", meine Etikettenvorlage erstellt und die Datenbank-felder per Drag and Drop and die richtige Position gesetzt. Diese Vorlage habe ich als Vorlagendatei (.ott) abgespeichert.

Aus meinem Formular-Dokument starte ich dann folgendes Makro durch Klick auf einen bestimmten Button:
SUB AutoDruck

Dim oMailMerge as Object

id = 1 'aktueller ID-Wert muss ausgelesen werden über drawpage.forms...

oMailMerge = createunoservice("com.sun.star.text.MailMerge")
oMailMerge.DataSourceName = "pst"
oMailMerge.DocumentURL = ConvertToUrl("C:\makrotest\test.ott")
oMailMerge.CommandType = 0
oMailMerge.Command = "pst.vorgaenge"
oMailMerge.Filter = "pst.vorgaenge.id = " & id 'filter für aktuellen Datensatz
oMailMerge.OutputType = 1
' oMailMerge.OutputUrl = ConvertToUrl("C:\Test\")
' oMailMerge.SaveAsSingleFile = True
oMailMerge.SinglePrintJobs = False
'*****************************************************************
Dim myPrinter(0) as new com.sun.star.beans.PropertyValue
myPrinter(0).Name = "Name"
myPrinter(0).Value = "Adobe PDF"
oMailMerge.Model.setPrinter(myPrinter)
'*****************************************************************
' oMailMerge.Model.Printer(0).Value= "FreePDF XP"
' oMailMerge.Model.Printer(0).Value = "KONICA MINOLTA 362/282/222 PS"
' oMailMerge.FileNameFromColumn = True
' oMailMerge.Filenameprefix = "Dateiname"
Dim MyProps() as Object
oMailMerge.execute(MyProps())

END SUB
Das Dokument muss weder geöffnet, noch geschlossen werden. Alles passiert im hintergrund - nur der Druckjob wird ausgelöst. Perfekt :-)

Vielen Dank und ein schönes Wochenende,
Christian


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