Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03228.jsonl.gz/1154

Hallo Jürgen,
ich werd’s versuchen. Frag gerne weiter nach, wenn ich noch zu kryptisch bleiben sollte. Kleiner Ausflug in die Hintergründe zunächst (ohne Anspruch darauf, die perfekte Lösung zu bieten – ich kann nicht ausschließen, dass es womöglich eleganter gehen könnte:
Wenn du ein Layout anlegst, musst du festlegen, welche Tabelle darin sichtbar sein soll. Sagen wir mal, du willst eigentlich in die Tabelle KUNDEN schreiben. Platzierst du dann die Felder, kannst du den einen angezeigten Datensatz von KUNDEN beschreiben, oder du schaltest auf ein Listenlaoyut, was dir dann Überblick über alle Datensätze beschert, aber keine komfortable und übersichtliche Felderplatzierung ermöglicht.
Willst du beides kombinieren, Eingabefelder und eine Liste mit den zuletzt eingegebenen Daten, brauchst du einen Ausschnitt bzw. ein Portal. Ein Portal blendet Daten aber nur über eine definierte Beziehung zwischen zwei Tabellen ein. Das läuft dann z. B. so, dass eine Tabelle PRODUKT ein Feld PRODUKT::KUNDE besitzt, in das die ID-NR. eines Kunden eingetragen wird. Zeigst du ein Formular an, das die Felder von KUNDE besitzt, kannst du darin einen Ausschnitt platzieren, der die gekauften PRODUKTe auflistet, über eine Beziehung KUNDE::ID = PRODUKT::KUNDE_ID.
Du möchtest aber gleichzeitig die Felder eines Datensatzes anzeigen und ebenso die ausgefüllten Felder der schon angelegten Datensätze, oder?
Das würde ich so lösen, indem ich eine neue Tabelle, sagen wir mal KUNDEN_STEUERUNG, einführe. Diese bekommt globale Felder, die den Feldern der Tabelle KUNDE gleichen – zumindest denen, die du verändern möchtest.
Zwischen KUNDEN_STEUERUNG und KUNDEN muss, damit die bereits eingegebenen Werte aufgelistet werden können, eine Beziehung definiert werden. Nur dass du nicht wie oben EINEN Datensatz von KUNDEN mit 1 … x Datensätzen von PRODUKT verbinden willst, sondern KUNDEN_STEUERUNG soll *alle* Werte anzeigen, die in die Felder von KUNDEN eingegeben worden sind. So eine Beziehung erreichst du am einfachsten, indem du einen unveränderbaren Wert in KUNDEN_STEUERUNG mit einem identischen Wert in KUNDEN verknüpfst. Das kann z. B. über ein Zahlfeld passieren, das via Formel oder berechnetem Wert eine 1 erhält:
KUNDEN_STEUERUNG::KUNDEN_ID = KUNDEN_ID
Über Scripttrigger überträgst du die Werte der Felder von KUNDEN_STEUERUNG, die verändert wurden, beim Speichern in den neuesten Datensatz von KUNDEN. Im Portal hast du diese Felder ebenfalls definiert. Dann wird, sobald du etwas eingetragen hast, die Liste automatisch ergänzt.
Hilft dir das ein bisschen weiter? Sonst bau ich dir mal eine kleine Beispiel-Datenbank auf.
Viele Grüße
Uli
als Antwort auf: [#499510]