Um eine Liste von Datensätzen anzuzeigen, ist ein Listenfeld zur Auswahl von Entitäten am besten geeignet, wenn Sie die ORDA-Technologie verwenden. 4D v18 R2 vereinfacht Ihr Leben mit einem neuen Werkzeug zur einfachen Erstellung von Listenfeldern für die Entitätsauswahl: List box builder. Was ist das? Es handelt sich um ein einfaches Dialogfeld, in dem Sie Ihre Listbox in wenigen Schritten einrichten können (Auswahl der Tabelle und der anzuzeigenden Felder, Eingabe von Spaltentiteln und Festlegung der Spaltenreihenfolge).
Wie das geht?
Klicken Sie im Formular-Editor auf das neue Symbol, um das Dialogfeld „List box builder“ anzuzeigen.
Wählen Sie dann eine Tabelle und die Felder aus, die in der Listbox angezeigt werden sollen. Die Reihenfolge der Felder entspricht der Reihenfolge der Spalten in der erzeugten Listbox (Sie können sie mit einer einfachen Drag-and-Drop-Aktion neu anordnen).
Listenfelder für die Entitätsauswahl erfordern einen Ausdruck, damit die Entitätsauswahl angezeigt wird. Standardmäßig füllt 4D den Ausdruck mit „Form.currentSelection“ aus.
Wenn Sie auf die Schaltfläche Kopieren klicken, wird der Ausdruck mit Code kopiert, um die gesamte Entity-Auswahl aus der ausgewählten Tabelle zu laden. Das folgende Beispiel zeigt den Inhalt der Zwischenablage des vorausgefüllten Ausdrucks und den zusätzlichen Code:
Form.currentSelection:=ds.Contact.all()
Ein letzter Klick auf die Schaltfläche Build widget und voilà! Das Listenfeld für die Entitätsauswahl wird erstellt. Fügen wir nun eine Schaltfläche hinzu und fügen den Inhalt der Zwischenablage in die Objektmethode der Schaltfläche ein.
Eine Live-Demonstration
In diesem Demonstrationsvideo verwenden wir die Datenbank „Kontakte“. Das Video zeigt zwei Beispiele. Im ersten Beispiel erstellen wir ein Formular mit einem Listenfeld zur Auswahl von Entitäten, um alle Personen aus der Tabelle „Kontakte“ anzuzeigen.
Im zweiten Beispiel erstellen wir zwei Listenfelder: „Kategorie“ und „Kontakt“. Wenn ein Benutzer auf eine Kategorie klickt, wird die Liste der Kontakte für diese Kategorie im zweiten Listenfeld angezeigt.