====== Formregister.xml ====== Přiřazuje Middle k Formě a specifikuje možné filtry pro Formu. Lze zde také definovat tzv. ShortCut pro variantní Lookupy v datamodelu. ===== Filtry LuaForm ===== * Ve formregister: ''QuickPopis:Popis=@filter_FilterPopis|Param1=z,Param2=y'' * Parametry prijdou vzdy jako hash stringu. * V pripade pouziti parametru se meni chovani. Jiz nemuze chodit Params="xxx". * Pri prepnuti je to stejne {Init="1", Text="", Param1="z", Param2="y"} * Pri ... {Button="1", Text="abc", Param1="z", Param2="y"} * Pri Enteru nebo clicku na zalozku {Enter="1", Text="def", Param1="z", Param2="y"} * Pro funkcni Locate pomoci parametru: ''AcceptLocate=1'' (potom mu prijdou parametry LocateFields a LocateValues) ===== Speciální filtr v tabulce ===== Do sekce se doplní následující řádek s textem popisu filtru a LUA kódem vracejícím string pro where klasuli SQL dotazu. Oddělovač polí je znak =. Je nutno pouzivat prefixy tabulek. Příklad:
IDRozp IDDruh IDZakazka IDPartner IDCen IDUzivatele Počítače nad 100tis.=@return [[rozpocty_rozpocty.iddruh="poc" and rozpocty_rozpocty.CenaCelkem>100000]]
Nebo po novu pomocí xml můžeme nadefinovat i caption a default hodnoty po vložení řádku. Aby nevypadl z rozsahu. Počítače nad 100tis.=@return filter.create([[rozpocty_rozpocty.iddruh="poc" and rozpocty_rozpocty.CenaCelkem>100000]], "Počítače > 100000", {IDDruh="poc"}) Nebo je navíc možno definovat vlastni záložky a používat je jako vstup do naší funkce. Demo: v akcích vytvoříme fiktivní filtr, který filtruje najednou IDDruh a IDStav s nastavením záložek na 'xxx' a 'yyy'. Při přepnutí na tento filtr je parametr Folder=nil a žádná záložka není vybrána, v tomto případě nevyhoví žádný řádek. Až uživatel cvakne na záložku, tak do Folder dostaneme string 'xxx' nebo 'yyy' a vytvoříme filtr. Dvojitý filtr=@return v_partneri_akce.DvojityFilter(DSI, Form, Folder) A v souboru //v_partneri_akce.lua// si nadefinujeme funkci: function v_partneri_akce.DvojityFilter(DSI, Form, Folder) local s = cf.tostring(Folder) local ws = '0=1' if Folder then ws=string.format("partneri_akce.IDDruh='%s' and partneri_akce.IDStav='%s'", s, s) end return filter.create(ws, string.format("%s pokus", s), {IDDruh=s, IDStav=s}, {'xxx', 'yyy'}, s) end