Obsah
Generování SQL pomocí LUA (funkce dlg)
Vstup hodnoty
dlg.query(text)
select * from rozpocty_cenik where objcis = '<lua>return dlg.query("text")</lua>'
Výběr hodnoty z tabulky
dlg.lookup(text, lookup)
select * from rozpocty_rozpocty where idpartner = '<lua>return dlg.lookup("text","partneri_partneri:idpartner")</lua>'
Přepínač - combo
dlg.combo(text, combo)
select * from rozpocty_rozpocty order by <lua>return dlg.combo("Seřadit dle","Ceny=CenaRozp|Partnera=IDpartner")</lua>
Zadání časového rozmezí
dlg.calbetween(text [, From|To])
select * from rozpocty_rozpocty where datum between <lua>return dlg.calbetween("Datum od|Datum do", "From|To")</lua>
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 > '<lua>return dlg.calendar("Datum od")</lua>'
V dotazech s <queryitem name…> se musí zadat místo znamének "větší" resp. "menší" (< ; >) "<" resp. ">". Místo "<>" se zadává "!=". Nebo text uzavřít do značek <![CDATA[Tady je <> text]]>.
Pokud je potřeba v SQL používat dvě hranaté závorky, je třeba uzavírací tag ]]> vložit do uvozovek:
s=[[<QueryItem> <SQL><![CDATA[select * from table where field <> '' and id=']]..id..[[' ]].."]]></SQL>"..[[ </QueryItem>]]
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 * <lua>return dlg.save(1,dlg.query("zadej marži"))</lua>) or cena1 < (cenaskladu * <lua>return dlg.restore(1) </lua>)
Doplnění aktuální hodnoty do SQL
DSI:FieldByName("jmeno_sloupce")
select * from rozpocty_rozpocty where idpartner = '<lua>return DSI:FieldByName("idpartner")</lua>'
Doplnění označených řádků do SQL
platí pouze pro primární klíč
cf.ConstructWhere(DSI, Form)
select * from rozpocty_rozpocty where <lua>return cf.ConstructWhere(DSI, Form)</lua>