listenfeld verwenden

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

wambacher
*
Beiträge: 12
Registriert: Sa, 14.03.2015 13:25
Wohnort: Hessen
Kontaktdaten:

listenfeld verwenden

Beitrag von wambacher »

Ich steh mal wieder vor einer dicken Mauer:

eine Tabelle mit 2 Spalten. 1. Spalte Text Primary key, 2. Spalte einfacher Text.

ich möchte nun beide Spalten nebeneinander legen, die erste als Listfeld und die zweite als Textfeld. Nur eine einzige Zeile.

Und nun soll einfach der zu der im ersten Feld ausgewählten Datenzeile passende Wert in der 2. Spalte angezeigt werden. mehr vorerst nicht.

Das ist natürlich nur der Anfang dessen, was ich vorhabe, aber hier klemmt es mal wieder. Daher hab ich das Beispiel auf das absolute Minimum reduziert.

Gruss
walter
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: listenfeld verwenden

Beitrag von RobertG »

Hallo Walter,

meinst Du so etwas wie in dem Thread "abhängige Kontrollfelder"?
Oder möchtest Du nur beide Inhalte zusammen in einem Listenfeld anzeigen können?
Zweite Variante:

Code: Alles auswählen

SELECT CONCAT("PK","Text"), "PK" FROM "Tabelle" ORDER BY "PK"
ist für ein Listenfeld und MySQL der Code. Die doppelten Anführungszeichen musst Du durch die entsprechende MySQL-Maskierung ersetzen.

Gruß

Robert
wambacher
*
Beiträge: 12
Registriert: Sa, 14.03.2015 13:25
Wohnort: Hessen
Kontaktdaten:

Re: listenfeld verwenden

Beitrag von wambacher »

RobertG hat geschrieben:Hallo Walter,

meinst Du so etwas wie in dem Thread "abhängige Kontrollfelder"?
Oder möchtest Du nur beide Inhalte zusammen in einem Listenfeld anzeigen können?
Den Thread muss ich mir noch ansehen; auf jeden Fall brauche ich NICHT die 2. Lösung, sondern 2 getrennte Felder nebeneinander.

Gruss
walter

ps: ich schaffe mit PostgreSQL, aber das sollte unerheblich sein.
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: listenfeld verwenden

Beitrag von RobertG »

Hallo Walter,

das mit MySQL war ein Irrtum meinerseits - aus einem anderen Thread, auch hier ...

Warum brauchst Du das Feld als separates Feld? Möchtest Du das Feld bearbeiten, den Primärschlüssel aber bestehen lassen? Dann funktioniert das Prinzip des ganannten Threads auch bei Dir: Hauptformular - Unterformular, Filtertabelle im Hauptformular, Eingabetabelle im Unterformular.

Gruß

Robert
wambacher
*
Beiträge: 12
Registriert: Sa, 14.03.2015 13:25
Wohnort: Hessen
Kontaktdaten:

Re: listenfeld verwenden

Beitrag von wambacher »

Nee, ich will den Wert in der 2. Spalte einfach SEHEN. Erste Spalte Listenfeld, 2. Spalte passendes Datenfeld.

Code: Alles auswählen

#\d stations
    Tabelle „public.stations“
   Spalte   |   Typ   | Attribute 
------------+---------+-----------
 name       | text    | not null
 system     | text    | not null
 father     | text    | not null
 type       | text    | not null
Indexe:
    "stations_pkey" PRIMARY KEY, btree (name)

#select name,system from stations;
           name            |     system     
---------------------------+----------------
 Kubasov Orbital           | Ekonir
 Morey Vision              | Ekonir
 Hahn Relay                | Apoyota
 Flint Station             | Apoyota
... snip ...
Bild
Erste Station, System ist richtig. Ist aber nur Zufall, da hier immer das Feld des ersten Datensatzes angezeigt wird.

Bild
andere Station, System ist unverändert - also falsch.

Bild
Klick auf die rechte Spalte -> System stimmt.

Ich hoffe es ist jetzt ein wenig klarer.

Gruss
walter

ps: Das ist eine "Spielerei". Ich erstelle mir eine kleine Anwendung für das Spiel Elite Dangerous um dort den Überblick zu behalten.
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: listenfeld verwenden

Beitrag von RobertG »

Hallo Walter,

wenn Du den Eintrag nur sehen willst, warum packst Du dann nicht beide Einträge in ein Feld?
habe ich z.B. eine Datenbank für Waren, zu denen ich bei der Eingabe den Preis sehen will, dann mache ich mir genau dazu passen das Listenfeld. Gegebenenfalls auch mit so einer Anzeige, dass das Ganze sauber untereinander sortiert wird. Siehe dazu auch das Handbuch, Kapitel Abfragen → Abfragen für die Erstellung von Listenfeldern.
Das sieht dann so aus:
Listenfeld.png
Listenfeld.png (19.02 KiB) 4466 mal betrachtet
Der Code muss eventuell angepasst werden, da Du nicht mit der internen HSQLDB arbeitest.


Gruß

Robert
wambacher
*
Beiträge: 12
Registriert: Sa, 14.03.2015 13:25
Wohnort: Hessen
Kontaktdaten:

Re: listenfeld verwenden

Beitrag von wambacher »

Bin ja noch nich fertig. Wie ich am Anfang geschrieben habe, ist das die absolute Minimalversion um das überhaupt mal hinzukriegen.

1. Erweiterung: insgesamt 3 Felder rechts vom Listenfeld.
2. unter der einzeiligen Liste der Stationsdaten eine weitere Tabelle mit dutzenden Datensätzen als Unterformular.

Grundprinzip: Wähle eine von hunderten Stationen aus, zeige mit deren Basisdaten und da drunter eine Tabelle mit den dort zu kaufenden Waren.

Oder realitätsnäher:

Oben Kundendaten (Name, Anschrift, Telefon ...) und unten Umsätze (Auftragsdaten) des Kunden.

Knackpunkt ist für mich, dass die Auswahl der gesuchten Station/des Kunden über eine Selectlist, Suche, Eingabe der ersten Buchstaben oder ähnliches gemacht wird - was immer sich auch dafür anbietet. "Blättern" mit "nächster Datensatz" kommt dafür nicht in Frage.

So schwer kann das doch nicht sein.

Aber bitte NUR auf das Miniproblem antworten, sonst wird es zu komplex. Und eventuell fällt dann der Groschen bzw. Cent und ich komme dann alleine weiter.

Gruss
walter
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: listenfeld verwenden

Beitrag von RobertG »

Hallo Walter,

was hindert Dich denn daran, wie im vorgenannten Thread vorzugehen (viewtopic.php?f=8&t=65506)?
Du erstellst eine Filter-Tabelle. Dann wählst Du aus dem Listenfeld etwas aus, so wird das in die Filtertabelle geschrieben. Gleichzeitig wird das Formular zu Deiner eigentlichen Tabelle neu eingelesen. Da erscheint dann nur der aktuelle Datensatz.
Als Unterformular kommen dann sämtliche Daten, die sich auf diesen einen Datensatz beziehen.

Gruß

Robert
wambacher
*
Beiträge: 12
Registriert: Sa, 14.03.2015 13:25
Wohnort: Hessen
Kontaktdaten:

Re: listenfeld verwenden

Beitrag von wambacher »

RobertG hat geschrieben:Hallo Walter,

was hindert Dich denn daran, wie im vorgenannten Thread vorzugehen (viewtopic.php?f=8&t=65506)?
Eigentlich nix, bis auf das schwache Wissen meinerseits. Dass das eine Lösung meines Problemes sein könnte, ist mir noch nicht klar gewesen.

"Filtertabelle"? schon wieder so ein Begriff, den du wohl täglich verwendest und ich versteh nur Bahnhof.
Mal schnell im Manual nachgesehen: Taucht nur bei Berichten auf und ich will ein Formular erstellen :(

Nun denn

Gruss
walter

Nachtrag: Ich werde jetzt das Beipiel der Ausleihe aus der Doku nachvollziehen. Die entspricht wohl in etwa dem, was ich vorhabe.

Oben Benutzerauswahl - also für mich Stationen - und unten Ausleihen - also für mich Waren.
Das Suchfilter taucht da auch auf.
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: listenfeld verwenden

Beitrag von RobertG »

Hallo Walter,

schau einmal im Kapitel "Datenbankaufgaben" nach "Datenfiltrerung" und "Datensuche". Das Beispiel aus dem anderen Thread funktioniert genau nach diesem Prinzip.

Gruß

Robert
Antworten