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. 🤗

[gelöst] Zusammensetzen von angezeigten Werten in Listenfeldern funktioniert nur eingeschränkt?

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
pschulze59
Beiträge: 51
Registriert: Di 16. Okt 2018, 12:48

[gelöst] Zusammensetzen von angezeigten Werten in Listenfeldern funktioniert nur eingeschränkt?

Beitrag von pschulze59 » Mo 29. Okt 2018, 19:44

Hallo,
ich lasse die angezeigten Werte von Listenfeldern zur Ermittlung der verknüpften ID aus anderen Tabellenfelder darstellen:

Code: Alles auswählen

SELECT "Bez1"||', '||"Bez2", ID FROM .....usw.....


"Bez1" ist in der Quelltabelle ein Pflichtfeld und wird zwingend ausgefüllt.
"Bez2" ist allerdings kein Pflichtfeld und wird nur bei Bedarf ausgefüllt.

Warum funktioniert die Anzeige von Listenwerten nur, wenn "Bez2" einen Wert enthält???

Ist "Bez2" leer, wird der ganze Listeneintrag ausgeblendet, auch wenn "Bez1" einen Wert enthält.
Wenn es keine andere Lösung gibt, müsste man zwingend wenigsten ein Leerzeichen in "Bez2" eintragen, was aber Blödsinn ist.
Hat jemand eine andere Lösung?
Zuletzt geändert von pschulze59 am Mo 29. Okt 2018, 20:19, insgesamt 1-mal geändert.

F3K Total
Beiträge: 2412
Registriert: So 10. Apr 2011, 10:10

Re: Zusammensetzen von angezeigten Werten in Listenfeldern funktioniert nur eingeschränkt?

Beitrag von F3K Total » Mo 29. Okt 2018, 19:59

Versuche mal

Code: Alles auswählen

SELECT "Bez1"||', '||ifnull("Bez2",''), ID FROM .....usw.....
Windows 10: AOO, LO Linux Mint: AOO, LO

pschulze59
Beiträge: 51
Registriert: Di 16. Okt 2018, 12:48

Re: Zusammensetzen von angezeigten Werten in Listenfeldern funktioniert nur eingeschränkt?

Beitrag von pschulze59 » Mo 29. Okt 2018, 20:18

Habe gerade die Lösung im LibreOffice-Base-Handbuch gefunden:

Code: Alles auswählen

SELECT "Bez1"||COALESCE (', '||"Bez2", ''), "ID" FROM .......
(Nach "Bez2" und dem Komma sind zwei einfache Hochkommas gesetzt, bevor die Klammer zu gemacht wird.

Handbuch S.272 nennt dazu ein Beispiel:
Falls es einmal passieren sollte, dass Felder für die Vornamen leer (
NULL
) sind, so wird so ein
Datensatz in den Listenfeldern natürlich erst einmal nicht angezeigt. Leere Felder, verbunden mit
anderen Feldern, sind ebenfalls
NULL
. Hier hilft dann eine entsprechend eingefügte Bedingung:
SELECT
"Nachname"||COALESCE(', '||"Vorname",''),
"ID"
FROM "Tabelle1"
ORDER BY "Nachname"||COALESCE(', '||"Vorname",'');
Damit wird das Komma und der anschließende Vorname durch einen leeren Text ersetzt, wenn
das Feld "Vorname"
NULL
ist.
Ich werde den anderen Vorschlag mit "ifnull" tortzdem mal probieren.
Danke

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: [gelöst] Zusammensetzen von angezeigten Werten in Listenfeldern funktioniert nur eingeschränkt?

Beitrag von RobertG » Mo 29. Okt 2018, 20:43

Hallo pschulze59,

im Handbuch habe ich sämtliche Einträge zu IFNULL durch COALESCE ersetzt, weil die kommende interne Firebird-Datenbank mit IFNULL nichts anfangen kann, HSQLDB und Firebird aber beide COALESCE unterstützen. Dieser Befehl ist dann auch etwas umfangreicher: Es können beliebig viele Werte angegeben werden, so dass sowohl die erste als auch die zweite Angabe NULL sein können.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

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