Anzeige einer Sammlung in einer Listbox

Automatisch übersetzt von Deepl

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.

blank

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.

Vanessa Talbot
Product Owner - Vanessa Talbot kam im Juni 2014 zum 4D Programmteam. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Seit ihrer Ankunft hat sie an der Definition der wichtigsten Funktionen in 4D gearbeitet. Sie hat an den meisten der neuen Funktionen für präemptives Multi-Threading gearbeitet und auch an einem sehr komplexen Thema: der neuen Architektur für erstellte Anwendungen. Vanessa hat einen Abschluss von der Telecom Saint-Etienne. Sie begann ihre Karriere am Criminal Research Institute als Entwicklerin für die audiovisuelle Abteilung. Sie hat auch in den Bereichen Medien und Medizin als Expertin für technischen Support, Produktion und die Dokumentation neuer Funktionen gearbeitet.