Kürzlich hat 4D einen neuen Variablentyp eingeführt : Sammlungen, sowie eine große Anzahl von Methoden, um sie zu bearbeiten. Mit 4D v17 werden die Möglichkeiten von Sammlungen erweitert, indem der Inhalt einer Sammlung einfach angezeigt werden kann. Wie das geht? Mit Listenfeldern vom Typ Sammlung!
Der große Vorteil der Verwendung von Sammlungen ist, dass Sie heterogene Daten in derselben Spalte anzeigen können. Nehmen wir zum Beispiel an, Sie haben eine Sammlung mit einem Feld „frei“ für den Endbenutzer. Je nach Kontext kann der Benutzer manchmal eine Zahl, manchmal einen Text oder ein Datum eingeben. Jetzt können Sie alles in einer Listboxspalte anzeigen, ohne einen Cast erzwingen zu müssen.
Sie müssen Ihre Sammlung nicht in ein Array umwandeln. Kein Code. Ganz einfach!
Listenfelder für Sammlungen: Beispiel
So konfigurieren Sie die Listbox
Wählen Sie zunächst den Listenfeldtyp „Sammlung“. Geben Sie dann als Datenquelle eine Variable oder einen Ausdruck ein, der eine Sammlung liefert.
Anschließend müssen Sie die Datenquelle für jede Spalte Ihrer Listbox definieren. Das ist ganz einfach: Geben Sie für jede Spalte in der Eigenschaftsliste einen Ausdruck ein, so wie Sie es für ein Listenfeld des aktuellen Auswahltyps tun würden.
Hierfür müssen Sie den neuen This Befehl. Er gibt ein Objekt zurück , das das Element enthält, das gerade neu gezeichnet wird. In einer Listbox wird dieser Befehl für jede Zeile ausgewertet und ermöglicht den Zugriff auf alle Attribute des aktuellen Elements der Sammlung.
Inhaltsformatierung mit Hilfe eines Ausdrucks
Während Sie bei einem Listenfeld vom Typ Auswahl einen Ausdruck eingeben können, um die Schriftfarbe, die Hintergrundfarbe, den Schriftstil, den auswählbaren und den aktivierten Status zu definieren, müssen Sie dennoch eine Projektmethode oder einen Ausdruck für jede Aktion angeben. Bei Listenfeldern vom Typ Sammlung ist es sogar noch einfacher: Sie können alle diese Parameter einfach in einer EINZIGEN Projektmethode, dem Meta-Info-Ausdruck, definieren.
Der Meta-Ausdruck wird für jede angezeigte Zeile ausgewertet und gibt ein Objekt zurück, das die folgenden Attribute enthält:
- fill: Geben Sie eine CSS-Farbe ein, um die Hintergrundfarbe zu definieren
- stroke: Geben Sie eine CSS-Farbe ein, um die Schriftfarbe zu definieren
- fontStyle: Setzen Sie den Wert auf „italic“, um den kursiven Stil anzuwenden, andernfalls setzen Sie ihn auf „normal“.
- fontWeight: Setzen Sie den Wert auf „bold“, um den fetten Stil anzuwenden, andernfalls setzen Sie ihn auf „normal“.
- textDecoration: Setzen Sie den Wert auf „underline“, um den Unterstreichungsstil anzuwenden, ansonsten setzen Sie ihn auf „normal“.
- unselectable: Geben Sie einen booleschen Wert ein, um festzulegen, ob die Zeile auswählbar ist oder nicht
- disabled: Geben Sie einen booleschen Wert ein, um die Zeile zu aktivieren oder zu deaktivieren.
Wenn das Attribut nicht vorhanden ist, verwendet 4D den Standardwert.
Sie können zum Beispiel den Meta-Ausdruck „Decorate“ an das Listenfeld binden. Die Decorate-Methode enthält den folgenden Code:
If (Dies.value>10)
$0 :=New object("fill"; "red"; "stroke"; "white"; "fontWeight"; "bold")
Else
$0 :=New object("fill"; "blue")
End if
Wenn in diesem Beispiel das Attribut „value“ größer als 10 ist, ist der Zeilenhintergrund rot und der Text weiß und fett. Wenn das Attribut „Wert“ kleiner als 10 ist, wird der Zeilenhintergrund blau sein.
Das/die ausgewählte(n) Element(e) abrufen
Mit den Eigenschaften „Aktuelles Element“ und „Aktuelle Elementposition“ können Sie die Objekte des aktuellen Elements der Sammlung sowie deren Position abrufen.
Mit der Eigenschaft „Ausgewählte Elemente“ können Sie eine Sammlung der ausgewählten Elemente aus dem Listenfeld abrufen. Sie können diese neue Sammlung sogar als Datenquelle für ein anderes Listenfeld definieren. Auf diese Weise können Sie ohne eine einzige Zeile Code die Teilmenge eines Listenfeldes in einem anderen Listenfeld anzeigen.
auf der Seite mit den 4D-Befehlen
Die 4D Befehle des Themas „Listbox“ wurden aktualisiert, um den Sammlungstyp zu unterstützen. Hier ein paar Beispiele: LISTBOX SORT COLUMN, LISTBOX INSERT COLUMN FORMULA, LISTBOX SET COLUMN FORMULA, usw. Weitere Details finden Sie in der vollständigen Liste der 4D Listenfeld-Befehle.