BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Serienbrief SQL und interne Feldbefehle zur Formatierung

Alles zur Programmierung im LibreOffice.
Antworten
MaggiW
Beiträge: 15
Registriert: Mo 30. Jan 2017, 17:10

Serienbrief SQL und interne Feldbefehle zur Formatierung

Beitrag von MaggiW » Sa 26. Nov 2022, 12:48

Hallo,
ich habe eine grundsätzliche Frage. Ich nutze zur Zeit Word zur Erstellung eines Serienbriefs mit Abschnitten aus einer Exceltabelle als Datenquelle heraus. Dazu habe ich in Word eine Serienbriefvorlage erstellt und die merge Felder in Tabellen innerhalb des Word Dokuments angelegt. Damit bei der Abfrage der einzelnen Felder in den Zellen in der Wordtabelle die Daten, die aus der Exceltabelle ausgelesen werden, richtig formatiert angezeigt werden, habe ich in den einzelnen Feldern kurze Befehle integriert, so wie zum Beispiel:
1.
{ MERGEFIELD pH \#"0,0"}, damit nur eine Nachkommastelle angezeigt wird
oder
{ if { MERGEFIELD Referenzarten } = 1 { MERGEFIELD Referenzarten } }{ if{ MERGEFIELD Referenzarten } = 2 { MERGEFIELD Referenzarten} usw.... bis 5, dann wird der Text des Feldes in Abhängigkeit des Inhalts unterschiedlich eingefärbt. Ist es z.B. auch möglich den Hintergrund des Feldes entsprechend des Feldinhalts einzufärben?

und weitere verschiedene Befehle zur Formatierung....

2. es wird über eine SQL Abfrage, die in der Serienbrief Vorlage im Word Dokument steht, aus einem zweiten Tabellenblatt der Ursprungs Exceltabelle über eine gemeinsame Spalte, die in beiden Tabellenblättern exisitiert, für jeden zu erzeugenden Abschnitt des Serienbriefs (der Serienbrief wird also durch Abschnittsumbrüche getrennt und in jedem Abschnitt des Serienbriefs sind dann die Felder und SQL Abfrage für die Abschnitte enthalten) eine Tabelle erzeugt. Siehe Anhang.
SQL Abfrage.JPG
SQL Abfrage.JPG (56.69 KiB) 1529 mal betrachtet
Meine allgemeine Frage ist, da man ein solches Word Dokument nicht einfach als odt konvertieren kann, welche Möglichkeiten es gibt in LibreOffice so etwas nachzubilden und mit welchen Mitteln das möglich wäre. In Word kann ich über Shift+F9 die Feldbefehle anzeigen lassen, wie ist das in LibreOffice möglich?

Edit: Habe gesehen bei dem Extension Wollmux sind wohl "wennDannSonst" befehle möglich also ähnlich wie in meiner Vorlage. Bedeutet es, dasses ohne diese dann gar nicht so möglich ist. Bekomme aber wegen einer Fehlemldung zu Java version das Extension nicht zum laufen.
Grüße

Wanderer
Beiträge: 895
Registriert: Di 11. Feb 2014, 20:03
Wohnort: Berlin

Re: Serienbrief SQL und interne Feldbefehle zur Formatierung

Beitrag von Wanderer » So 27. Nov 2022, 22:12

In LibreOffice würde man die Excel-Tabelle als Calc-Datei speichern und dann als Datenquelle anmelden. ( Datei>Neu Neue Datenbank , dann Verbindung zu einer bestehenden Datenbank vom Typ Tabellenkalkulation einrichten. Dadurch wird eine .odb-Datei erzeugt, die als Verbindung zur Calc-Datei dient. Diese am besten auch "registrieren" z.B. als mymerge

In die Writer-Datei kann man dann (wie in Deiner Word-Datei) einfach Felder von mymerge (=Spalten der Calc-Datei) aus der Datenquellenansicht hineinziehen.

Bedingter Text ist ebenfalls möglich (auch ohne Erweiterungen). Ich würde empfehlen erst einmal im Hilfe und Dokumentationsbereich die Handbücher zu Writer (und ggfs Base) durchzusehen.
https://de.libreoffice.org/get-help/documentation/

mfg, Jörn
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit

MaggiW
Beiträge: 15
Registriert: Mo 30. Jan 2017, 17:10

Re: Serienbrief SQL und interne Feldbefehle zur Formatierung

Beitrag von MaggiW » Mi 30. Nov 2022, 18:34

Hallo Wanderer,
danke für Deine Antwort.
Ich habe die Excel Tabelle als odt gespeichert und als Quelle für den Serienbrief usgewählt und kann auch die Felder aus der Datenbankquelle in das Dokument ziehen.
Das funktioniert soweit gut.
Es scheint mir, als ob der Syntax bei LibreOffice für z.B. bedingten Text (=WennDannSonst) aber von dem in Word abweicht. Hier komme ich noch nicht ganz kalr, was ich nun mit welcher Formel ersetzen kann.... z.B. brauche ich so etwas wie:
WENN der Inhalt des Serienbrieffeldes < 15 DANN füge Inhalt Serienbrieffeld ein SONST WENN der Inhalt des Serienbrieffeldes >= 15 DANN färbe schrift rot und füge Text "ÖZK +1" ein.
Oder bei einem anderen Feld:
WENN der Inhalt des Serienbrieffeldes < 0 DANN Füge Text ein "nicht bewertet" SONST WENN der Inhalt des Serienbrieffeldes < 10 DANN füge Inhalt Serienbrieffeld ein SONST WENN <= 25 DANN färbe Text rot ein und füge Text "ÖZK +1" ein SONST WENN <= 50 DANN färbe Text rot ein und füge Text "ÖZK +2" ein usw..

Das wären so vom Prinzip die wichtigsten Regeln....
Wenn ich hierfür ein beispiel hätte könnte ich mir den rest selbst zusmmanebasteln.

Die Serienbrief Felder sind in einer Tabelle in einzelnen Zellen. Da in Word es nicht möglich ist, den Hintergrund der Zelle einzufärben, habe ich dafür ein MAkro, was nach der Erstellung des Serienbriefs in diesen ausgewählten Feldern in Abhängigkeit vom Wert (1 = blau, 2= grün usw) dann den Hintergrund einfärbt.
Grundsätzlich habe ich gesehen, dass es bei dem Feldbefehl auch ein Makro Schalter gibt in LibreOffice, verstehe ich das so, dass es dann möglich wäre ein Makro zu erstellen, dass dann für ei spezifisches Serienbrieffeld den Inhalt des Serienbrieffeldes überprüft und dann die Zelle in der das Feld ist entsprechend einfärbt mit der Erstellung des Serienbriefs? ODer bezieht sich die Makrofunktion nur auf den Feldbefehl und nicht die Tabellezell?

Danke und Grüße

Wanderer
Beiträge: 895
Registriert: Di 11. Feb 2014, 20:03
Wohnort: Berlin

Re: Serienbrief SQL und interne Feldbefehle zur Formatierung

Beitrag von Wanderer » Mi 30. Nov 2022, 22:29

LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit

MaggiW
Beiträge: 15
Registriert: Mo 30. Jan 2017, 17:10

Re: Serienbrief SQL und interne Feldbefehle zur Formatierung

Beitrag von MaggiW » Fr 2. Dez 2022, 11:21

Hallo,
danek für den Link. Den hatte ich mir schon angeschaut, aber in Bezug auf die BEispiele oben von mir hilft er mir irgendwie nicht weiter. Es geht bei mir eher um das Grundsätzliche im Gegensatz zu Word.
Um in Word mehrere WennDANN SONST Befehle abzufragen, schreibe ich diese hintereinander in das Serienbrieffeld in einer Formel. Geht das (in dem Beispiel vom Link steht dazu nichts) hier auch so? In die drei Felder oder müsste ich für jede Bedingung einzelne Felbefehle nacheinander einfügen in das Dokument?
VG

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten