🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Serienbrief mit zusätzlicher Tabelle (etwas komplex)
Serienbrief mit zusätzlicher Tabelle (etwas komplex)
Guten Abend,
als Kassierer eines Vereins gehört es zu meinen Aufgaben, zum Jahresbeginn den Personen, die den Verein durch eine Spende im vergangenen Jahr unterstützt haben, eine Bescheinigung zu erstellen.
In der Vergangenheit habe ich das mittels MS Office gemacht, und bin jetzt im Umstieg auf Libre Office.
Die Bescheinigung ist zweiseitig, die erste Seite ist ein normaler Serienbrief - das funktioniert mit einer Adress-Tabelle als Quelle für die Daten.
Auf der zweiten Seite soll eine Liste der Spenden mit ihrem zugehörigen Datum stehen, damit die Finanzämter auch alles genau wissen. Hierzu habe ich in der Ms-Vergangenheit eine zweite Tabelle eingebunden und über den Namen des Spenders verknüpft und gefiltert (kleiner Spenderkreis, da geht das), so dass dort Datum und Betrag der Spende(n) aufgelistet werden.
In Libre Office funktioniert der normale Serienbriefteil wie erwartet - aber die Felder auf der zweiten Seite lassen sich nicht zuordnen/aktualisieren - früher reichte ein F9 (Aktualisieren), aber in Writer komme ich nicht an die Felder bzw. die Verknüpfung zu der zweiten Tabelle heran.
Meine Frage: kann ich die jetzige Struktur weiterverwenden, wenn ja, wie?
Oder hat Libre Office einen eigenen Weg, so ein Dokument darzustellen - auch hier die Frage: wenn ja, wie?
Vielen Dank für Eure Hilfe,
Georg
als Kassierer eines Vereins gehört es zu meinen Aufgaben, zum Jahresbeginn den Personen, die den Verein durch eine Spende im vergangenen Jahr unterstützt haben, eine Bescheinigung zu erstellen.
In der Vergangenheit habe ich das mittels MS Office gemacht, und bin jetzt im Umstieg auf Libre Office.
Die Bescheinigung ist zweiseitig, die erste Seite ist ein normaler Serienbrief - das funktioniert mit einer Adress-Tabelle als Quelle für die Daten.
Auf der zweiten Seite soll eine Liste der Spenden mit ihrem zugehörigen Datum stehen, damit die Finanzämter auch alles genau wissen. Hierzu habe ich in der Ms-Vergangenheit eine zweite Tabelle eingebunden und über den Namen des Spenders verknüpft und gefiltert (kleiner Spenderkreis, da geht das), so dass dort Datum und Betrag der Spende(n) aufgelistet werden.
In Libre Office funktioniert der normale Serienbriefteil wie erwartet - aber die Felder auf der zweiten Seite lassen sich nicht zuordnen/aktualisieren - früher reichte ein F9 (Aktualisieren), aber in Writer komme ich nicht an die Felder bzw. die Verknüpfung zu der zweiten Tabelle heran.
Meine Frage: kann ich die jetzige Struktur weiterverwenden, wenn ja, wie?
Oder hat Libre Office einen eigenen Weg, so ein Dokument darzustellen - auch hier die Frage: wenn ja, wie?
Vielen Dank für Eure Hilfe,
Georg
-
- * LO-Experte *
- Beiträge: 3041
- Registriert: Mo 12. Nov 2012, 16:59
Re: Serienbrief mit zusätzlicher Tabelle (etwas komplex)
Die "Tabelle" auf der zweiten Seite wird von einer Tabelle oder Datenbank gespeist?
Wenn sie aus der Datenbank kommt, dann doch ebenfalls in Tabellenstruktur.
Da gibt es doch Wege sie zu kopieren und auf der zweiten Seite einfach einzufügen.
Wie oft wird denn der Serienbrief benötigt? Lohnt sich da ein problematischer Datenlink?
Eine Notiz in einem "Kommentar" im Serienbrief (der ja nicht gedruckt wird) beinhaltet den Weg für ein aktuelles Dokument, um den Vorgang im nächsten Jahr nicht vergessen zu haben.
"... aber die Felder auf der zweiten Seite lassen sich nicht zuordnen/aktualisieren - früher reichte ein F9 (Aktualisieren), aber in Writer komme ich nicht an die Felder bzw. die Verknüpfung zu der zweiten Tabelle heran."
Ich kopiere z.B. eine berechnete calc-Tabelle und füge sie meiner Datenbank (wo die Empfänger-Adressen drin stehen) als eigene interne db-Tabelle zu und kann dann in derselben db eine spezielle Abfrage erzeugen, so dass der Serienbrief nur auf diese eine Abfragetabelle in meiner db zugreifen muss.
Wenn sie aus der Datenbank kommt, dann doch ebenfalls in Tabellenstruktur.
Da gibt es doch Wege sie zu kopieren und auf der zweiten Seite einfach einzufügen.
Wie oft wird denn der Serienbrief benötigt? Lohnt sich da ein problematischer Datenlink?
Eine Notiz in einem "Kommentar" im Serienbrief (der ja nicht gedruckt wird) beinhaltet den Weg für ein aktuelles Dokument, um den Vorgang im nächsten Jahr nicht vergessen zu haben.
"... aber die Felder auf der zweiten Seite lassen sich nicht zuordnen/aktualisieren - früher reichte ein F9 (Aktualisieren), aber in Writer komme ich nicht an die Felder bzw. die Verknüpfung zu der zweiten Tabelle heran."
Ich kopiere z.B. eine berechnete calc-Tabelle und füge sie meiner Datenbank (wo die Empfänger-Adressen drin stehen) als eigene interne db-Tabelle zu und kann dann in derselben db eine spezielle Abfrage erzeugen, so dass der Serienbrief nur auf diese eine Abfragetabelle in meiner db zugreifen muss.
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Serienbrief mit zusätzlicher Tabelle (etwas komplex)
Hallo, Pit -
danke für Deine Antwort.
Beide Datenquellen stehen in der gleichen Calc-Tabelle drin, als unterschiedliche Arbeitsblätter.
Das erste Arbeitsblatt bedient die Adressdaten, aus dem zweiten (da stehen alle Spendenzahlungen drin) wird dann für den aktuellen Spender herausgezogen, welche Zahlungen geleistet wurden.
Da es hier um eine Bescheinigung geht, die einer Behörde (Finanzamt) vorgelegt wird, habe ich das in den vergangenen Jahren lieber automatisiert. Einmal falsch kopiert, und Ärger steht ins Haus - deshalb habe ich das bisher so "automatisiert".
Benötigt werden (das wechselt halt) zwischen zehn und zwanzig Briefe.
Alternativ würde es mir auch helfen, wenn mir jemand zeigt, wie ich einen Auszug aus einer Calc-Tabelle in ein Dokument aufnehme (weil das ist es ja quasi, was ich machen will).
Ach so, vielleicht noch nachzutragen: als inzwischen Rentner habe ich mein Berufsleben überwiegend mit Software-Entwicklung verbracht, daher auch (was Dinge am Computer angeht) mein Motto "wenn ich's zweimal machen muss, schreibe ich direkt ein Programm".
Liebe Grüsse,
Georg
danke für Deine Antwort.
Beide Datenquellen stehen in der gleichen Calc-Tabelle drin, als unterschiedliche Arbeitsblätter.
Das erste Arbeitsblatt bedient die Adressdaten, aus dem zweiten (da stehen alle Spendenzahlungen drin) wird dann für den aktuellen Spender herausgezogen, welche Zahlungen geleistet wurden.
Da es hier um eine Bescheinigung geht, die einer Behörde (Finanzamt) vorgelegt wird, habe ich das in den vergangenen Jahren lieber automatisiert. Einmal falsch kopiert, und Ärger steht ins Haus - deshalb habe ich das bisher so "automatisiert".
Benötigt werden (das wechselt halt) zwischen zehn und zwanzig Briefe.
Alternativ würde es mir auch helfen, wenn mir jemand zeigt, wie ich einen Auszug aus einer Calc-Tabelle in ein Dokument aufnehme (weil das ist es ja quasi, was ich machen will).
Ach so, vielleicht noch nachzutragen: als inzwischen Rentner habe ich mein Berufsleben überwiegend mit Software-Entwicklung verbracht, daher auch (was Dinge am Computer angeht) mein Motto "wenn ich's zweimal machen muss, schreibe ich direkt ein Programm".
Liebe Grüsse,
Georg
-
- * LO-Experte *
- Beiträge: 3041
- Registriert: Mo 12. Nov 2012, 16:59
Re: Serienbrief mit zusätzlicher Tabelle (etwas komplex)
Bin auch Rentner, aber kein EDV´er (wie es in der DDR hieß).
Man kann programmieren, aber dabei helfe ich nicht, gibt hier andere Experten!
Ich habe ebenfalls eine kleine Truppe zu betreuen. Insofern kann ich alles nachempfinden.
Ich bin einen anderen Weg gegangen. Zwar kann man auch aus calc-Tabellen Serienbriefe zaubern, aber die bessere Version ist eine Datenbank (in base wird eine HSQLdb automatisch angeboten).
In die base-Datenbank kann man deine zwei calc-Tabellen gleich als Tabellen einkopieren.
Dann kann man für alle Steuerungen beliebige Abfragen zaubern, die dann den oder die Serienbriefe füttern.
Man kann die Serienbriefe ja zu Dateien zaubern. Ich selbst stoße keinen automatischen Mail-Output an, sondern mache in thunderbird eine Mailvorlage, die ich mit allen gemeinsamen Dateien füttere. Diese Mailvorlage kann ich einzeln nutzen, den individuellen Serienbriefoutput dazupacken und absenden. (habe i.d.R. nur 23 maximal...)
Mein Vorteil ist, dass ich jedes weitere Sonderdokument wieder von derselben Datei füttern kann, wobei Filter die individuelle Auswahl der Datensätze ermöglichen...
Man kann programmieren, aber dabei helfe ich nicht, gibt hier andere Experten!
Ich habe ebenfalls eine kleine Truppe zu betreuen. Insofern kann ich alles nachempfinden.
Ich bin einen anderen Weg gegangen. Zwar kann man auch aus calc-Tabellen Serienbriefe zaubern, aber die bessere Version ist eine Datenbank (in base wird eine HSQLdb automatisch angeboten).
In die base-Datenbank kann man deine zwei calc-Tabellen gleich als Tabellen einkopieren.
Dann kann man für alle Steuerungen beliebige Abfragen zaubern, die dann den oder die Serienbriefe füttern.
Man kann die Serienbriefe ja zu Dateien zaubern. Ich selbst stoße keinen automatischen Mail-Output an, sondern mache in thunderbird eine Mailvorlage, die ich mit allen gemeinsamen Dateien füttere. Diese Mailvorlage kann ich einzeln nutzen, den individuellen Serienbriefoutput dazupacken und absenden. (habe i.d.R. nur 23 maximal...)
Mein Vorteil ist, dass ich jedes weitere Sonderdokument wieder von derselben Datei füttern kann, wobei Filter die individuelle Auswahl der Datensätze ermöglichen...
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Serienbrief mit zusätzlicher Tabelle (etwas komplex)
Hallo, Pit -
danke für den Hinweise, dann schaue ich mir base mal an. (Ich arbeite seit Jahren mit MySQL bzw. mariadb - das macht dann ein wenig "blind auf diesem Auge", daher habe ich base gar nicht angeschaut - aber man will ja dazulernen.)
Liebe Grüsse,
Georg
danke für den Hinweise, dann schaue ich mir base mal an. (Ich arbeite seit Jahren mit MySQL bzw. mariadb - das macht dann ein wenig "blind auf diesem Auge", daher habe ich base gar nicht angeschaut - aber man will ja dazulernen.)
Liebe Grüsse,
Georg
DATABASE-Feldfunktion gesucht
Hier wird die zweite Tabelle mit der Database-Feldfunktion von MS Word erstellt. Der Verknüpfungwert IDname wird für die SQL-Abfrage über ein Seriendruckfeld der ersten Tabelle geliefert:
Einfacher scheint eine verknüpfende Abfrage aus den beiden Tabellen für den Serienbrief zu sein, die folgende Spalten liefert:
Name; Adresse; Spende; Datum;
Meier;Maiweg;20 €; 1.5.24
Winzer;Weinweg;40 €; 1.6.24
Winzer;Weinweg;60 €; 6.6.24
Winzer;Weinweg;70 €; 1.7.24
Brauer;Bierweg;45€;10.10.24
Mit der LO-Funktion Nächster Datensatz:Tabellenname könnte dann ein Vorspringen zur nächsten Zahlung des Spenders möglich sein, damit für Winzer nur ein Brief erzeugt wird, Ähnlich wie NextIf und SkipIf bei Word.
Ein vergleichbare Lösung für LO suche ich auch noch. Bislang wurde hier auf eine Starbasic-Abfrage hingewiesen und dies Datenbankabfrage in Feldbefehle schreiben scheint ähnlich.{ DATABASE
\d "C:\\userpfad\\Eigene Datenquellen\\Mitglieder.odc"
\c "Provider=MSDASQL.1;Persist Security Info=True;Extended Properties=\"DSN=Excel-Dateien;DBQ=C:\\pfad\\spenden.xls;DefaultDir=C:\\pfad;DriverId=790;MaxBufferSize=2048;PageTimeout=5;\";Initial Catalog=C:\\pfad\\spenden"
\s "SELECT `IDname`,`DATUM`,format(Spende, '00.00 €') AS SpendeFormatt FROM `Mitglieder` WHERE ((`Zahler` = '{MERGEFIELD "IDname"}' ))"
}
Einfacher scheint eine verknüpfende Abfrage aus den beiden Tabellen für den Serienbrief zu sein, die folgende Spalten liefert:
Name; Adresse; Spende; Datum;
Meier;Maiweg;20 €; 1.5.24
Winzer;Weinweg;40 €; 1.6.24
Winzer;Weinweg;60 €; 6.6.24
Winzer;Weinweg;70 €; 1.7.24
Brauer;Bierweg;45€;10.10.24
Mit der LO-Funktion Nächster Datensatz:Tabellenname könnte dann ein Vorspringen zur nächsten Zahlung des Spenders möglich sein, damit für Winzer nur ein Brief erzeugt wird, Ähnlich wie NextIf und SkipIf bei Word.
-
- * LO-Experte *
- Beiträge: 3041
- Registriert: Mo 12. Nov 2012, 16:59
Re: Serienbrief mit zusätzlicher Tabelle (etwas komplex)
Dies ist ein WRITER-Forum.
Entwerfe doch erst einmal einen Brief in writer (noch ohne die Felder), dann mach eine BASE-Datenbank (HSQDL ist intern bereits vorhanden) mit den gewünschten Feldern. Dann verlinke deine writerdatei mit deiner neuen Datenbankquelle,
UND HERNACH besprechen wir, wie du eventuell deine Tabellen in die dbase-Datenbank rien bekommst. Sonst ist dies alle Gelaber.
Entwerfe doch erst einmal einen Brief in writer (noch ohne die Felder), dann mach eine BASE-Datenbank (HSQDL ist intern bereits vorhanden) mit den gewünschten Feldern. Dann verlinke deine writerdatei mit deiner neuen Datenbankquelle,
UND HERNACH besprechen wir, wie du eventuell deine Tabellen in die dbase-Datenbank rien bekommst. Sonst ist dies alle Gelaber.
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Serienbrief mit zusätzlicher Tabelle (etwas komplex)
Der Fragesteller will pro Brief ein oder mehrere Spendenzahlungen auflisten.
LO kann nur aus einer Datenquelle heraus Serienbriefe erstellen. Hier liegen die Daten in zwei Tabellen vor, also müssen sie zu einer Quelle kombiniert werden. Dies kann mit einer Abfrage in der odb-Datei erfolgen. Diese Abfrage muss auch den Gruppierungswert MaxID für die Spenden eines Spenders liefern.
Falls die Daten in einer relationalen Datenbank vorliegen, kann dies mit einer Unterabfrage erfolgen:
Im Serienbrief sind die Felder Spende und Datum mehrfach untereinander aufgeführt. Um doppelte Ausgaben zu vermeiden, werden diese Absätze verborgen, falls die letzte Spende bereits erreicht ist. Dies erfolgt mit dem Feldbefehl Verborgener Absatz mit der Bedingung ID == MaxID. Am Ende dieser Absätze wird mit dem Feldbefehl Nächster Datensatz unter der Bedingung ID < MaxID ggf. die nächste Spende angesteuert.
Nur der letzte Absatz hat keine bedingten Felder, er wird immer gedruckt. Die erwähnte Alternative mit der Datenhaltung in einer Datenbank mag technisch schöner sein. Ein großer Vorteil von CSV-Dateien ist die klare Übersicht über Datenfortschreibungen mittels diff mitglieder2023.csv mitgliederAktuell.csv.. WinMerge zeigt Unterschiede in csv-Dateien mittlerweile spaltengetreu an.
LO kann nur aus einer Datenquelle heraus Serienbriefe erstellen. Hier liegen die Daten in zwei Tabellen vor, also müssen sie zu einer Quelle kombiniert werden. Dies kann mit einer Abfrage in der odb-Datei erfolgen. Diese Abfrage muss auch den Gruppierungswert MaxID für die Spenden eines Spenders liefern.
Falls die Daten in einer relationalen Datenbank vorliegen, kann dies mit einer Unterabfrage erfolgen:
Falls die Daten in einer Calc-Datei stecken, muss bereits dort gruppiert werden, weil Base dies für textförmige Daten nicht kann. Hierzu ist anstelle der ID das Datum zu verwenden. In einer neuen Tabellenspalte ist z.B. mit der Funktion =MAXWENNS($D:$D;$A:$A;$A2) das MaxDatum für jeden Spender zu ermitteln.SELECT "Spenden"."Name", "Mitglieder"."Adresse", "Spenden"."Spende", "Spenden"."Datum", "Spenden"."ID",
( SELECT MAX( "ID" ) "MaxID" FROM "Spenden"
WHERE "Name" = "Mitglieder"."Name" GROUP BY "Name"
)
FROM "Spenden", "Mitglieder"
WHERE "Spenden"."Name" = "Mitglieder"."Name"
ORDER BY "Spenden"."Name" ASC, "Spenden"."ID" ASC
Im Serienbrief sind die Felder Spende und Datum mehrfach untereinander aufgeführt. Um doppelte Ausgaben zu vermeiden, werden diese Absätze verborgen, falls die letzte Spende bereits erreicht ist. Dies erfolgt mit dem Feldbefehl Verborgener Absatz mit der Bedingung ID == MaxID. Am Ende dieser Absätze wird mit dem Feldbefehl Nächster Datensatz unter der Bedingung ID < MaxID ggf. die nächste Spende angesteuert.
Nur der letzte Absatz hat keine bedingten Felder, er wird immer gedruckt. Die erwähnte Alternative mit der Datenhaltung in einer Datenbank mag technisch schöner sein. Ein großer Vorteil von CSV-Dateien ist die klare Übersicht über Datenfortschreibungen mittels diff mitglieder2023.csv mitgliederAktuell.csv.. WinMerge zeigt Unterschiede in csv-Dateien mittlerweile spaltengetreu an.
-
- * LO-Experte *
- Beiträge: 3041
- Registriert: Mo 12. Nov 2012, 16:59
Re: Serienbrief mit zusätzlicher Tabelle (etwas komplex)
Du willst, dass wir uns in dein Modell hineinvertiefen (um es abzulehnen oder zu verbessern) ?
Ich fände es besser, wenn du uns eine (nummerierte) Liste deines Zieles oder deiner Ziele (Aufgaben) geben würdest, so dass wir unsere Wege zur Lösung aufzeigen könnten.
Dann könntest du ja vergleichen oder bemängeln.
Oder ist es noch immer dieselbe Aufgabe wie im ersten (!) Beitrag?
Dann hätte ich Fragen:
1. Der Brief geht mit beiden Seiten an den Spender?
2. Die zweite Seite enthalt nur Daten des Spenders (und ggf. einen Kopf "Für das Finanzamt")
3. Die zweite Seite enthält nur eine auf das aktuelle Jahr bezogene Liste der Spende dieser einen Person?
4. Woher kommen die Daten primär, welche Struktur haben diese Daten? Warum werden diese Daten nicht in base erfaßt?
Man kann doch alle Tabellen in base überführen (oder verlinken)
Ich fände es besser, wenn du uns eine (nummerierte) Liste deines Zieles oder deiner Ziele (Aufgaben) geben würdest, so dass wir unsere Wege zur Lösung aufzeigen könnten.
Dann könntest du ja vergleichen oder bemängeln.
Oder ist es noch immer dieselbe Aufgabe wie im ersten (!) Beitrag?
Dann hätte ich Fragen:
1. Der Brief geht mit beiden Seiten an den Spender?
2. Die zweite Seite enthalt nur Daten des Spenders (und ggf. einen Kopf "Für das Finanzamt")
3. Die zweite Seite enthält nur eine auf das aktuelle Jahr bezogene Liste der Spende dieser einen Person?
4. Woher kommen die Daten primär, welche Struktur haben diese Daten? Warum werden diese Daten nicht in base erfaßt?
Man kann doch alle Tabellen in base überführen (oder verlinken)
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
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.