Objednat výběr subjektu pomocí této nové metody ORDA

Automaticky přeloženo z Deepl

V předchozím příspěvku na blogu jste se dozvěděli, jak vytvářet sofistikovaná a složitá vyhledávací kritéria pomocí vzorců v dotazu ORDA. Abychom vám dále poskytli kompletní a výkonné nástroje pro vývoj, je k dispozici nová metoda ORDA: orderByFormula(). Pomocí vzorců nyní můžete uspořádat výběr entit pomocí složitých kritérií v metodě projektu nebo výrazu 4D.

HDI: Příklady uspořádání výběru entit pomocí vzorce

Kritéria pořadí se vyhodnocují, když je vzorec zadán jako řetězec nebo Formula objektu do orderByFormula() metodě.

Uspořádání pomocí vzorce jako řetězce

Zde máme dataClass, Companies, a seřadíme všechny společnosti na základě jejich zisku (zisk = výnosy – náklady).

Všimněte si, že k entitě se přistupuje prostřednictvím This příkazu.

C_OBJECT($companies;$orderedCompanies)
$companies :=ds.Companies.all()
$orderedCompanies :=$companies.orderByFormula ("This.revenue - This.costs")

Objednávka pomocí objektu vzorce

Zde seřadíme firmy pomocí stejných kritérií, ale místo řetězce použijeme objekt Formula objekt a řadíme sestupně.

C_OBJECT($companies;$orderedCompanies;$formula)
$formula := Formula(This.revenue - This.costs)
$companies :=ds.Companies.all()

$orderedCompanies:=$companies.orderByFormula ($formula;dk descending)

Všimněte si, že při použití objektu Formula objektu poskytuje některé výhody (například automatické doplňování, barvy v editoru kódu atd.) oproti použití vzorce jako řetězce.

Stránka orderByFormula() Metoda má ještě více možností. Podrobnosti naleznete v dokumentaci a výše uvedeném HDI ke stažení.

o uspořádání výběru entit

Nyní můžete vložit příkaz order by dovnitř samotné členské metody query(). To je obrovská výhoda při práci v režimu klient/server, protože můžete spojit dotaz a akci objednání do jednoho požadavku, čímž snížíte počet požadavků odesílaných na server a síťový provoz.

C_OBJECT($companies)
$companies :=ds.Companies.query("revenue> :1 order by costs desc";5000)

Avatar
• Product Owner • Marie-Sophie Landrieu-Yvert se připojila k programovému týmu 4D jako Product Owner v roce 2017. 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. Marie-Sophie vystudovala inženýrskou školu ESIGELEC a svou kariéru zahájila jako inženýrka v IBM v roce 1995. Podílela se na různých projektech (projekty údržby nebo výstavby) a pracovala jako vývojářka Cobol. Poté pracovala jako UML designer a Java developer. V poslední době byly jejími hlavními rolí analyzovat a psát funkčních požadavky a koordinovat obchodní a vývojové týmy.