====== Generování SQL pomocí LUA (funkce dlg) ====== ==== Vstup hodnoty ==== dlg.query(text) select * from rozpocty_cenik where objcis = 'return dlg.query("text")' ==== Výběr hodnoty z tabulky ==== dlg.lookup(text, lookup) select * from rozpocty_rozpocty where idpartner = 'return dlg.lookup("text","partneri_partneri:idpartner")' ==== Přepínač - combo ==== dlg.combo(text, combo) select * from rozpocty_rozpocty order by return dlg.combo("Seřadit dle","Ceny=CenaRozp|Partnera=IDpartner") ==== Zadání časového rozmezí ==== dlg.calbetween(text [, From|To]) select * from rozpocty_rozpocty where datum between return dlg.calbetween("Datum od|Datum do", "From|To") Parametr "From|To" je nepovinný. Zadáme-li do dialogu datumy '10.11.2006 12:51:25' a '15.11.2006 18:11:20', bez parametru From|To se do SQL dotazu dosadí: datum between '10.11.2006 12:51:25' and '15.11.2006 18:11:20' s parametrem From|To se do SQL dotazu dosadí: datum between '10.11.2006' and '15.11.2006 23:59:59' ==== Dotaz na datum pouze OD nebo DO ==== dlg.calendar(text) select * from rozpocty_rozpocty where datum > 'return dlg.calendar("Datum od")' V dotazech s se musí zadat místo znamének "větší" resp. "menší" (< ; >) "<" resp. ">". Místo "<>" se zadává "!=". Nebo text uzavřít do značek text]]>. Pokud je potřeba v SQL používat dvě hranaté závorky, je třeba uzavírací tag ]]> vložit do uvozovek: s=[[ '' and id=']]..id..[[' ]].."]]>"..[[ ]] ==== Uložení a načtení hodnoty dotazu ==== dlg.restore(index) -- uloží hodnotu dotazu dlHg.save(index, text) -- načte hodnotu předchozího dotazu select * from sklad_karty where cena < (cenaskladu * return dlg.save(1,dlg.query("zadej marži"))) or cena1 < (cenaskladu * return dlg.restore(1) ) ==== Doplnění aktuální hodnoty do SQL ==== DSI:FieldByName("jmeno_sloupce") select * from rozpocty_rozpocty where idpartner = 'return DSI:FieldByName("idpartner")' ==== Doplnění označených řádků do SQL ==== platí pouze pro primární klíč cf.ConstructWhere(DSI, Form) select * from rozpocty_rozpocty where return cf.ConstructWhere(DSI, Form)