Wie man eine mehrstufige Sammlung in verschiedenen Listenfeldern anzeigt!

Automatisch übersetzt von Deepl

Ab 4D v17 kann der Inhalt einer mehrstufigen Sammlung einfach in verschiedenen Listenfeldern angezeigt werden. Das bedeutet, dass Sie mehrere Listenfelder verbinden können, um verschachtelte Details anzuzeigen … ohne eine einzige Zeile Code! Dies wird erreicht, indem Sie einfach ein Objekt oder eine Sammlung als Datenquelle für eine andere Listbox verwenden!

Mit dem neuen Listbox-Sammlungstyp wurden die Eigenschaften „Aktuelles Element“ und „Ausgewählte Elemente“ hinzugefügt. Beachten Sie, dass Sie mit der Eigenschaft „Aktuelles Element“ ein Objekt abrufen können, während die Eigenschaft „Ausgewähltes Element“ eine Sammlung zurückgibt.

Schauen wir uns nun ein konkretes Beispiel an und sehen wir uns an, wie wir die Ergebnisse eines Bluttests anzeigen können!

Datenbank-Beispiel

Was ist drin?

Auf der ersten Ebene finden wir den Namen des Patienten, das Datum der Untersuchung und den Namen des Arztes. Dann werden die Ergebnisse nach Kategorien geordnet. Für jede Kategorie gibt es eine Liste von Tests mit dem Ergebniswert, dem Minimum, dem Maximum und der Einheit.

Was die Datenstruktur betrifft, so haben wir ein Objekt mit einigen Attributen der ersten Ebene( d. h. Vorname, Nachname usw.) sowie eine Sammlung von Kategorieobjekten. Dann haben wir für jedes Kategorieobjekt eine Sammlung von Testobjekten. Zusammengefasst:

{
  "lastname": "Beal",
  "firstname": "Estele",
  ...,
  "results": [{
    "category": "Metabolic",
    "test": [
      { "name": "Albumin", "value": ... },
      { "name": ... }]
  }, {
    "category": "Lipoprotein",
    "test": [
      { "name": "HDL", "value": ...  },
      { "name": ... }]
  }, {...}]
}

Das unten stehende Schema beschreibt, wie die Ergebnisse in zwei Listenfeldern neben der Objekteingabe angezeigt werden. Und das alles … ohne eine einzige Zeile Code! Tatsächlich sind alle Eigenschaften in den Formularobjekten definiert, der einzige Teil, in dem etwas Kodierung erforderlich ist, ist beim Laden des Ergebnisses. Das war’s, Leute! ?

Wie Sie sehen, macht dieses Beispiel die Bluttestergebnisse leichter lesbar und verständlich, vor allem wenn die falschen Daten mit einem Farbspritzer hervorgehoben werden.

Zu diesem Zweck haben wir die folgende Decorate-Methode mit dem Meta-Ausdruck in der Eigenschaft des Listenfeldes verknüpft:

If (This.value>(This.max*2))
$0 :=Form.meta.doubleOutOfRange
Else
If ((This.value>This.max) | (This.value<This.min))
$0 :=Form.meta.outOfRange

Else
$0 :=Form.meta.perfectValue

End if
End if

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.