Získání seznamu jedinečných datových prvků je vždy užitečné při manipulaci s daty. V některých případech je nezbytné získat počet výskytů každé hodnoty. Funkce distinct tříd Collection a Entity selection umožňuje získat seznam jedinečných hodnot. V aplikaci 4D v20 můžete také získat počet výskytů každé jedinečné hodnoty.
A to není všechno!
Objekt v databázi lze použít k uložení vlastních údajů zadaných uživatelem. Na straně kódu tedy musíte znát všechny možné cesty k objektu. Do třídy Entity selection byla přidána funkce distinctPaths.
Zde je vše, co potřebujete vědět.
Nová možnost pro odlišný
Syntaxe je shodná pro obě třídy, Collection i Entity selection. Musíte předat konstantu ck count values, nebo dk count values, do druhého parametru s názvem option, abyste získali kolekci dvojic atributů: value a count.
Pokud volbu nepředáte, chování zůstane stejné; získáte kolekci jedinečných hodnot.
příklad s kolekcí
Například chci získat seznam jedinečných hodnot kolekce kategorií a počet výskytů každé kategorie:
var $col; $category: Collection
$category :=New Collection("Rodina"; "Přítel"; "Práce"; "Rodina"; "Osobní")
$col :=$category.distinct
(ck count values)
Výsledkem je:
[ {"value":"Family","count":2}, {"value":"Friend","count":1}, {"value":"Personal","count":1}, {"value":"Work","count":1} ]
Příklad s výběrem entit
Chci například získat seznam zemí mých kontaktů a počet kontaktů v jednotlivých zemích:
var $countries Collection
)
$countries :=ds.Contact.all().distinct("země";dk count values
Výsledek je následující:
[ {"value":"France","count":2}, {"value":"Morocco","count":10}, {"value":"Germany","count":3} ]
Nová funkce distinct paths
Funkce distinctPaths třídy Entity selection vrací seznam odlišných cest nalezených ve vašem indexovaném poli objektu. Jako parametr musíte předat název indexovaného pole objektu. Tato funkce je ekvivalentní příkazu DISTINCT ATTRIBUTE PATHS.
Příklad:
Například chci získat všechny možné cesty objektového pole „adresa“:
var $paths Collection
.
$ paths :=ds.Contact.all().distinctPaths("adresa")
Výsledek je následující:
[ "Číslo", "StreetAddress", "ExtendedAddress", "City", "ZipCode", "Country" ]
Další…
Neváhejte se podělit o své názory a nápady na fóru 4D a pomozte nám tak produkt dále vylepšovat.