Importazione dati da Excel

' Attraverso le primitive QWFD_ImportDataFromExcel e DW_Get_Data_From_Excel è possibile importare nel database i dati contenuti in un file Excel associato al form
' o in un file Excel specifico di cui si conosce il percorso
' Il file Excel deve avere un formato specifico. In particolare, alle celle contenenti i dati dai importare deve essere attribuito un nome specifico.
' Per i dettagli vedere qui: https://service.qualiware.it/forum/forum_posts.asp?TID=1942

' Le seguenti linee di codice importano i dati dal file Excel associato al form corrente.
dim msg as string=QWFormDesigner.QWFD_ImportDataFromExcel(form,true)
if msg<>"" then
 form.alert(msg)
else
 form.alert("Importazione OK")
end if

' Le seguenti linee di codice importano nel form corrente i dati di un file Excel contenuto all'interno dei documenti collegati e memorizzato nel campo FILE_
' Nel caso in cui il file sia memorizzato nel file system è sufficiente utilizzare il campo "NOMEFILE" che ne contiene il percorso
dim linkdoc as qwtable =new qwtable()
dim par As AssocArray = New AssocArray
dim err as string
par("NOMEFILE")=form.findcontrol("FILE_EXCEL").value ' In questo caso il nome del file da cercare è contenuto in un campo del form
par("CODDOC")=form.findcontrol("CODDOC").value
linkdoc=OpenTable(form, "select FILE_ from LINKDOC where IDDOC1='DW' and CODDOC1=:CODDOC and NOMEFILE=:NOMEFILE",par, false, false,err) 

if not empty(err)
 form.alert(err)
else 
 if linkdoc.rowset.first()
    ' estrae il file dal database
    dim nomefile as string=Funique(Q95_PATH_TEMP+"\_?????_"+form.findcontrol("FILE_EXCEL").value)
    linkdoc.rowset.fields("FILE_").CopyToFile(nomefile) ' Copia il file dal database
 
    form.findcontrol("FILIERA").DeleteAllRows()
 
    Dim ret_val As String="" ' Contiene l'esito dell'importazione
    Dim QWSess As QWSession = form.Session("QWSess")
    Dim EvidenziaCelleVuote as Boolean ' assegnare a true se si vogliono evidenziare in rosso le celle vuote
 
    DW_Get_Data_From_Excel(form, form.form_state.dmd_ref.DOCUMENT, form.form_state.dmd_ref.DOC_ROWS, nomefile, ret_val, EvidenziaCelleVuote)
    if ret_val<>""
       form.alert(ret_val)
    else
      QWFD_LoadFormData(form) ' Per visualizzare immediatamente i dati importati 
    End If
 else
    form.alert("Il file specificato non è presente fra i documenti collegati") 
 end if
 CloseTable(form,linkdoc)
end if