🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Listenfeld

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
eiswiese
Beiträge: 29
Registriert: Fr 8. Mär 2013, 10:41

Listenfeld

Beitrag von eiswiese » Fr 8. Mär 2013, 11:00

Vorab: ich bin neu hier und dieses ist mein erster Beitrag...

Ich habe in einer Tabelle der Datenbank die Felder "Name" und "Vorname".
Im Formular hätte ich gerne ein Listenfeld mit beiden Angaben, also "Name, Vorname".
Wie bekomme ich das zusammengefügt?

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Listenfeld

Beitrag von F3K Total » Fr 8. Mär 2013, 16:01

Hi,
was hast Du mit dem Listenfeld vor?
Den meisten "neuen" schwebt vor, das Listenfeld als Filter zur Auswahl eines Datensatzes zu verwenden.
Dies ist aber keine Standardfunktion von LibreOffice.
Oder möchtest Du mit dem Listenfeld einen Schlüsselwert aus einer Tabelle in eine andere Tabelle einfügen?
Oder ...

Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

eiswiese
Beiträge: 29
Registriert: Fr 8. Mär 2013, 10:41

Re: Listenfeld

Beitrag von eiswiese » Fr 8. Mär 2013, 16:53

Leider gibt es in Deutschland zu viele Müllers, Meiers und Schulzes... ;)
Also muss ich die Patientenauswahl für das "Behandlungsblatt" zusätzlich über den Vornamen angehen.
Den zweiten Teil deiner Frage verstehe ich nicht wirklich, vielleicht so:
Der Name aus diesem Listenfeld soll dann noch mit einem (noch zu erstellenden) Subformular verknüpft werden, in dem alle bisherigen Behandlungen des Patienten angezeigt werden.
Baustellen über Baustellen, Fragen über Fragen, erst Recht für blutige Anfänger wie mich...
Gruß Eiswiese

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Listenfeld

Beitrag von RobertG » Fr 8. Mär 2013, 16:58

Hallo eiswiese,
eiswiese hat geschrieben: Im Formular hätte ich gerne ein Listenfeld mit beiden Angaben, also "Name, Vorname".
Bei den Eigenschaften des Listenfeldes musst Du den Reiter "Daten" aufsuchen. Die entsprechende Abfrage gestaltest Du im SQL-Format - also SQL voreinstellen.
Jetzt gehe ich davon aus, dass die Tabelle "Name" heißt, der Primärschlüssel "ID", außerdem noch "Vorname" und "Nachname".

Code: Alles auswählen

SELECT "Nachname"||', '||"Vorname", "ID" FROM "Name" ORDER BY "Nachname"||', '||"Vorname" ASC
Das gibt Dir die Übersicht über Nachname, Vorname, sortiert nach dem Alphabet. Ungünstig ist so ein Listenfeld, wenn Du Personen mit gleichen Namen hast - kam z.B. bei uns im Sportverein vor. Da Du die Namen nicht ändern kannst, musst Du ein anderes unverwechselbares Merkmal suchen. Verlässlichstes Merkmal, das aber nichts sonst mit den Namen zu tun hat, ist der Primärschlüssel:

Code: Alles auswählen

SELECT "Nachname"||', '||"Vorname"||' Nr.:'||"ID", "ID" FROM "Name" ORDER BY "Nachname"||', '||"Vorname"||' Nr.:'||"ID" ASC
Ich hoffe, dass Du damit zurecht kommst.

Ansonsten steht so etwas auch im Base-Handbuch: http://de.libreoffice.org/hilfe-kontakt/handbuecher/ - etwas nach unten scrollen, ist gerade in der Version 4.0 neu aufgelegt worden.

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

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Listenfeld

Beitrag von RobertG » Fr 8. Mär 2013, 17:05

Hallo Eiswiese,
eiswiese hat geschrieben: Der Name aus diesem Listenfeld soll dann noch mit einem (noch zu erstellenden) Subformular verknüpft werden, in dem alle bisherigen Behandlungen des Patienten angezeigt werden.
Baustellen über Baustellen, Fragen über Fragen, erst Recht für blutige Anfänger wie mich...
Dann benötigst Du kein Listenfeld mit Nachnamen und Vornamen.
Siehe im Handbuch nach den Filtermöglichkeiten.
Prinzipiell hast Du im Hauptformular alle Daten zu den Patienten bereitstehen, im Subformular dann die Behandlungstermine, Diagnosen usw. Du scrollst im Hauptformular durch ein Tabellenkontrollfeld. Der dort markierte Datensatz wird dann mit dem Subformular angezeigt. Das ist im Handbuch am Beispiel des Buchentleihs in einer Bücherei zu sehen. Da ist dann noch durch die Einblendung des Namens deutlich gemacht, zu welcher Person die entsprechenden Daten im Subformular gehören, so dass nicht durch einen falschen Klick im Hauptformular plötzlich ein jugendlicher Sportler einen Rollator verschrieben bekommt.

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

eiswiese
Beiträge: 29
Registriert: Fr 8. Mär 2013, 10:41

Re: Listenfeld

Beitrag von eiswiese » Fr 8. Mär 2013, 17:19

Hallo Robert, mein Held!
Erstmal danke für die hilfreiche, schnelle Antwort.
Problem Listenfeld ist damit schon mal fast gelöst. Jetzt muss ich nur noch herausfinden, warum mir jene Daten nicht angezeigt werden, bei Personen, bei denen kein Vorname eingetragen ist.


Zu dem Subformular:
Es soll dann so sein, das im "aktuellen" Bahandlungsblatt oben aktuelle Eintagungen vorgenommen werden können, während unten in tabellarischer Form alle alten Vorgänge -nur zur Ansicht- aufgeführt werden...

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Listenfeld

Beitrag von RobertG » Fr 8. Mär 2013, 19:54

Hallo eiswiese,
eiswiese hat geschrieben:
Problem Listenfeld ist damit schon mal fast gelöst. Jetzt muss ich nur noch herausfinden, warum mir jene Daten nicht angezeigt werden, bei Personen, bei denen kein Vorname eingetragen ist.
Das liegt daran, dass bei einer Verknüpfung von einem Feld mit einem leeren Feld das Ergebnis auch nur leer sein kann. Das ist genauso wie die Verbindung von zwei Tabellen auf die normale Art und Weise. Wenn zu den Werten der einen Tabelle kein Wert in der zweiten Tabelle existiert, ist im Ergebnis kein Datensatz angezeigt.
Du kannst Das folgendermaßen umgehen:

Code: Alles auswählen

SELECT "Nachname"||IFNULL(', '||"Vorname",''), "ID" FROM "Name" ORDER BY "Nachname"||', '||"Vorname" ASC
IFNULL bildet das Komma und den Vornamen nur dann ab, wenn auch ein Vorname enthalten ist. Ansonsten wird ein Text ohne Inhalt (2* ' ) angehängt. Es handelt sich also nicht um doppelte Anführungsstriche, sondern um zwei einzelne Anführungsstriche direkt hintereinander.
eiswiese hat geschrieben:
Zu dem Subformular:
Es soll dann so sein, das im "aktuellen" Bahandlungsblatt oben aktuelle Eintagungen vorgenommen werden können, während unten in tabellarischer Form alle alten Vorgänge -nur zur Ansicht- aufgeführt werden...
Nur wirst Du, wie R. schon schrieb, mit einem Listenfeld nicht die Daten so ohne weiteres finden. Das Listenfeld würde dazu dienen, die Personen einzutragen, nicht aber damit einen Filter zu erstellen. Prinzipiell geht das zwar auch, aber nur mit Zusatz von Makros - und das sollte für den Anfang vermieden werden. Wenn Du neben dem Listenfeld mit einem Button arbeiten willst, dann würde eine Filterung auch entsprechend möglich werden.

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

eiswiese
Beiträge: 29
Registriert: Fr 8. Mär 2013, 10:41

Re: Listenfeld

Beitrag von eiswiese » Do 14. Mär 2013, 20:44

Danke dir nochmal, Robert.
Das hat jetzt ein bischen länger gedauert, war dafür aber auch nicht so richtig erfolgreich, so langsam bekomme ich Zweifel, ob das ein Projekt für mich ist... ;)
Das mit dem Listenfeld hab ich jetzt im Griff.
Aber das mir dem Suformular und dem Button bekomm ich nicht auf die Reihe.
Ich scheitere schon bei der Erstellung des Subformulars:
Mein Hauptformular besteht im Moment nur noch aus besagtem Listenfeld mit der Namensauswahl.
Also Unterformular über den Navigator anlegen, Eigenschaften einstellen, verknüpfen.
Aber nirgends erscheint dieses Unterformular. (Außer in der Übersichtsstruktur des Navigators)
Sieht nicht so aus, als würde ich da alles richtig machen. grrrrr! :evil:

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Listenfeld

Beitrag von gogo » Do 14. Mär 2013, 21:20

eiswiese hat geschrieben:...
Aber nirgends erscheint dieses Unterformular. (Außer in der Übersichtsstruktur des Navigators)
...
Genau dort soll es sein!

Leg' mal irgendwo auf der Oberfläche des Formular-Fensters ein Konrtollelement ab. Es ist ganz egal was es für eines ist, zur Not tut's auch ein Viereck, oder eine simple Linie. Auch dieses erscheint dann in der Übersichtsstruktur des Navigators. Sollte es da "im" Unterformular sein, dann klickst Du im Navigator mal auf das Symbol des Unterformulars, und Du wirst sehen, dass es mitmarkiert wurde - im Navigator UND auf der Oberfläche. D.h.: das Unterformular ist ein unsichtbares Element des Hauptformulars, nur im Navigator ist es sichtbar. Kontrollelemente sind aber natürlich auf der Oberfläche sichtbar. Dies ist ganz anders als z.B. bei Access, wo Kontrollelemente des Unterformulars nur innerhalb des Bereiches des UForms zu sehen sind! Im Gegensatz dazu können die Kontrollelemente eines Base-Formular-Objektes bunt durchmischt auf der Oberfläche liegen, sie können bei mehrseitigen "Formularen" auch auf verschiedenen Seiten sein, denn ein Base-Formular ist eigentlich eine Writer-Datei (die in einer Base-Datei gespeichert ist). Der einzige Platz wo ich noch keines platzieren konnte ist die Kopf- oder Fußzeile (liegt vermutlich dran, dass das KE dann auf jeder Seite,d.h. uU mehrfach sichtbar wäre...)
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

eiswiese
Beiträge: 29
Registriert: Fr 8. Mär 2013, 10:41

Re: Listenfeld

Beitrag von eiswiese » Do 14. Mär 2013, 21:58

Hallo gogo,
das hab ich jetzt kapiert, ich krieg das trotzdem nicht zusammen.
Hab mehrere "Objekte" ausprobiert, zB auch ein Tabellenkontrollfeld, schien halt naheliegend.
Aber da ist dann der "Reiter" Daten in den Eigenschaften nicht vorhanden, so dass ich keine Verbindung herstellen kann.
Zuletzt geändert von eiswiese am Do 28. Mär 2013, 10:00, insgesamt 1-mal geändert.


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.



Antworten