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 |