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.