❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ 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. 🤗

[gelöst] Mit Mailmerge Dateien ausdrucken und gleichzeitig speichern

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Acco
Beiträge: 94
Registriert: Fr 31. Jan 2014, 16:41

[gelöst] Mit Mailmerge Dateien ausdrucken und gleichzeitig speichern

Beitrag von Acco » Di 7. Mär 2017, 13:36

Hallo liebe Helfende,

mit Base und Mailmerge drucke ich Rechnungen als Serienbrief.
Das Makro ist so angelegt, das wahlweise direkt gedruckt oder als einzelne Datei gespeichert wird. Das funktioniert auch einwandfrei.

Nun möchte ich das in einem Arbeitsgang die Rechnungen gedruckt und als einzelne Datei gespeichert werden. Da komme ich nicht weiter.

Ich scheitere daran, die OutputTypes 1 und 2 miteinander zu kombinieren. Wer weiß da Rat?

Hier der entsprechende TestMakro-Ausschnitt, es wird einwandfrei gedruckt, jedoch nicht gespeichert:

Code: Alles auswählen

	oMailMerge = createunoservice("com.sun.star.text.MailMerge")	

'Datenbankname ermitteln
	Globalscope.BasicLibraries.loadLibrary("Tools")
	sDBName = Tools.Strings.GetFileNameWithoutExtension(thisDatabaseDocument.url, "/")
	oMailMerge.DataSourceName = sDBName 
	
' Vezeichnis und Name der zu druckenden Datei zusammensetzen
' Datei muß im selben Verzeichnis sein, wie die Datenbank
' RechURL kommt als globale Variable aus SUB "Serienbriefdruck"
	sURL = RechURL
	sURL = DirectoryNameOutOfPath(sURL,"/") 
	sDatei = sURL &  "/" & sBriefauswahl
	
	oMailMerge.DocumentURL = sDatei      ' Linux und Windows muß funktionieren
	oMailMerge.CommandType = 1  '' Abfrage = "1", Tabelle = "0"
	oMailMerge.Command = "Ab_RechDruck"
	oMailMerge.Filter = """KAuswahl"" = TRUE AND ""RechDruck"" is null" 
	
' eine Datei für jede Adresse = "2", Ausgabe an Drucker = "1"
	oMailMerge.OutputType = 1
	IF vGlobKopienZahl > 0 THEN
	printProp(0).Name = "Wait"
    	printProp(0).Value = True
    	printProp(1).Name = "CopyCount"
    	printProp(1).Value = + vGlobKopienZahl + 1    ' Kopienzahl aus Formularfeld + Orginal
    	oMailMerge.PrintOptions = printProp()
      		
'testweise eingefügt in der Hoffnung das es funktioniert
' in Dateien speichern
	oMailMerge.OutputType = 2
' Pfad zum Speicherverzeichnis der Serienbriefe
 	oSer = createUNOService("com.sun.star.system.SystemShellExecute")
	sURL = RechURL	' globale Var. aus SUB "Serienbriefdruck"	
	sURL = DirectoryNameoutofPath(sURL,"/") & "/zz_Serienbrief"		
			
' Ordner mit gespeicherten Dateien öffnen	
  	oSer.execute(sURL,,0)
  	
	oMailMerge.OutputUrl = sURL             ' Linux und Windows muß funktionieren
	oMailMerge.FileNameFromColumn = True
' wie soll die jeweilige Datei heißen
	oMailMerge.Filenameprefix = "RechNrName"
	oMailMerge.execute(aProps())
Gruß acco
Zuletzt geändert von Acco am Mi 8. Mär 2017, 11:13, insgesamt 1-mal geändert.
openSUSE Tumbleweed - LibreOffice 24.8.2.1

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Mit Mailmerge Dateien ausdrucken und gleichzeitig speichern

Beitrag von RobertG » Di 7. Mär 2017, 20:18

Hallo acco,

wie wäre es, wenn Du so vorgehen würdest:

Code: Alles auswählen

oMailMerge.Filter = """KAuswahl"" = TRUE AND ""RechDruck"" is null" 
oMailMerge1 = oMailMerge
...
oMailMerge1.OutputType = 2
....
oMailMerge1.OutputUrl = sURL  
...
Einfach eine Variable, die den ganzen Sermon von vorher mitnimmt und nur das Drucken mit einer anderen Variablen belegt.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Acco
Beiträge: 94
Registriert: Fr 31. Jan 2014, 16:41

Re: Mit Mailmerge Dateien ausdrucken und gleichzeitig speichern

Beitrag von Acco » Mi 8. Mär 2017, 11:09

Hallo Robert,

danke für Deinen Tipp.

Es funktioniert beinahe, die Rechnungen werden ausgedruckt, jedoch kommt beim speichern die Fehlermeldung:
Either the ResultSet or DataSourceName and DataCommand must be set. Das Resultset muß da anscheinend nochmals gesetzt werden, da wirds dann umständlich.

Ich habe es jetzt so gelöst, das eine SUB den Druck erledigt, danach eine weitere SUB aufruft, die die Rechnungen als Einzeldateien speichert.
Das funktioniert gut. Allerdings wäre mir alles in einer SUB lieber gewesen.

Hab nochmals Dank.

Gruß acco
openSUSE Tumbleweed - LibreOffice 24.8.2.1


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