====== 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)