Seltsames Verhalten bei boolean Feldern in Formularen und Feldbefehlen
Moderator: Moderatoren
Seltsames Verhalten bei boolean Feldern in Formularen und Feldbefehlen
Hallo,
im angehängten Formular im Feld S habe ich ein Listenfeld, das mir die Werte "H", "F" oder "" anstatt true, false anzeigen soll. Das funktioniert nur, wenn das Feld angewählt wird, also den Focus hat. Was läuft da falsch?
Wenn ich in einem Textdokument einen bedingten Text einfüge, der Werte aus einer Datenbankabfrage einfügen soll, dann scheint eine ganz andere Syntax zu gelten:
[Mat_data.Firmenkontakte.S]==True, False, Null funktioniert nicht, sondern nur [Mat_data.Firmenkontakte.S]==1, 0, ""
logische Operatoren scheinen auch nicht zu funktionieren, z.B. [Mat_data.Firmenkontakte.S]==1 AND [Mat_data.Firmenkontakte.xy]==0
im angehängten Formular im Feld S habe ich ein Listenfeld, das mir die Werte "H", "F" oder "" anstatt true, false anzeigen soll. Das funktioniert nur, wenn das Feld angewählt wird, also den Focus hat. Was läuft da falsch?
Wenn ich in einem Textdokument einen bedingten Text einfüge, der Werte aus einer Datenbankabfrage einfügen soll, dann scheint eine ganz andere Syntax zu gelten:
[Mat_data.Firmenkontakte.S]==True, False, Null funktioniert nicht, sondern nur [Mat_data.Firmenkontakte.S]==1, 0, ""
logische Operatoren scheinen auch nicht zu funktionieren, z.B. [Mat_data.Firmenkontakte.S]==1 AND [Mat_data.Firmenkontakte.xy]==0
- Dateianhänge
-
- Test_Bool.odb
- (18.15 KiB) 142-mal heruntergeladen
Re: Seltsames Verhalten bei boolean Feldern in Formularen und Feldbefehlen
Hallo Saxo,
ich würde das so regeln, dass möglichst viel davon über die Datenbank erledigt wird. Gerade bei TRUE und FALSE in Listen innerhalb eines Listenfeldes kann sonst die GUI schnell dazu kommen, nicht WAHR und FALSCH daraus zu lesen, sondern einfach nach dem Text zu suchen.
löst als SQL-Code für das Listenfeld Dein Problem.
Für das Serienbriefanliegen fehlt mir jetzt die Geduld, das nach zu bauen.
Gruß
Robert
ich würde das so regeln, dass möglichst viel davon über die Datenbank erledigt wird. Gerade bei TRUE und FALSE in Listen innerhalb eines Listenfeldes kann sonst die GUI schnell dazu kommen, nicht WAHR und FALSCH daraus zu lesen, sondern einfach nach dem Text zu suchen.
Code: Alles auswählen
SELECT CASE WHEN "S" = TRUE THEN 'H' WHEN "S" = FALSE THEN 'F' ELSE '' END "Text", "S" FROM "PEOPLE"
Für das Serienbriefanliegen fehlt mir jetzt die Geduld, das nach zu bauen.
Gruß
Robert
Re: Seltsames Verhalten bei boolean Feldern in Formularen und Feldbefehlen
Guten Morgen,
noch zwei kleine Feinheiten:
([Mat_data.Firmenkontakte.S]==1) AND ([Mat_data.Firmenkontakte.xy]==0) funktioniert bei mir unter AOO 4.1.6
Gruß R
noch zwei kleine Feinheiten:
- Der SQL-Code sollte lauten, sonst enthält das Listenfeld Zeilen mehrfach.
Code: Alles auswählen
SELECT DISTINCT CASE WHEN "S" = TRUE THEN 'H' WHEN "S" = FALSE THEN 'F' ELSE '' END "Text", "S" FROM "PEOPLE"
- Unter AOO muss man bei der angehängten Datei das gebundene Feld von 0 auf 1 ändern, damit es funktioniert.
([Mat_data.Firmenkontakte.S]==1) AND ([Mat_data.Firmenkontakte.xy]==0) funktioniert bei mir unter AOO 4.1.6
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Seltsames Verhalten bei boolean Feldern in Formularen und Feldbefehlen
Hallo R.,
anke für die Korrektur. Der Code hat bei uns natürlich den Nachteil, dass da erst einmal nichts steht, wenn in der Tabelle nichts erhalten ist. Für die ersten Datensätze kann deswegen 'H' und 'F' nicht ausgewählt werden. Das gelingt mit der Abfrage
dann besser. Allerdings: Direkte SQL-Ausführung anklicken.
Gruß
Robert
anke für die Korrektur. Der Code hat bei uns natürlich den Nachteil, dass da erst einmal nichts steht, wenn in der Tabelle nichts erhalten ist. Für die ersten Datensätze kann deswegen 'H' und 'F' nicht ausgewählt werden. Das gelingt mit der Abfrage
Code: Alles auswählen
SELECT DISTINCT 'H' AS "Text", TRUE AS "Info" FROM "PEOPLE"
UNION
SELECT DISTINCT 'F' AS "Text", FALSE AS "Info" FROM "PEOPLE"
Gruß
Robert
Re: Seltsames Verhalten bei boolean Feldern in Formularen und Feldbefehlen
Vielen Dank für die Vorschläge, funktioniert leider nicht. Gleiches Problem, dass nur dann H oder F angezeigt wird, wenn das Feld angewählt ist. Ich vergass zu erwähnen, dass ich libreoffice 6 habe. Vielleicht mach ich auch noch was falsch, anbei mal mein Versuch.
Ein kleineres Problem noch, in bedingten Texten: geht es, dass ich Text verkette, z.B. "Herr " & [Feld.Name]? Mit & geht es leider nicht.
Ein kleineres Problem noch, in bedingten Texten: geht es, dass ich Text verkette, z.B. "Herr " & [Feld.Name]? Mit & geht es leider nicht.
- Dateianhänge
-
- Test_Bool.odb
- (18.18 KiB) 148-mal heruntergeladen
Re: Seltsames Verhalten bei boolean Feldern in Formularen und Feldbefehlen
Hallo Saxo,
zum einen hat der Code, den Du da drin stehen hast, gleich mehrere Fehler ( ein ", ein fehlendes Komma - und dann auch noch das DISTINCT, das R. ergänzt hat), zum anderen steht das gebundene Feld immer noch auf '0'. Das muss auf '1' gestellt werden.
Gruß
Robert
zum einen hat der Code, den Du da drin stehen hast, gleich mehrere Fehler ( ein ", ein fehlendes Komma - und dann auch noch das DISTINCT, das R. ergänzt hat), zum anderen steht das gebundene Feld immer noch auf '0'. Das muss auf '1' gestellt werden.
Gruß
Robert
Re: Seltsames Verhalten bei boolean Feldern in Formularen und Feldbefehlen
Kann keinen Fehler entdecken, wird auch keine Fehlermeldung angezeigt:
SELECT DISTINCT 'H' AS "Text", TRUE AS "S" FROM "PEOPLE" UNION SELECT DISTINCT 'F' AS "Text", FALSE AS "S" FROM "PEOPLE"
Wenn ich das Feld anwähle, kann ich die Auswahlliste ja auch sehen, eine Änderung wird aber nicht dauerhaft gespeichert. Könnte bitte jemand mein Formular öffnen und bestätigen, dass das Problem nicht nur bei libreoffice auftritt?
Danke
SELECT DISTINCT 'H' AS "Text", TRUE AS "S" FROM "PEOPLE" UNION SELECT DISTINCT 'F' AS "Text", FALSE AS "S" FROM "PEOPLE"
Wenn ich das Feld anwähle, kann ich die Auswahlliste ja auch sehen, eine Änderung wird aber nicht dauerhaft gespeichert. Könnte bitte jemand mein Formular öffnen und bestätigen, dass das Problem nicht nur bei libreoffice auftritt?
Danke
Re: Seltsames Verhalten bei boolean Feldern in Formularen und Feldbefehlen
Moin,
bist du ein TROLL oder nur beratungsresistent?
Wenn du unsere Hinweise befolgt hättest, hättest du auch ein funktionierendes Ergebnis bekommen, siehe Anlage.
Zur Verkettung:"Herr " & [Feld.Name]
Wie von Robert weiter oben schon angemerkt: oder mit zwei Pipe-Zeichen
innerhalb der DB zu machen.
R
bist du ein TROLL oder nur beratungsresistent?
Wenn du unsere Hinweise befolgt hättest, hättest du auch ein funktionierendes Ergebnis bekommen, siehe Anlage.
Zur Verkettung:"Herr " & [Feld.Name]
Wie von Robert weiter oben schon angemerkt:
empfehle ich dir also auch, die Verkettung mit dem BefehlRobert hat geschrieben:... ich würde das so regeln, dass möglichst viel davon über die Datenbank erledigt wird
Code: Alles auswählen
CONCAT(FELD1,FELD2)
Code: Alles auswählen
FELD1||FELD2
R
- Dateianhänge
-
- Test_Bool.odb
- (18.14 KiB) 146-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Seltsames Verhalten bei boolean Feldern in Formularen und Feldbefehlen
Bei mir erscheint das Listenfeld ganz normal gefüllt. Auch die Anzeige ist da - zumindest bei dem, was R. angehängt hat. Bei der Version steht auch das gebundene Feld auf "1".
Alles hier unter LibreOffice 6.1.5.2, OpenSUSE 15.
Alles hier unter LibreOffice 6.1.5.2, OpenSUSE 15.
Re: Seltsames Verhalten bei boolean Feldern in Formularen und Feldbefehlen
Vielen Dank F3K Total, ich habe im normalen Leben nichts mit SQL zu tun und habe deshalb so meine Schwierigkeiten.