Scopo
Crea un file CSV da utilizzare come template di partenza per la creazione del foglio Excel necessario ad includere i dati del recordset passato come parametro.
Sintassi
string FileOutput = "" // Percorso del file CSV risultato
//
FileOutput := FileMangler.ExportToCSV(recordset, directory, nome file)
//
FileOutput := FileMangler.ExportToCSV(recordset, directory, nome file)
Argomenti
| Recordset | È l'oggetto Recordset che contiene i dati da esportare in CSV. |
| Directory | È una stringa contenente la directory in cui salvare in file CSV senza la barra finale. |
| Nome File | È una stringa rappresentante il nome del file da creare (senza estensione) |
Valore di ritorno
Viene ritornata una stringa contenente il percorso completo del file CSV esportato.
Esempio di codice
// *****************************************************************
// Crea il file XLS relativo all'ordine corrente e lo mostra a video
// *****************************************************************
public void Ordini.CreaXLS(
boolean toCSV // Vero per esportare anche un file CSV
optional string MailAddress = "" // Indirizzo di posta elettronica al qu...
)
{
FileMangler fm = new() // Istanzio il componente FileMangler usando la ...
boolean res = 0 //
string CSVFileName = "" //
//
// Aggiungo i valori provenienti dalla query di lookup uno per uno
fm.AddParameter(NomeCliente, Ordini.NomeSocietaClienti.Text)
fm.AddParameter(NomeImpiegato, Ordini.CognomeImpiegati.Text)
//
// Aggiungo i parametri dell'ordine prendendoli dalla riga corrente del
// recordset del pannello Ordini
fm.AddValues(Ordini.Recordset)
//
// Aggiungo i dettagli dell'ordine passando l'intero recordset e il nome del
// named range sul file XLS
fm.AddRecordset(DettagliOrdine, DettagliOrdini.Recordset)
//
// Imposto il componente per l'utilizzo della libreria POI
fm.XLSEngine := POI
//
// Creo un nuovo file XLS partendo dal template, poi lo apro
res := fm.TranslateFile(Path() +c C\ +c FileMangler.xls, Path() +c C\ +c
FileManglerOutput.xls)
//
// Se c'è stato un errore lo segnalo
if res <> ZERO
...
//
// Se devo creo anche su file CSV il recordset dei dettagli ordine
if toCSV
{
CSVFileName := fm.ExportToCSV(DettagliOrdini.Recordset, Path(),
ToString(Ordini.IdOrdine))
//
// Imposto il file come temporaneo
EsempiGL.AddTempFile(CSVFileName)
}
//
// Se è stato specificato un indirizzo di posta devo procedere all'invio del
// file via mail
if MailAddress <> Empty String
...
else // Se non devo mandare la mail mostro il file
...
//
// Imposto il file come temporaneo, al termine della sessione corrente sarà
// automaticamente cancellato dal sistema.
EsempiGL.AddTempFile(Path() +c C\ +c FileManglerOutput.xls)
}
// Crea il file XLS relativo all'ordine corrente e lo mostra a video
// *****************************************************************
public void Ordini.CreaXLS(
boolean toCSV // Vero per esportare anche un file CSV
optional string MailAddress = "" // Indirizzo di posta elettronica al qu...
)
{
FileMangler fm = new() // Istanzio il componente FileMangler usando la ...
boolean res = 0 //
string CSVFileName = "" //
//
// Aggiungo i valori provenienti dalla query di lookup uno per uno
fm.AddParameter(NomeCliente, Ordini.NomeSocietaClienti.Text)
fm.AddParameter(NomeImpiegato, Ordini.CognomeImpiegati.Text)
//
// Aggiungo i parametri dell'ordine prendendoli dalla riga corrente del
// recordset del pannello Ordini
fm.AddValues(Ordini.Recordset)
//
// Aggiungo i dettagli dell'ordine passando l'intero recordset e il nome del
// named range sul file XLS
fm.AddRecordset(DettagliOrdine, DettagliOrdini.Recordset)
//
// Imposto il componente per l'utilizzo della libreria POI
fm.XLSEngine := POI
//
// Creo un nuovo file XLS partendo dal template, poi lo apro
res := fm.TranslateFile(Path() +c C\ +c FileMangler.xls, Path() +c C\ +c
FileManglerOutput.xls)
//
// Se c'è stato un errore lo segnalo
if res <> ZERO
...
//
// Se devo creo anche su file CSV il recordset dei dettagli ordine
if toCSV
{
CSVFileName := fm.ExportToCSV(DettagliOrdini.Recordset, Path(),
ToString(Ordini.IdOrdine))
//
// Imposto il file come temporaneo
EsempiGL.AddTempFile(CSVFileName)
}
//
// Se è stato specificato un indirizzo di posta devo procedere all'invio del
// file via mail
if MailAddress <> Empty String
...
else // Se non devo mandare la mail mostro il file
...
//
// Imposto il file come temporaneo, al termine della sessione corrente sarà
// automaticamente cancellato dal sistema.
EsempiGL.AddTempFile(Path() +c C\ +c FileManglerOutput.xls)
}
- Un possibile utilizzo è quello di creare un file CSV, contenente i dati utilizzati per popolare il file template, che può essere aperto con Excel e successivamente salvato come XLS.
- Nel file viene scritta una prima riga contenente l'intestazione delle colonne del recordset usato dal componente FileMangler, seguita dalle righe rappresentanti i record di dati.
- Per scrivere il file viene utilizzata la specifica CSV, che prevede che le colonne vengano separate da virgola, che ogni valore sia racchiuso da doppie virgolette, e che ogni record venga scritto su una sola riga.
-
Esempio di formato CSV:
"IDOrdine","IDProdotto","PrezzoUnitario","Quantita","Sconto","NomeProdotto",
"10248","11","39000","12","0","Queso Cabrales",
"10248","24","6751","1","0","Guaraná Fantástico",
"10248","42","82500","10","0.88","Singaporean Hokkien Fried Mee",
"10248","72","36450","5","0","Mozzarella di Giovanni",
Ultima modifica: 23/03/2021 / Validità: da 6.5.2680
procedura