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.