Esportazione di una griglia in Excel

' Il seguente frammento esporta la griglia contenuta nell'oggetto "FILIERA" all'interno di un template EXCEL contenuto nella cartella rpt_custom.

dim dati as new dbarray
dim riga as dbarray
dim i as integer

form.findcontrol("FILIERA").MoveFirst()
for i=1 to form.findcontrol("FILIERA").Count()
 ' Crea la riga a partire dalla griglia 
 riga=new dbarray()
 riga.add(form.findcontrol("FILIERA").ReadField("NUMBER1"))
 riga.add(form.findcontrol("FILIERA").ReadField("CUSTOM9"))
 riga.add(form.findcontrol("FILIERA").ReadField("CUSTOM8"))
 riga.add(form.findcontrol("FILIERA").ReadField("CUSTOM1"))
 riga.add(form.findcontrol("FILIERA").ReadField("CUSTOM2"))
 riga.add(form.findcontrol("FILIERA").ReadField("CUSTOM13"))
 riga.add(form.findcontrol("FILIERA").ReadField("CUSTOM3"))
 riga.add(form.findcontrol("FILIERA").ReadField("CUSTOM4"))
 riga.add(form.findcontrol("FILIERA").ReadField("CUSTOM5"))
 riga.add(form.findcontrol("FILIERA").ReadField("CUSTOM6"))
 riga.add(form.findcontrol("FILIERA").ReadField("CUSTOM7"))
 riga.add(iif(form.findcontrol("FILIERA").ReadField("FLAG1"),"Sì","No"))
 riga.add(form.findcontrol("FILIERA").ReadField("CUSTOM10"))
 riga.add(form.findcontrol("FILIERA").ReadField("CUSTOM12"))
 riga.add(form.findcontrol("FILIERA").ReadField("CUSTOM11"))
 
 dati.add(riga)
 
 form.findcontrol("FILIERA").MoveNext()
next
form.findcontrol("FILIERA").MoveFirst()

dim nome_file as string=PrintExcel(form.page,"TEMPLATE_FILIERA.XLSX",dati,true) ' L'ultimo parametro se false attiva automaticamente la procedura di scaricamento del file, se true fa ritornare il nome del file e la procedura deve essere inserita esplicamente, come riportato qui sotto

if nome_file<>""
 Dim url as string= CreateDownloadRequest(form.page, nome_file,true,"Filiera "+Sane_Filename(form.findcontrol("RAGSOC").value)+".XLSX")
 BrowserDo(form,url)
end if