>> zum CHAT

Ja/Nein (Boolean) in Formularen?

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
hylli
Beiträge: 102
Registriert: Sa 19. Mär 2011, 19:00

Ja/Nein (Boolean) in Formularen?

Beitrag von hylli » Di 14. Nov 2017, 11:03

Hi,

in einer Tabelle habe ich 2 Felder mit Feldtyp "Ja/Nein [Boolean]" definiert.

Diese würde ich gerne im Formular so umsetzen, dass der Nutzer der Datenbank "Ja" bzw. "Nein" per Listenfeld auswählen kann oder als Optionsfelder "Ja" bzw. "Nein".

Wie setze ich das am einfachsten um? Komme da gerade auf keinen grünen Zweig?!?

Hylli
Geschäftlich: LibreOffice 5.1.5.2 (und portable 5.2.3.3) unter Windows 7 64bit
Privat: LibreOffice 5.1.4.2 unter Linux Mint 18.1 Cinnamon 64bit



nikki
Beiträge: 195
Registriert: Sa 18. Mär 2017, 22:25
Kontaktdaten:

Re: Ja/Nein (Boolean) in Formularen?

Beitrag von nikki » Di 14. Nov 2017, 11:50

Hallo Hylli,
ich würde entweder ein Markierfeld verwenden und per Hilfetext auf die möglichen Funktionen hinweisen:
2017-11-14 11_46_04-FormularTest.odt - Markierfeld.gif
2017-11-14 11_46_04-FormularTest.odt - Markierfeld.gif (2.69 KiB) 121 mal betrachtet

oder zwei Optionsfelder verwenden und diese per Gruppierungsrahmen gruppieren so, dass nur eine Option ausgewählt werden kann:
2017-11-14 11_49_24-FormularTest.odt - Optionsfelder.gif
2017-11-14 11_49_24-FormularTest.odt - Optionsfelder.gif (3.88 KiB) 121 mal betrachtet
Gruß

----------------------------------------------------------------------------------------------------
Win.10 Prof. 64-bit, AOO 4.1.4, LO 5.4.3 (x64), LO 5.3.6 Portable, LO 5.2.7 Portable

hylli
Beiträge: 102
Registriert: Sa 19. Mär 2011, 19:00

Re: Ja/Nein (Boolean) in Formularen?

Beitrag von hylli » Di 14. Nov 2017, 12:29

Ich habe es jetzt mal als Markierfeld gemacht, weil Kollegin das gerne so einfach wie möglich haben möchte.

Wenn ich jedoch das Formular speichere, so wird der Haken wieder automatisch entfernt?

Im Reiter "Daten" habe ich das jeweilige Tabellenfeld gewählt und dort zusätzlich definiert:
Referenzwert (ein): 1
Referenzwert (aus): 0

Wo liegt mein Fehler?

Hylli
Geschäftlich: LibreOffice 5.1.5.2 (und portable 5.2.3.3) unter Windows 7 64bit
Privat: LibreOffice 5.1.4.2 unter Linux Mint 18.1 Cinnamon 64bit

nikki
Beiträge: 195
Registriert: Sa 18. Mär 2017, 22:25
Kontaktdaten:

Re: Ja/Nein (Boolean) in Formularen?

Beitrag von nikki » Di 14. Nov 2017, 15:27

Hallo Hylli,
Rückgabewerte von Feldtypen Boolean sind datenbankabhängig. Probier mal statt 1 = True und statt 0 = False.
Gruß

----------------------------------------------------------------------------------------------------
Win.10 Prof. 64-bit, AOO 4.1.4, LO 5.4.3 (x64), LO 5.3.6 Portable, LO 5.2.7 Portable

hylli
Beiträge: 102
Registriert: Sa 19. Mär 2011, 19:00

Re: Ja/Nein (Boolean) in Formularen?

Beitrag von hylli » Di 14. Nov 2017, 15:45

Hi,

ich habe die Werte einfach mal weggelassen, und dann bleiben die Zustände gespeichert.

Wenn ich eine Abfrage mit u.a. diesen Feldern mache und diese nach Calc "ziehe", dann erscheint bei gesetztem Haken "WAHR" bzw. bei nicht gesetztem Haken entsprechend "FALSCH".

Für meine Abfragen/Auswertungen wäre es mir dann aber lieber, wenn da "Ja" oder "Nein" stehen würde.

Wie bewerkstellige ich das?

Hylli
Geschäftlich: LibreOffice 5.1.5.2 (und portable 5.2.3.3) unter Windows 7 64bit
Privat: LibreOffice 5.1.4.2 unter Linux Mint 18.1 Cinnamon 64bit

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

Re: Ja/Nein (Boolean) in Formularen?

Beitrag von RobertG » Di 14. Nov 2017, 16:22

Hallo Hylli,

in den Abfragen musst Du dann den Wert TRUE eben 'Ja', den Wert FALSE 'Nein' zuordnen:

Code: Alles auswählen

SELECT ..., CASE WHEN "Boolean" = TRUE THEN 'Ja' ELSE 'Nein' END AS "Ja/Nein" FROM "Tabelle"
Kannst natürlich auch noch NULL abfangen, wenn Du ein leeres Feld ebenfalls zulässt.

Gruß

Robert

hylli
Beiträge: 102
Registriert: Sa 19. Mär 2011, 19:00

Re: Ja/Nein (Boolean) in Formularen?

Beitrag von hylli » Di 14. Nov 2017, 19:23

Puh, fragt sich wo/wie das Konstrukt in dieser Abfrage platziert werden müsste?!?
SELECT "Veranstalter"."Veranstalter", "Art der Schulung"."Art der Schulung", "Schulungen"."Veranstaltungsort", "Schulungen"."Bezeichnung", "Schulungen"."Datum von", "Schulungen"."Datum bis", "Mitarbeiter"."Nachname", "Mitarbeiter"."Vorname", "Schulungen"."Dauer in Tagen", "Schulungen"."Dauer in Stunden", "Schulungen"."Preis", "Schulungen"."Geplant", "Schulungen"."Mahlzeitengestellung", "Schulungen"."Kfz gebucht", "Schulungen"."Teilnahmebescheinigung", "Schulungen"."Bemerkungsfeld" FROM "rel_Schulung_Mitarbeiter", "Schulungen", "Mitarbeiter", "Art der Schulung", "Veranstalter" WHERE "rel_Schulung_Mitarbeiter"."FK_ID_Schulung" = "Schulungen"."ID_Schulung" AND "rel_Schulung_Mitarbeiter"."FK_ID_Mitarbeiter" = "Mitarbeiter"."Personal-Nr." AND "Schulungen"."FK_ID_Art" = "Art der Schulung"."ID_Art" AND "Schulungen"."FK_ID_Veranstalter" = "Veranstalter"."ID_Veranstalter"
Die beiden Boolean-Felder befinden sich in der Tabelle "Schulungen".

Hylli
Geschäftlich: LibreOffice 5.1.5.2 (und portable 5.2.3.3) unter Windows 7 64bit
Privat: LibreOffice 5.1.4.2 unter Linux Mint 18.1 Cinnamon 64bit

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

Re: Ja/Nein (Boolean) in Formularen?

Beitrag von RobertG » Mi 15. Nov 2017, 18:42

Hallo Hylli,

Code: Alles auswählen

SELECT "Veranstalter"."Veranstalter", "Art der Schulung"."Art der Schulung", 
"Schulungen"."Veranstaltungsort", "Schulungen"."Bezeichnung", 
"Schulungen"."Datum von", "Schulungen"."Datum bis", 
"Mitarbeiter"."Nachname", "Mitarbeiter"."Vorname", 
"Schulungen"."Dauer in Tagen", "Schulungen"."Dauer in Stunden", 
"Schulungen"."Preis", "Schulungen"."Geplant", 
"Schulungen"."Mahlzeitengestellung", "Schulungen"."Kfz gebucht", 
"Schulungen"."Teilnahmebescheinigung", "Schulungen"."Bemerkungsfeld", 
CASE WHEN "Schulungen"."Teilnahmebescheinigung" = TRUE THEN 'Ja' ELSE 'Nein' END AS "Bescheinigung" 
FROM "rel_Schulung_Mitarbeiter", "Schulungen", "Mitarbeiter", "Art der Schulung", "Veranstalter" 
WHERE "rel_Schulung_Mitarbeiter"."FK_ID_Schulung" = "Schulungen"."ID_Schulung" 
AND "rel_Schulung_Mitarbeiter"."FK_ID_Mitarbeiter" = "Mitarbeiter"."Personal-Nr." 
AND "Schulungen"."FK_ID_Art" = "Art der Schulung"."ID_Art" 
AND "Schulungen"."FK_ID_Veranstalter" = "Veranstalter"."ID_Veranstalter"
leider schreibst Du nicht, welches Feld denn das Boolean-Feld ist. Ich habe jetzt einfach einmal angenommen, dass es sich um "Schulungen"."Teilnahmebescheinigung" handelt. Das kannst Du ja dann austauschen.

Gruß

Robert

hylli
Beiträge: 102
Registriert: Sa 19. Mär 2011, 19:00

Re: Ja/Nein (Boolean) in Formularen?

Beitrag von hylli » Mi 15. Nov 2017, 19:18

Hi,

es sind sogar zwei Felder davon betroffen, genauer:
"Schulungen"."Mahlzeitengestellung", "Schulungen"."Kfz gebucht"

Mit Deiner Hilfe habe ich es jetzt mal so hinbekommen:

Code: Alles auswählen

SELECT "Veranstalter"."Veranstalter", "Art der Schulung"."Art der Schulung", "Schulungen"."Veranstaltungsort", 
"Schulungen"."Bezeichnung", "Schulungen"."Datum von", "Schulungen"."Datum bis", "Mitarbeiter"."Nachname", 
"Mitarbeiter"."Vorname", "Schulungen"."Dauer in Tagen", "Schulungen"."Dauer in Stunden", "Schulungen"."Preis", 
"Schulungen"."Geplant", "Schulungen"."Mahlzeitengestellung", "Schulungen"."Kfz gebucht", 
"Schulungen"."Teilnahmebescheinigung", "Schulungen"."Bemerkungsfeld", CASE WHEN 
"Schulungen"."Mahlzeitengestellung" = TRUE THEN 'Ja' ELSE 'Nein' END AS "Mahlzeit", CASE WHEN 
"Schulungen"."Kfz gebucht" = TRUE THEN 'Ja' ELSE 'Nein' END AS "Kfz" FROM "rel_Schulung_Mitarbeiter", 
"Schulungen", "Mitarbeiter", "Art der Schulung", "Veranstalter" WHERE "rel_Schulung_Mitarbeiter"."FK_ID_Schulung" = 
"Schulungen"."ID_Schulung" AND "rel_Schulung_Mitarbeiter"."FK_ID_Mitarbeiter" = "Mitarbeiter"."Personal-Nr." AND 
"Schulungen"."FK_ID_Art" = "Art der Schulung"."ID_Art" AND "Schulungen"."FK_ID_Veranstalter" = 
"Veranstalter"."ID_Veranstalter"
Vermutlich gibt es aber eine einfacherer Schreibweise?!?

Einer meiner Fehler lag u.a. im fehlenden Komma vor der CASE-Anweisung, zuvor hatte ich die CASE-Anweisung auch falsch positioniert, ...

Mit der Teilnahmebescheinigung habe ich allerdings auch noch eine offene Frage, dazu aber separater Thread.

Bis dahin mal wieder: Danke für Deine Hilfe und Geduld.

Hylli
Geschäftlich: LibreOffice 5.1.5.2 (und portable 5.2.3.3) unter Windows 7 64bit
Privat: LibreOffice 5.1.4.2 unter Linux Mint 18.1 Cinnamon 64bit

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

Re: Ja/Nein (Boolean) in Formularen?

Beitrag von RobertG » Mi 15. Nov 2017, 21:40

Hallo Hylli,

Du kannst die Schreibweise auch vereinfachen. Dann musst Du aber zwingend bei der internen HSQLDB bleiben und kannst das z.B. nicht in Firebird - der anderen internen Datenbank, nutzen. Statt

Code: Alles auswählen

..., CASE WHEN "Schulungen"."Mahlzeitengestellung" = TRUE THEN 'Ja' ELSE 'Nein' END AS "Mahlzeit"...
geht auch

Code: Alles auswählen

..., CASEWHEN ("Schulungen"."Mahlzeitengestellung" = TRUE, 'Ja' ,'Nein' ) AS "Mahlzeit"...
Bei dieser Variante ist aber nach der 2. Möglichkeit Schluss. Die erste Variante ermöglicht es, noch weitere Bedingungen abzufragen, z.B. bei FALSE das 'Nein' und sonst NULL, also ein leeres Feld.

Gruß

Robert



Antworten

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 3 Gäste