4D v18 R5 zavádí nový příkaz, který zjednodušuje psaní kódu: VP SET CUSTOM FUNCTIONS. Vytváří vlastní funkce v aplikaci 4D View Pro, které provádějí vzorce 4D.
Díky tomuto příkazu můžete nyní ve vzorcích buněk povolit použití příkazů 4D, polí, proměnných, metod nebo libovolných výrazů. Například pro použití jednoduché proměnné v aplikaci 4D View Pro není třeba vytvářet metodu, stačí ji předat jako parametr na adrese Formula.
VP SET CUSTOM FUNCTIONS umožňuje v aplikaci 4D View Pro přístup k:
- 4D proměnné
- pole
- metody
- 4D příkazy
Během události při načítání je třeba deklarovat všechny 4D výrazy, ke kterým chcete mít přístup v aplikaci 4D View Pro.
Nejprve vytvořte objekt a pomocí atributu objektu definujte název volání vaší metody:
$o:=New object
//Name of the function in 4D View Pro: "DRIVERS_LICENCE"
$o .DRIVERS_LICENCE:=New object
Poté přidejte atribut formula, který obsahuje vzorec založený na vašem výrazu. Tento výraz bude při použití ve vašich buňkách vypočítán.
Pokud vaše funkce DRIVERS_LICENCE odkazuje na:
- globální proměnnou:
$o.DRIVERS_LICENCE.formula:=Formula(DriverLicence)
- tabulku polí:
$o.DRIVERS_LICENCE.formula:=Formula([Users]DriverLicence)
- metodu: :
$o.DRIVERS_LICENCE.formula:=Formula(DriverLicenceState)
- příkaz 4D:
$o.DRIVERS_LICENCE:=Formula(Choose(DriverLicence; "Obtained"; "Failed"))
- výraz 4D:
$o.DRIVERS_LICENCE.formula:=Formula(ds.Users.get($1).DriverLicence)
$o .DRIVERS_LICENCE.parameters:=New collection
$o .DRIVERS_LICENCE.parameters.push(New object("name"; "ID"; "type"; Is longint))
Můžete přidat popis toho, co vaše funkce dělá:
$o.DRIVERS_LICENCE.summary:="Vrátí výsledek řidičského průkazu".
A pokud odkazujete na metodu, můžete přidat některé parametry, jako je jméno a typ očekávaných parametrů vaší funkce:
$oIs time
$oBIRTH_INFORMATIONsummary.BIRTH_INFORMATION:=New object
$o .BIRTH_INFORMATION.formula:=Formula(BirthInformation)
$o .BIRTH_INFORMATION.parameters:=New collection
$o .BIRTH_INFORMATION.parameters.push(New object("jméno"; "křestní jméno"; "typ";Is text))
$o .BIRTH_INFORMATION.parameters.push(New object("jméno"; "datum narození"; "typ";Is date))
$o .BIRTH_INFORMATION.parameters.push(New object("jméno"; "čas narození";
Když dokončíte vyplňování objektu všemi informacemi, musíte je zpřístupnit v aplikaci 4D View Pro. Jednoduše je předejte VP SET CUSTOM FUNCTIONS příkazu:
VP SET CUSTOM FUNCTIONS("ViewProArea"; $o)
A voilà! Nová funkce je k dispozici v aplikaci 4D View Pro: