Použití vzorců ve sbírkách a zpětných příkazech

Automaticky přeloženo z Deepl

Když používáte kolekce s členskou metodou, která potřebuje zpětné volání, mnozí z vás nás požádali o jednodušší způsob.

Žádali jste nás o to, my jsme vám to splnili!

Počínaje verzí 4D v19 R6 umožňuje 4D používat vzorec pro definici zpětného volání v členských funkcích kolekce, tzv. EXECUTE METHOD IN SUBFORM, CALL FORM, a CALL WORKER příkazy. Pokud dokážete svůj kód zredukovat na jednoduchý výraz, můžete jej předat přímo do vzorce bez použití metody.

Vzorec HDI v příkazech

vzorec v KOLEKCIi

Nyní můžete vzorec použít jako zpětné volání v členských metodách: .every(), .filter(), .find(), .findIndex(), .map(), .orderByMethod(), .reduce(), .some(), .sort()

Chcete-li například vyfiltrovat kolekci tak, abyste našli všechny členy větší než 0, můžete to udělat na jednom řádku:

$result:=$c.filter(Formula($1.value>0))

Jak vidíte výše, pro větší jednoduchost a čitelnost jsme ve vzorcích učinili $1.result nepovinným.

Samozřejmě můžete vždy použít kód:

$c:=New collection
$c.push(1;-5; -3; -1;3; -4; -6; -2;10)
$result:=$c.filter("NumberGreaterThan0")

ale můžete použít i vzorec, který odkazuje na metodu, a využít tak doplňování kódu k nalezení názvu metody a využít automatického přejmenování, pokud změníte název metody:

$c:=New collection
$c.push(1;-5; -3; -1;3; -4; -6; -2;10)
$result:=$c.filter(Formula(NumberGreaterThan0))

s metodou NumberGreaterThan0:

#DECLARE ($param:Object)
$param.result:=$param.value>0

formula v příkazech

Vzorec můžete použít k definici zpětného volání v metodách typu EXECUTE METHOD IN SUBFORM, CALL FORM, a CALL WORKER příkazů.

Pokud jde o kolekce, můžete používat výrazy, aniž byste museli vytvářet metodu:

// Close the windows in the context of the form
CALL FORM($windows;formula(CANCEL))

nebo se na metodu odkázat jedním z těchto 2 způsobů:

EXECUTE METHOD IN SUBFORM("Subform"; Formula(UpdateField))

nebo

EXECUTE METHOD IN SUBFORM("Subform"; "UpdateField")

Vyzkoušejte všechny tyto nové funkce s výše uvedeným HDI a neváhejte vyjádřit svůj názor na fóru!

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se připojil k týmu 4D Program v listopadu 2016. Jako Product Owner má na starosti psaní uživatelských příběhů, které následně převádí do funkčních specifikací. Jeho úkolem je také zajistit, aby dodaná implementace funkcí splňovala potřeby zákazníků.Po získání bakalářského titulu v oboru informatiky na CNAM nastoupil Fabrice do malé softwarové vydavatelské společnosti jako vývojář Windev. Poté pracoval pro různé společnosti v oblasti průmyslu a obchodu jako vývojář aplikací Windev a webových aplikací a také jako technický poradce pro nové funkce.