Sfairadora

  • Referenční příručka

Handlery

Handlerem se rozumí funkce, která je vyvolaná, kdykoli se změní určená data. V některých programech se totéž nazývá trigger. Na rozdíl od ostatních podsekcí sekce Definice se zde tedy nedefinuje objekt, který se jinde používá. Handler plní svoji funkci již svým vytvořením v této sekci. Handlery převážně slouží k udržování konzistence dat – pokud se jistá data v dokumentu změní, může být nutné aktualizovat jiná data. Ve většině případů je však toho možné dosáhnout mnohem snáze pomocí počítané položky.
Obsahem pravého panelu hlavního okna dokumentu pro tuto sekci je tabulka, kde každý řádek odpovídá jednomu definovanému handleru. Pro každý handler se zadávají následující hodnoty:
Název položky
Popis
Název dat
Název objektu, do kterého se má handler nastavit. Většinou buď document pro data v daném dokumentu, nebo system pro data v systémovém dokumentu.
Reference dat
Reference na datovou položku v rámci výše identifikovaného objektu. Pro zadání reference na požadovaná data dokumentu je třeba rozumět struktuře datového typu dokumentu.
V referenci mohou být použity rovněž hvězdičky, které nahrazují jakýkoli název či index. To je obzvlášť užitečné pro nastavení handleru na sloupce tabulky či na libovolný prvek seznamu.
Příklad: Uvažme případ, kdy máme v sekci Data tabulku lidé, obsahující mj. sloupec věk. Název dat potom nastavíme na document a referenci můžeme nastavit na následující hodnoty s tímto významem:
data
handler vyvolaný při změně jakékoli položky v sekci data (nejen v tabulce lidé).
data.lidé
handler vyvolaný při jakékoli změně v tabulce lidé.
data.lidé.0
handler vyvolaný při změně hodnoty prvního prvku tabulky lidé.
data.lidé.*.věk
handler vyvolaný při změně věku libovolného člověka
data.*.0.věk
handler vyvolaný při změně prvku věk v prvním řádku libovolné tabulky v sekci Data.
data.*.*.věk
handler vyvolaný při změně prvku věk v libovolném řádku libovolné tabulky v sekci Data.
Tranzitivní
Má význam jen pokud reference dat odkazuje na tabulku či sekvenci. Pokud možnost tranzitivní není zvolena, vyvolá se handler jen při přidání či vypuštění prvku sekvence. Pokud je handler nastaven jako tranzitivní, vyvolá se i při změně hodnoty libovolného prvku sekvence.
Pokud reference dat nevede na sekvenci, je toto nastavení lhostejné.
Výraz
Výraz, který se vyhodnotí, pokud je handler vyvolán. Výraz se zadává pomocí editoru funkce. Jako parametr je předána hodnota reason:
DATA_ATTACHED (0)
handler byl nově nastaven – první vyvolání handleru, které umožňuje provést případnou inicializaci.
DATA_CHANGED (1)
došlo ke změně sledovaných dat.
DATA_DETACHED (2)
handler bude odstraněn – poslední vyvolání handleru umožňující ukončit funkci sledování dat.
Uvedena jsou symbolická jména, která by měla být v případě potřeby použita. V závorkách jsou jejich skutečné hodnoty, které by měly být použity pouze pro informaci kvůli ladění.
(Parametr reason je zde užit kvůli kompatibilitě s handlery v poskytovateli dat, kde je jeho užití důležitější.)