| Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze |
| lua:lua_dialogy [2007/05/18 18:17] – Petr Kristan | lua:lua_dialogy [2011/08/03 13:16] (aktuální) – [Přehled možností] pavel |
|---|
| ===== Lua dialogy ===== | ===== Lua dialogy ===== |
| | |
| | |
| | |
| |
| |
| |
| <code lua> | <code lua> |
| local res = dlg.create(Caption="Test dialog", Encoding="ISO-8859-2", | local res = dlg.create({Caption="Test dialog", Encoding=encoding, |
| Items= | Items={ |
| "label1", "label", "Nápis", | {"label1", "label", "Nápis", nil, nil, "return Sender..' changed, value: '..cf.tostring(Params[Sender])"}, |
| "edit1", "edit", "editační pole", "", "default val", | {"edit1", "edit", "editační pole", "", "default val"}, |
| "lookup1", "lookup", "lookup pole", "partneri_partneri:firma", "default val", | {"memo1", "memo", "memo pole", "", "default memo val"}, |
| "lualookup1", "lualookup", "lualookup pole", "return cf.ShowMsg('LuaLookup pole')", | {"edit_integer", "edit", "integer editační pole", "integer", "1,123"}, |
| "combo1", "combo", "combo pole", "zobraz1=vrat1|zobraz2=vrat2", | {"edit_float", "edit", "float editační pole", "float", 1.123}, |
| "checkbox1", "checkbox", "checkbox pole", "", "1", | {"edit_currency", "edit", "currency editační pole - zaokrouhluje default hodnotu", "currency", "1.123"}, |
| "calendar1", "calendar", "kalendář pole", "To", "1.1.2005", | {"lookup1", "lookup", "lookup pole", "partneri_partneri:firma", "default val"}, |
| "calbetween1", "calbetween", "datum od|datum do","From|To","1.1.2005|31.12.2005", | {"lualookup1", "lualookup", "lualookup pole", "return cf.ShowMsg('LuaLookup pole')", "default val"}, |
| "calc1", "calc", "kalkulačka pole", "1.1.2005,EUR", "", "1000", | {"combo1", "combo", "combo pole", "tohlesezobrazuje1=tohlesevraci1|tohlesezobrazuje2=tohlevraci2"}, |
| "dir", "dirdialog", "Výběr adresáře", "", "default dir", | {"list1", "listbox", "listbox pole", "tohlesezobrazuje1=tohlesevraci1|tohlesezobrazuje2=tohlevraci2"}, |
| "file", "filedialog", "Výběr souboru", "Filter EXE|*.exe|Filter DLL|*.dll", "default file" | {"checkbox1", "checkbox", "checkbox pole", "", "1"}, |
| , | {"calendartime1", "calendartime", "kalendář time", "", os.time()}, |
| Buttons= | {"calbetweentime1", "calbetweentime", "datum od time|datum do time","From|To", {os.time(), os.time()+24*3600}}, |
| "show", "Ukaž výsledek", 18, | {"calc1", "calc", "kalkulačka pole", "1.1.2005,EUR", "1000"}, |
| "cancel", "Storno", 19 | {"dirdialog1", "dirdialog", "Výběr adresáře", "", "default dir"}, |
| | {"filedialog1", "filedialog", "Výběr souboru", "Filter EXE|*.exe|Filter DLL|*.dll", "default file"} |
| ) | }, |
| | Buttons={ |
| | {"show", "Ukaž výsledek", 18}, |
| | {DLG_CANCEL, "Storno", 19} |
| | } |
| | }) |
| </code> | </code> |
| |
| {{dialog.png|}} | {{:lua:dialog.png|}} |
| | |
| | |
| | ==== Správná práce s datumy ==== |
| | |
| | [[lua:datetime|Odkaz]] |
| |
| |
| |
| |
| <code> | <code lua> |
| <lua> | <lua> |
| local res = dlg.create(Caption="Výběr", Encoding="windows-1250", | local res = dlg.create(Caption="Výběr", Encoding=encoding, |
| Items="datum", "calbetween", "datum od|datum do","From|To", | Items="datum", "calbetweentime", "datum od|datum do","From|To", |
| "znamenko", "combo", "Odběratelé/dodavatelé","Odběratelé=1|Dodavatelé=-1", | "znamenko", "combo", "Odběratelé/dodavatelé","Odběratelé=1|Dodavatelé=-1", |
| "pocet", "edit", "Vypsat prvních ... (prázdno = všechny)" | "pocet", "edit", "Vypsat prvních ... (prázdno = všechny)" |
| LEFT JOIN partneri_partneri partneri ON partneri.idpartner = prijemky.idpartner | LEFT JOIN partneri_partneri partneri ON partneri.idpartner = prijemky.idpartner |
| where | where |
| prijemky.datum between ']]..res.datumfrom..[[' and ']]..res.datumto..[[' and | prijemky.datum between ']]..cf.FormatSQLUnixTime(res.datumfrom)..[[' and ']]..cf.FormatSQLUnixTime(res.datumto)..[[' and |
| prijemky.znamenko = ']]..res.znamenko..[[' | prijemky.znamenko = ']]..res.znamenko..[[' |
| group by prijemky.idpartner, partneri.firma | group by prijemky.idpartner, partneri.firma |
| </lua> | </lua> |
| </code> | </code> |
| | |
| | |
| |
| ==== Použítí "lualookup" pole ==== | ==== Použítí "lualookup" pole ==== |
| --zobrazeni osnovy pro vyber uctu. | --zobrazeni osnovy pro vyber uctu. |
| --osnova se zobrazuje pres lualookup z dialogu | --osnova se zobrazuje pres lualookup z dialogu |
| --vraci oznacene uctu jako string oddeleny strednikama | --vraci oznacene ucty jako string oddeleny strednikama |
| function ucto_denik.reports.SelectIDUcet(Params) | |
| | --Params je pole s hodnotama vsech fieldu v dialogu |
| | --Sender je jmeno fieldu, ktery akci vyvolal |
| | function ucto_denik.reports.SelectIDUcet(Params, Sender) |
| local md=ClientSession:ActivateMid("ucto_osnova") | local md=ClientSession:ActivateMid("ucto_osnova") |
| local ds=md:FindDataSetItem("ucto_osnova") | local ds=md:FindDataSetItem("ucto_osnova") |
| -- ucto print dialog (datum OD, DO, druh, prefix, vyber uctu) | -- ucto print dialog (datum OD, DO, druh, prefix, vyber uctu) |
| function ucto_denik.reports.UctoPrintDialog() | function ucto_denik.reports.UctoPrintDialog() |
| local res = dlg.create({Caption="Zadejte rozmezí datumů, druh a prefix", Encoding="ISO-8859-2", | local res = dlg.create({Caption="Zadejte rozmezí datumů, druh a prefix", Encoding=encoding, |
| Items={ | Items={ |
| {"datum", "calbetween", "datum od|datum do","From|To"}, | {"datum", "calbetween", "datum od|datum do","From|To"}, |
| {"iddruh", "lookup", "Prefix druhů dokladů", "ucto_udruh:iddruh" }, | {"iddruh", "lookup", "Prefix druhů dokladů", "ucto_udruh:iddruh" }, |
| {"idstred", "lookup", "Středisko", "common_stred:idstred" }, | {"idstred", "lookup", "Středisko", "common_stred:idstred" }, |
| {"iducet", "lualookup", "Vyber účty - jednotlivé účty oddělené středníkem", "return ucto_denik.reports.SelectIDUcet(Params)"} | {"iducet", "lualookup", "Vyber účty - jednotlivé účty oddělené středníkem", "return ucto_denik.reports.SelectIDUcet(Params, Sender)"} |
| }}) | }}) |
| return res | return res |