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

SQL-Alternative im Serienbrief

WRITER hat alles, was Sie von einer modernen, voll ausgestatteten Textverarbeitung erwarten.
Antworten
Kretschi
Beiträge: 2
Registriert: Do 24. Nov 2011, 11:22

SQL-Alternative im Serienbrief

Beitrag von Kretschi » Do 24. Nov 2011, 14:16

Hallo,

ich bin neu hier und wende mich mit folgendem Problem an die Mitglieder des Forums.

Beim Umstieg von MS-Office, in diesem speziellen Fall MS-Word, auf LO ist auch ein Serienbrief umzustellen, der auf zwei Dateien im dBase-Format zugreift (alternativ auch im Text-Format).
Eine dieser Dateien enthält die Stammdaten (Name, Anschrift, ...) zu allen Empfängern und die andere zu jedem Empfänger eine variable Anzahl von Sätzen mit Bewegungsdaten.
Die Stammdaten werden als normale Serienfelder in den Brief eingefügt. Die Sätze mit Bewegungsdaten sind für den jeweiligen Empfänger zu ermitteln und bestimmte Felder als Tabelle an einer bestimmten Stelle im Text einzufügen.
Unter Word habe ich das über eine etwa wie folgt aussehende SQL-Anweisung erledigt, wobei es jetzt eher um's Prinzip geht, als um jeden der hier aufgeführten Parameter. Das Ermitteln der Bewegungsdaten für jeden Empfänger erfolgt über die WHERE-Klausel. Die Auswahl der Felder erfolgt mittels SELECT.

{ DATABASE \d "Laufwerk:\\Ordner\\Bewegungsdaten.dbf" \c "DSN=dBASE-Dateien; DBQ=Laufwerk:\\Ordner; DefaultDir=Laufwerk:\\Ordner; DriverId=533;MaxBufferSize=2048; PageTimeout=5;" \s "SELECT `FELD_2`, `FELD_3`, `FELD_n` FROM `Bewegungsdaten` WHERE ((`FELD_1` = `{ MERGEFIELD IDENT }`))" \l "1" \b "191" \h }


Abgesehen von kleinen Anpassungen je nach Word-Version funktioniert das Konstrukt.

Das Verwenden von "normalen" Serienfeldern im Writer ohne Verwendung des Serienbriefassistenten ist dabei nicht das Problem.
Aber, nach meinem jetzigen Kenntnisstand sind im LO-Writer keine SQL-Anweisungen möglich.

Welche Möglichkeiten gibt es in LO, um das Gleiche zu erreichen?

Jeder konstruktive Hinweis ist willkommen.

Kretschi

pmoegenb

Re: SQL-Alternative im Serienbrief

Beitrag von pmoegenb » Do 24. Nov 2011, 18:30

Kretschi hat geschrieben: { DATABASE \d "Laufwerk:\\Ordner\\Bewegungsdaten.dbf" \c "DSN=dBASE-Dateien; DBQ=Laufwerk:\\Ordner; DefaultDir=Laufwerk:\\Ordner; DriverId=533;MaxBufferSize=2048; PageTimeout=5;" \s "SELECT `FELD_2`, `FELD_3`, `FELD_n` FROM `Bewegungsdaten` WHERE ((`FELD_1` = `{ MERGEFIELD IDENT }`))" \l "1" \b "191" \h }
Nun mit SQL-Standard hat dies nur zum Teil etwas zu tun. Dies ist eher ein Konstrukt von VB und SQL. In LO ist dies zumindest in ähnlicher Form mit StarBasic und SQL möglich.

Ausschließliche SQL-Syntax wird in Base als Abfrage gespeichert. Ist die Abfrage einmal definiert, kann mit jedem Dokument darauf zugegriffen werden (Siehe Datenbank-Explorer Funtionstaste F4).
Im dargestellten Fall müsstest Du wahrscheinlich StarBasic (Kenne ich mich nicht aus) mit SQL-Definitionen verwenden. Informationen dazu unter http://www.dannenhoefer.de/faqstarbasic ... tml#Zweig9. Sollten sich Fragen zu StarBasic ergeben, was ich annehme, stelle die bitte im Forumsbereich LibreOffice Programmierung. Dort tummeln sich eher Anwender die mit StarBasic vertraut sind.

Kretschi
Beiträge: 2
Registriert: Do 24. Nov 2011, 11:22

Re: SQL-Alternative im Serienbrief

Beitrag von Kretschi » Do 24. Nov 2011, 20:11

Hallo Peter,

danke für den Tip, insbesondere für den Link.
Werde ich in den nächsten Tagen ausprobieren.

Gruß,

Kretschi


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