Při vývoji aplikací je často nutné vytvářet formuláře dynamicky. Můžete například chtít vygenerovat vyhledávací formulář za běhu, který bude přizpůsoben potřebám uživatele. Ve 4D existují dva hlavní přístupy k vytváření dynamických formulářů: buď se celý formulář konstruuje programově, nebo se do existujícího rozvržení formuláře přidávají objekty. V případě druhé možnosti bylo až dosud možné duplikovat objekty pomocí OBJECT DUPLICATE, a upravit zdroj dat pomocí OBJECT SET DATA SOURCE, a to vše pomocí klasického přístupu založeného na ukazatelích.
V aplikaci 4D 20 R10 přibyly nové a výkonné příkazy, OBJECT SET DATA SOURCE FORMULA a . OBJECT Get data source formula, umožňují vývojářům svázat vzorec jako zdroj dat objektů formuláře. Kromě toho můžete dynamicky přiřazovat vzorce ke klíčovým vlastnostem seznamů pomocí příkazu LISTBOX SET PROPERTY příkazem, jako je například Aktuální položka, Aktuální pozice položky a Vybrané položky.
To otevírá cestu k modernějšímu, flexibilnějšímu a čitelnějšímu přístupu, zejména díky výrazům jako Form.xx nebo třídám.
Nové příkazy pro manipulaci s vlastností zdroje dat
Byly přidány dva nové příkazy pro úpravu vlastnosti zdroje dat:
OBJECT SET DATA SOURCE FORMULA ( {* ;} object ; formula)
OBJECT Get data source formula ( {* ;} object) : formula
Příklad 1: Aktualizace vzorce
Představme si, že máme ve formuláři textový vstup s názvem „myInput“ a chceme jeho zdroj dat svázat se vzorcem „Form.myText“.
$myFormula:=Formula(Form.myText)
OBJECT SET DATA SOURCE FORMULA (*; "myInput"; $myFormula)
Příklad 2: Získání vzorce
Chcete-li načíst vzorec spojený s objektem formuláře, například s textovým vstupem s názvem „myInput“, můžete jednoduše napsat:
$formula:=OBJECT Get data source formula(*; "myInput")
Tyto nové příkazy usnadňují vytváření obecných, opakovaně použitelných šablon formulářů, které lze dynamicky konfigurovat.
Rozšířené možnosti pro ListBoxy
Tyto vlastnosti jsou přístupné pomocí následujících konstant s příkazy LISTBOX Get property a LISTBOX SET PROPERTY:
- lk current item expression
- lk current item pos expression
- lk selected items expression
Příklad:
LISTBOX SET PROPERTY(*; "myListBox"; lk selected items expression; "Form.selectedItems")
Závěr
Díky adrese OBJECT SET/GET DATA SOURCE FORMULA a novým konstantám vlastností listboxu poskytuje 4D nový, elegantní a výkonný způsob vytváření dynamických rozhraní.
Díky využití vzorců a objektově orientovaného programování můžete nyní vytvářet formuláře, které jsou lépe přizpůsobitelné, udržovatelné a přehlednější.
