Crearea unui script raport
In acest exemplu vom crea un mic raport de tip script pentru a vedea caracteristicile acestui sistem.
In primul rand adaugati un raport nou din Optiuni, selectati tipul Script si apasati pe Seteaza pentru a afisa editorul. Amintiti-va, atunci cand adaugati noul raport, sa setati toti parametrii pentru a putea vizualiza corect!
--create filter interface
filtertable.clear()
filtertable.addcategoryrow("Date")
filtertable.adddaterow("START","Start")
filtertable.adddaterow("END","End")
filtertable.addsubtablerow("CUSTOMER","Customers","customers","")
--create report grid
reporttable.clearcolumns()
reporttable.clearrows()
reporttable.adddatecolumn("date","Date",150,true)
reporttable.addtextcolumn("customer","Customer",200,true)
In primul rand, in cadrul script-ului interfata, introducem toate comenzile pentru a crea filtrele de cautare si coloanele care vor fi utilizate pentru a vizualiza datele.
Urmatoarele randuri vor trebui introduse in cadrul script-ului prelucrare. In timp ce script-ul interfata este lansat o singura data, script-ul prelucrare este efectuat ori de cate ori este apasat butonul prelucrare.
startdate = filtertable.getvalue("START")
enddate = filtertable.getvalue("END")
-- I do a basic search on a range of dates
iday = tostring(utility.dateday(startdate))
imonth = tostring(utility.datemonth(startdate))
iyear = tostring(utility.dateyear(startdate))
fday = utility.dateday(enddate)
fmonth = utility.datemonth(enddate)
fyear = utility.dateyear(endadate)
Mai intai, recuperam valorile de date din tabelul filtrelor si le pregatim pentru a fi utilizate in cadrul cautarii.
sql = "SELECT * FROM invoices WHERE eli=0 AND year(date) >=" .. iyear .. " AND month(date) >=" .. imonth .. " AND day(date) >=" .. iday
sql = sql .. " AND year(date) <=" .. fyear .. " AND month(date) <=" .. fmonth .. " AND day(date) <=" .. fday
-- I recover the remaining filters
rowcustomer = filtertable.getvalue("CUSTOMER")
if rowcustomer ~= nil then
sql = sql .. " AND gguid_name='" .. rowcustomer.getvalue("gguid") .. "'"
end
Pregatim sirul SQL pentru a efectua cautarea, controland daca a fost selectat un client din tabelul filtrelor. Daca a fost selectat, il adaugam sirului SQL pentru cautare.
table_rows= database.getsql(sql)
rows = table_rows.getrows()
for i = 1,table_rows.countrows() do
--output.print(rows[i].getvalue("date"))
row = reporttable.adddatarow()
row.setvalue("date",rows[i].getvalue("date"))
row.setvalue("customer",rows[i].getvalue("name"))
end
Efectuam cautarea si incepem completarea tabelului raportului cu valorile gasite.