Seznamte se s vylepšenou funkcí Distinct

Automaticky přeloženo z Deepl

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.

Vanessa Talbot
• Product Owner • Vanessa Talbot se připojila k programovému týmu 4D v červnu 2014. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich převod do funkčních specifikací. Její úlohou je také zajistit, aby implementovaná funkce odpovídala potřebám zákazníka. Od svého příchodu pracovala na definování klíčových prvků ve 4D. Pracovala na většině nových funkcí preemptivního multi-threadingu a také na velmi složitém tématu: nové architektuře pro enginované aplikace. Vanessa má titul z Telecom Saint-Etienne. Svou kariéru začala ve Výzkumném ústavu kriminalistickém jako vývojářka pro audiovizuální oddělení. Působila také v mediální a lékařské oblasti jako expertka na technickou podporu, produkci i dokumentaci novinek.