❤️ 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. 🌱
>> 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] Problem mit bedingtem Text aufgrund von Feldinhalten
-
- Beiträge: 41
- Registriert: So 10. Jul 2011, 06:35
[Gelöst] Problem mit bedingtem Text aufgrund von Feldinhalten
Hallo,
ich habe folgendes Problem:
Bedingung: DBName.Abfrage_DBName_DBName_DBName.Ehename_Frau != DBName.Abfrage_DBName_DBName_DBName.Ehename_Mann
Dann: Frau <DBName.Abfrage_DBName_DBName_DBName.Ehename_Frau>' und Herrn ' <DBName.Abfrage_DBName_DBName_DBName.Ehename_Mann>
Sonst: 'Ehepaar ' <DBName.Abfrage_DBName_DBName_DBName.Ehename_Frau>
Es wird nichts ausgegeben. Ich habe in der Bedingung auch versucht:
<DBName.Abfrage_DBName_DBName_DBName.Ehename_Frau> != <DBName.Abfrage_DBName_DBName_DBName.Ehename_Mann>
Das hat aber nichts verändert. Hat jemand einen Tip? Die Hilfestellungen im WWW helfen mir leider nicht weiter, da sie das Eigentliche (z.B. wie man die Feldverweise formatiert) nicht enthalten.
ich habe folgendes Problem:
Bedingung: DBName.Abfrage_DBName_DBName_DBName.Ehename_Frau != DBName.Abfrage_DBName_DBName_DBName.Ehename_Mann
Dann: Frau <DBName.Abfrage_DBName_DBName_DBName.Ehename_Frau>' und Herrn ' <DBName.Abfrage_DBName_DBName_DBName.Ehename_Mann>
Sonst: 'Ehepaar ' <DBName.Abfrage_DBName_DBName_DBName.Ehename_Frau>
Es wird nichts ausgegeben. Ich habe in der Bedingung auch versucht:
<DBName.Abfrage_DBName_DBName_DBName.Ehename_Frau> != <DBName.Abfrage_DBName_DBName_DBName.Ehename_Mann>
Das hat aber nichts verändert. Hat jemand einen Tip? Die Hilfestellungen im WWW helfen mir leider nicht weiter, da sie das Eigentliche (z.B. wie man die Feldverweise formatiert) nicht enthalten.
Zuletzt geändert von DrMartinus am Sa 31. Dez 2016, 09:40, insgesamt 1-mal geändert.
-
- Beiträge: 41
- Registriert: So 10. Jul 2011, 06:35
Re: Problem mit bedingtem Text aufgrund von Feldinhalten
Alles vor längerer Zeit schon mal durchexerziert. Wenn ich doppelte Anführungszeichen verwende, kommt folgendes raus:
"Ehepaar " [DBName.Abfrage_DBName_DBName_DBName.Ehename_Frau]
und zwar genauso in der Endausgabe wie oben wiedergegeben (DBName ist natürlich der richtige Name der Datenbank).
Wenn ich versteckte Absätze benutze, müsste ich ja zwei solcher Absätze hintereinander haben, den einen für den einen Fall und den anderen für den andern, klar. Da werden mir dann aber nur 2 oder 3 von 8 Datensätzen ausgegeben, nach einem völlig unerklärlichen Prinzip (sind aber immer die selben).
Zwei einfache Hochkommas hintereinander (dann also doppelt) zeitigen übrigens das gleiche Ergebnis wie in meinem ersten Post wiedergegeben: gar nichts.
"Ehepaar " [DBName.Abfrage_DBName_DBName_DBName.Ehename_Frau]
und zwar genauso in der Endausgabe wie oben wiedergegeben (DBName ist natürlich der richtige Name der Datenbank).
Wenn ich versteckte Absätze benutze, müsste ich ja zwei solcher Absätze hintereinander haben, den einen für den einen Fall und den anderen für den andern, klar. Da werden mir dann aber nur 2 oder 3 von 8 Datensätzen ausgegeben, nach einem völlig unerklärlichen Prinzip (sind aber immer die selben).
Zwei einfache Hochkommas hintereinander (dann also doppelt) zeitigen übrigens das gleiche Ergebnis wie in meinem ersten Post wiedergegeben: gar nichts.
-
- Beiträge: 41
- Registriert: So 10. Jul 2011, 06:35
Re: Problem mit bedingtem Text aufgrund von Feldinhalten
Ich verstehe das so, dass sowohl normale Texteingabe als auch Datenbankfelder, ggfs. zusammen, ausgegeben werden können. Es wäre wohl besser, zu schreiben: "Es kann entweder normale Texteingabe oder Datenbankfelder..."nikki hat geschrieben: Neben normaler Texteingabe, können Sie in den Ergebnisfeldern Dann und Sonst auch Datenbankfelder in der Form "Datenbankname.Tabellenname.Feldname" (ohne Anführungszeichen) angeben, um die Feldinhalte in Abhängigkeit von der Bedingung einzufügen. LibreOffice versucht bei solchen Ausdrücken zunächst, den Text als Datenbankspalte zu identifizieren. Wenn diese existiert, wird der Inhalt der Spalte, ansonsten einfach der Text ausgegeben.
Aber Sinn macht es auch dann nicht. Normalerweise muss man ja zwischen mehreren Datenbankfeldern wenigstens eine Leerstelle oder ein Komma oder so haben. Aber es ist vermutlich müßig, über die Qualität der Programmhilfe zu sinnieren. Ich hatte den Text jedenfalls so verstanden, dass man Text und Datenbankfeld in die Felder "Dann und Sonst eintragen kann.
Das mit den versteckten Absätzen habe ich schon verstanden, es zeitigt aber, wie schon gesagt, sehr merkwürdige Ergebnisse (Ausgabe von nur einem Teil der Datensätze ohne erkennbares Ausschlusskriterium). Ich werde mal noch weiter rumtüfteln, vielleicht kommt mir ja doch nochmal die Erleuchtung. Jetzt habe ich mir händisch geholfen, da es nicht so viele Datensätze sind. Aber optimal ist das nicht, und meine Erwartungen halte ich eigentlich auch nicht für sonderlich außergewöhnlich.
-
- Beiträge: 41
- Registriert: So 10. Jul 2011, 06:35
Re: Problem mit bedingtem Text aufgrund von Feldinhalten
Ob eindeutig, sei mal dahingestellt. Für mich schließt der besagte Satz nicht aus, dass beides da stehen kann. Denn wenn ein Text nicht als Datenfeld interpretiert werden kann, wird er eben als Text ausgegeben, und wenn er als Datenfeld interpretiert werden kann, kommt der Inhalt des Feldes rein. Es sagt mit keiner Silbe, dass nicht Text und Datenfeld nebeneinander stehen können, und es impliziert es m.E. auch nicht. Eher im Gegenteil: ich habe den Eindruck gewonnen, dass damit gesagt wird, dass LibreOffice beides drin haben kann und nach Notwendigkeit damit verfährt. Aber wie gesagt, es ist müßig, darüber zu debattieren.
Schade ist, dass es zu meinem Problem offenbar keine vernünftige Lösung gibt. Ich hätte zahlreiche Serienbriefe, in denen ich so etwas einsetzen würde, weil es ein sehr praktischer Weg ist, Serienbriefe persönlich zu gestalten. Bei großen Datenmengen (und die jetzigen Datenbestände wachsen) wird es dann unumgänglich.
Naja, irgendwelche Krücken zur Problemlösung wird es sicher geben, es dauert dann eben nur länger, sie zu finden.
Schade ist, dass es zu meinem Problem offenbar keine vernünftige Lösung gibt. Ich hätte zahlreiche Serienbriefe, in denen ich so etwas einsetzen würde, weil es ein sehr praktischer Weg ist, Serienbriefe persönlich zu gestalten. Bei großen Datenmengen (und die jetzigen Datenbestände wachsen) wird es dann unumgänglich.
Naja, irgendwelche Krücken zur Problemlösung wird es sicher geben, es dauert dann eben nur länger, sie zu finden.
Re: Problem mit bedingtem Text aufgrund von Feldinhalten
Dr. Martinus,
es ist doch überhaupt kein Problem, die Sache innerhalb der Datenbank per SQL zu lösen.
Beispiel anbei, siehe Abfrage Anrede.
Gruß R
es ist doch überhaupt kein Problem, die Sache innerhalb der Datenbank per SQL zu lösen.
Beispiel anbei, siehe Abfrage Anrede.
Gruß R
- Dateianhänge
-
- Anrede.zip
- nur entpacken
- (18.24 KiB) 182-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO
-
- Beiträge: 41
- Registriert: So 10. Jul 2011, 06:35
Re: Problem mit bedingtem Text aufgrund von Feldinhalten
Danke für den Hinweis. Aber die Ausgabe ist nicht das, was ich erwarte. Manchmal steht da nur "Frau", manchmal "Ehepaar", manchmal "Frau" mit dem Nachnamen...
Ich kenne mich mit SQL nicht so gut aus, verstehe auch die Abfrage nicht so ganz.
Welche Funktion haben die "||"? Ich brauche:
Wenn "Ehename_Frau" == "Ehename_Mann" -> Ehepaar "Ehename_Mann"
Wenn "Ehename_Frau" != "Ehename_Mann" -> Frau "Ehename_Frau" und Herr "Ehename_Mann"
als Ausgabe
Das bildet sich mir in der obigen SQL-Abfrage noch nicht ab. Und wie verlinke ich zu dem "Feld" Anrede im Serienbrief?
Danke für die weitere Hilfe.
Ich kenne mich mit SQL nicht so gut aus, verstehe auch die Abfrage nicht so ganz.
Code: Alles auswählen
SELECT CASEWHEN( "Ehename_Frau" = "Ehename_Mann", 'Ehepaar ' || "Ehename_Frau", 'Frau ' || "Ehename_Frau" || ' und Herr ' || "Ehename_Mann" ) "Anrede" FROM "Personen"
Wenn "Ehename_Frau" == "Ehename_Mann" -> Ehepaar "Ehename_Mann"
Wenn "Ehename_Frau" != "Ehename_Mann" -> Frau "Ehename_Frau" und Herr "Ehename_Mann"
als Ausgabe
Das bildet sich mir in der obigen SQL-Abfrage noch nicht ab. Und wie verlinke ich zu dem "Feld" Anrede im Serienbrief?
Danke für die weitere Hilfe.
Re: Problem mit bedingtem Text aufgrund von Feldinhalten
Nabend durch zu ersetzen.
HTH R
Verstehe ich nicht. Bei mir sieht das so aus: Oder ist es so, dass nur ein Name, der des Ehemann, eingetragen ist? Dann braucht man nurDrMartinus hat geschrieben:Das bildet sich mir in der obigen SQL-Abfrage noch nicht ab.
Code: Alles auswählen
SELECT CASEWHEN( "Ehename_Frau" = "Ehename_Mann", 'Ehepaar ' || "Ehename_Frau", 'Frau ' || "Ehename_Frau" || ' und Herr ' || "Ehename_Mann" ) "Anrede" FROM "Personen"
Code: Alles auswählen
SELECT CASEWHEN( "Ehename_Frau" = "Ehename_Mann", 'Ehepaar ' || "Ehename_Mann", 'Frau ' || "Ehename_Frau" || ' und Herr ' || "Ehename_Mann" ) "Anrede" FROM "Personen"
Öffne den Serienbrief, drücke F4, navigiere zur Abfrage Anrede, ziehe den Spaltenkopf der Spalte Anrede an die Stelle im Serienbrief, wo sie gebraucht wird.DrMartinus hat geschrieben:Und wie verlinke ich zu dem "Feld" Anrede im Serienbrief?
HTH R
- Dateianhänge
-
- Anrede.zip
- jetzt ohne Makro, hatte ich in der vorigen Version vergessen zu löschen
- (14.21 KiB) 175-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO
-
- Beiträge: 41
- Registriert: So 10. Jul 2011, 06:35
Re: Problem mit bedingtem Text aufgrund von Feldinhalten
Sorry, peinlicher Fehler. In der Ausgabe war die Spalte nicht breit genug. Das sah ich aber nicht, weil, wenn Wörter nicht ganz in die Zeile reinpassen, sie offenbar ganz weggelassen werden. Das würde ich als einen Darstellungsfehler bei LibreOffice bezeichnen, aber naja. Das Ergebnis ist jedenfalls richtig. Nur wüsste ich natürlich schon gerne, wie ich diese SQL-Formel richtig verstehe, damit ich evtl. Anpassungen vornehmen kann.
Aber danke schonmal für diese Hilfe!
Aber danke schonmal für diese Hilfe!
Re: Problem mit bedingtem Text aufgrund von Feldinhalten
Ich versuche es:
Eigentlich genau wie WENN (Bedingung, dann, sonst) in Calc
also
WENNbeide Namen identisch
DANN
SONST wobei einfache Anführungszeichen einen feststehenden Text umschließen, doppelte die Spaltennamen und die zwei Pipes || den Text verketten.
Das "Anrede" vor FROM ist die neue Spaltenbezeichnung der entstandenen Spalte.
HTH R
Code: Alles auswählen
SELECT CASEWHEN( "Ehename_Frau" = "Ehename_Mann", 'Ehepaar ' || "Ehename_Mann", 'Frau ' || "Ehename_Frau" || ' und Herr ' || "Ehename_Mann" ) "Anrede" FROM "Personen"
also
WENN
Code: Alles auswählen
"Ehename_Frau" = "Ehename_Mann"
DANN
Code: Alles auswählen
'Ehepaar ' || "Ehename_Mann"
Code: Alles auswählen
'Frau ' || "Ehename_Frau" || ' und Herr ' || "Ehename_Mann"
Das "Anrede" vor FROM ist die neue Spaltenbezeichnung der entstandenen Spalte.
HTH R
Zuletzt geändert von F3K Total am Sa 31. Dez 2016, 15:18, insgesamt 1-mal geändert.
Windows 11: AOO, LO Linux Mint: AOO, LO
-
- Beiträge: 41
- Registriert: So 10. Jul 2011, 06:35
Re: Problem mit bedingtem Text aufgrund von Feldinhalten
Danke, das ist sehr erhellend!
Nun noch eine Frage: ich will in dem Dokument ja noch mehr Daten aus der Datenbank übernehmen. Kann ich da im Serienbrief zwei verschiedene Abfragen aus der gleichen Datenbank als Quelle benutzen, oder sollte ich diese Abfrage zu der anderen Abfrage hinzufügen, damit alles aus einer Abfrage stammt?
Danke noch einmal für die Mühe und Zeit, die Du für mich aufwendest!
Nun noch eine Frage: ich will in dem Dokument ja noch mehr Daten aus der Datenbank übernehmen. Kann ich da im Serienbrief zwei verschiedene Abfragen aus der gleichen Datenbank als Quelle benutzen, oder sollte ich diese Abfrage zu der anderen Abfrage hinzufügen, damit alles aus einer Abfrage stammt?
Danke noch einmal für die Mühe und Zeit, die Du für mich aufwendest!
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.