Report (Bericht) als Dokument für MailMerge

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Luke78
**
Beiträge: 29
Registriert: Do, 27.09.2012 19:43

Report (Bericht) als Dokument für MailMerge

Beitrag von Luke78 »

Hallo zusammen!

Gibt es eine Möglichkeit die internen Reports von Base als Grundlage für MailMerge zu verwenden?
Bzw. muss man beim Report Design auf bestimmte Dinge achten, damit man diesen verwenden kann.

Bisher bekomm ich immer die Fehlermeldung: "Failed to create document from URL: private:reports/StaffSchedule" (wahlweise mit anderen URL Versuchen um an den Report zu kommen)

Vielleicht hab ich mich da auch im Handbuch von dem Einleitungssatz zu MailMerge mit externer .ott Datei in die Irre führen lassen ("Manchmal reicht einfach ein Bericht nicht aus, um sauber Briefe an die Adressaten zu erstellen.")

Mein Report funktioniert ja eigentlich auch so wie ich es gerne hätte, nur müsste er halt nach Namen gesplitted und als E-Mail an die jeweiligen Adressaten geschickt werden.

Hier mein bisheriger Ansatz (erstmal als Dateien und nicht als Mail):

Code: Alles auswählen

sub sendSchedule()
	dim oMailMerge 	as Object
	dim oConnection	as Object	
	dim oReport		as Object
	dim oDocument		as Object
	dim sPath			as String
	dim sURL			as String
	dim aProps()
	
	oDocument 	= ThisDatabaseDocument
	oConnection	= oDocument.DataSource.GetConnection("","")	
	sPath		= replace( oDocument.URL, oDocument.Title, "")
	sUrl			= ConvertToUrl (sPath)

	oMailMerge = createUnoService("com.sun.star.text.MailMerge")
	oMailMerge.ActiveCOnnection		= oConnection
	oMailMerge.DocumentURL			= "private:reports/StaffSchedule"		//<- hier entsteht die Fehlermeldung
	oMailMerge.CommandType			= 1		//Type Query
	oMailMerge.Command			= "ReportStaffSchedule" 
	oMailMerge.OutputType			= 2		//Type File
	oMailMerge.OutputUrl			= sPath
	oMailMerge.FileNameFromColumn	= True
	oMailMerge.FileNamePrefix 		= "FullName"
	oMailMerge.execute(aProps())
end sub
EDIT: Sorry ist wohl im falschen Forum gelandet, wenn möglich bitte verscheiben
LO 3.6.5.2 auf Windows 7 64bit
"Ein Programm ist immer nur so gut wie sein Benutzer" - "Software has no brain, use your own"
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Report (Bericht) als Dokument für MailMerge

Beitrag von F3K Total »

Hallo Luke,
weil Dir noch keiner geantwortet hat, schreibe ich mal, was mir dazu einfällt:
Luke78 hat geschrieben:Gibt es eine Möglichkeit die internen Reports von Base als Grundlage für MailMerge zu verwenden?
Bzw. muss man beim Report Design auf bestimmte Dinge achten, damit man diesen verwenden kann.
Kann ich nicht sagen, was ich aber weiß ist, dass es in AOo grundsätzlich zwei Arten von Berichten gibt.
  • Herkömmliche, d.h. ohne Reportbuilder Extension
  • Berichte die mit der Reportbuilder Extension erstellt wurden, welche wiederum in LO implementiert, d.h. hier die Standard-Berichte sind. Man kann hier zwischen Writer und Calc Dokument wählen
Was Du verwendest, hast Du nicht mitgeteilt.

MailMerge arbeitet, Meineserachtes, mit einer Tabelle/Abfrage oder Ansicht und schiebt für jede Zeile in ebendieser einen Serienbrief heraus.
Dieser wird aus einer Writer-Datei erzeugt, die Feldbefehle dazu gibt es nur im Writer.
D.h. das man Mailmerge als Datengrundlage das .command mitgibt, der Inhalt wird successive in die Seriendruckfelder übernommen.

Berichte haben bereits, etwa wie Formulare eine eigene Abfrage/Tabelle/Ansicht als Grundlage. Deren Name ist im Bericht-Dokument gespeichert.
Öffnet man den Bericht, wird die Abfrage automatisch ausgeführt und es läuft im Hintergrund die Erstellung des Berichtes.
Es handelt sich also um einen ganz anderen Dokumentenaufbau, eine andere Datenversorgung.

Ich kann mir daher nicht vorstellen, dass dein Unterfangen von Erfolg gekrönt sein wird.
Mailmerge-Serienbriefe basieren halt auf Writerdokumenten mit Seriendruckfeldern.

Gruß R
Luke78
**
Beiträge: 29
Registriert: Do, 27.09.2012 19:43

Re: Report (Bericht) als Dokument für MailMerge

Beitrag von Luke78 »

Hallo

Dank dir, ich verwende LO und somit wohl die Reportbuilder Extension.

Ein normaler Serienbrief mit einem Brief pro Zeile des ResultSets macht leider wenig Sinn für mich, da ich teilweise Datensätze gruppieren möchte/muss.

Ziel ist es Dienstpläne zu verschicken, d.h. jeder Mitarbeiter bekommt eine Auflistung all seiner Arbeitseinheiten aus einem Monat.
Die Abfrage erzeugt nun halt pro Arbeitseinheit eine Zeile, der Report gruppiert dann wie gewünscht alle AE pro Mitarbeiter.
Wenn ich das richtig verstehe kann das ein Serienbrief so nicht leisten.

Ich hab zwar auch hier schon Ansätze gefunden mit Reports in einer Schleife, aber wie die dann in einem MailMerge Prozess individuell jedem Empfänger zugewiesen werden könnten ist mir ein Rätsel. Gibt ja bei MM auch nur SendAsAttachment und nicht AttachmentURLByColumn o.ä.
Und generell, wäre der Prozess auch so ein wenig von hinten durch die Brust ins Auge.

Grüße

Luke

P.S.: Und jetzt richte ich mir mal ne Signatur ein, damit ich nicht immer vergesse meine Version anzugeben :)
LO 3.6.5.2 auf Windows 7 64bit
"Ein Programm ist immer nur so gut wie sein Benutzer" - "Software has no brain, use your own"
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Report (Bericht) als Dokument für MailMerge

Beitrag von F3K Total »

Hi, suche nach

Code: Alles auswählen

createUnoService( "com.sun.star.system.SimpleSystemMail" )
So kann man wohl Mails ohne Mailmerge verschicken und dann könnte ein Schuh draus werden ...
Gruß R
Antworten