Das Abrufen der Liste eindeutiger Datenelemente ist immer hilfreich, wenn Daten manipuliert werden. In manchen Fällen ist es wichtig, die Anzahl der Vorkommen jedes Wertes abzufragen. Die Funktion distinct einer Collection und Entity selection ermöglicht den Abruf einer Liste eindeutiger Werte. Mit 4D v20 können Sie auch die Anzahl der Vorkommen jedes einzelnen Wertes abfragen.
Und das ist noch nicht alles!
Ein Objekt in der Datenbank kann verwendet werden, um vom Benutzer eingegebene Daten zu speichern. Auf der Codeseite müssen Sie also alle möglichen Pfade zu dem Objekt kennen. Die Funktion distinctPaths wurde der Klasse Entity selection hinzugefügt.
Hier finden Sie alles, was Sie wissen müssen.
Neue Option für distinct
Die Syntax ist für beide Klassen, Collection und Entity selection, identisch. Sie müssen die Konstante ck count values, oder dk count values an den zweiten Parameter namens Option übergeben, um eine Sammlung von Attributpaaren zu erhalten: value und count.
Wenn Sie die Option nicht übergeben, bleibt das Verhalten dasselbe. Sie erhalten eine Sammlung eindeutiger Werte.
Beispiel mit Collection
Sie möchten zum Beispiel die Liste der eindeutigen Werte einer Kategoriesammlung und die Anzahl der Vorkommen jeder Kategorie:
var $col; $category: Collection
$category :=New Collection("Familie"; "Freund"; "Arbeit"; "Familie"; "Persönlich")
$col :=$category.distinct
(ck count values)
Das Ergebnis ist:
[ {"value":"Family","count":2}, {"value":"Friend","count":1}, {"value":"Personal","count":1}, {"value":"Work","count":1} ]
Beispiel mit Entity selection
Sie möchten zum Beispiel die Liste der Länder, Ihrer Kontakte und die Anzahl der Kontakte pro Land abrufen:
var $countries : Collection
)
$countries :=ds.Contact.all().distinct("Land";dk count values
Das Ergebnis ist:
[ {"value":"France","count":2}, {"value":"Morocco","count":10}, {"value":"Germany","count":3} ]
Neue Funktion für unterschiedliche Pfade
Die Funktion distinctPaths der Klasse Entity selection gibt die Liste der eindeutigen Pfade zurück, die in Ihrem indizierten Objektfeld gefunden wurden. Sie müssen den Namen des indizierten Objektfeldes als Parameter übergeben. Diese Funktion ist äquivalent zum Befehl DISTINCT ATTRIBUTE PATHS.
Beispiel
Sie möchten zum Beispiel alle möglichen Pfade des Objektfeldes „Adresse“ abrufen:
var $paths : Collection
$ paths :=ds.Contact.all().distinctPaths("address")
Das Ergebnis ist:
[ "Nummer", "StreetAddress", "ErweiterteAdresse", "Stadt", "Postleitzahl", "Land" ]
Weiter…
Teilen Sie uns Ihr Feedback und Ihre Ideen im 4D Forum mit, damit wir das Produkt weiter verbessern können.