Créer un dossier script
Dans cet exemple nous créons un petit dossier de type script pour voir les caractéristiques de ce système.
D’abord nous il faut ajouter un nouveau dossier à partit des options, sélectionner le type script et appuyer sur régler pour afficher l’éditeur. N’oubliez pas quand vous ajoutez le nouveau dossier de régler tous les paramètres pour afficher correctement.
--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)
D’abord dans le script interface nous insérons toutes les commandes pour créer les filtrer de recherche et les colonnes qui seront utilisées pour afficher les données.
Au contraire les lignes suivantes doivent être insérées dans le script élaboration. Le script de l’interface est lancé une seule fois et au contraire celui d’élaboration est effectué toutes les fois qu’on appuie le bouton élaborer.
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)
Premièrement nous récupérons les valeurs de la date du tableau des filtres et nous les préparons pour être utilisés dans la recherche.
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
Nous préparons la chaîne sql pour effectuer la recherche en vérifiant si a été sélectionné un client du tableau de filtres. Si la réponse est positive nous l’ajoutons à la chaîne sql pour la recherche.
reporttable.clearrows()
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
Nous effectuons la recherche et nous commençons à remplir le tableau du dossier avec les valeurs trouvées.