English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Librerie Componenti
  • File Mangler
  • Impostazione Parametri

Add Values

procedura copia link

Scopo

Permette di specificare una serie di valori da utilizzare per impostare i relativi parametri nel file template. I valori derivano dalla prima riga di un recordset che viene passato al File Mangler. Il recordset può, ad esempio, essere estratto da una query di select into recordset da Visual Code, oppure da una query dinamica.

Sintassi

Recordset RS = new() // Recordset contenente la riga da usare
// 
FileMangler.AddValues(RS)

Argomenti

RS È un oggetto Recordset che deve contenere nella prima riga la serie di valori da utilizzare per riempire i parametri del template.

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
    ...
  // 
  // 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)
}
Per ogni colonna del recordset passato alla funzione verrà impostato il parametro del template con lo stesso nome. E' quindi necessario verificare che i nomi delle colonne del recordset corrispondano precisamente ai nomi dei parametri del template, altrimenti non avverrà la sostituzione. Il valore dato ai parametri è quello della prima riga del recordset che, quindi deve essere stato precedentemente utilizzato per effettuare una query sul database.

Le regole per la creazione dei parametri nei template sono le stesse viste nella funzione AddParameter:

  • Nel caso di file Excel (XLS) occorre creare un NamedRange (Intervallo Nominato) il cui nome sia uguale a quello del parametro da sostituire e che sia formato da due celle disposte in verticale. La cella superiore deve contenere il nome del NamedRange, la cella inferiore un valore che identifichi il tipo dei dati contenuti, un numero (ad esempio "0") per campi numerici; una data (ad esempio 01/01/2000) per i campi data, una stringa (ad esempio "a") per tutti gli altri.
  • Nel caso di file Word (RTF) occorre creare un segnalibro (contenente almeno un carattere), con nome uguale al nome del parametro da utilizzare.
  • Nel caso di file PDF occorre creare un TextField (utilizzando per esempio Adobe 8), con nome uguale al nome del parametro da utilizzare. Per una guida alla creazione di un template fare riferimento alla documentazione del metodo Translate File
  • Se il template non contiene uno o più parametri corrispondenti alle colonne del Recordset, non avverrà alcuna sostituzione, ma non viene dato errore. In questo modo è possibile anche eliminare dal template dati non desiderati da parte degli utenti finali.
  • Nella valorizzazione di un parametro di tipo data quando si opera in C# è necessario prestare particolare attenzione, poiché la valorizzazione con una data invalida impedirebbe la stampa del parametro nel file di output.

Ultima modifica: 14/04/2022 / Validità: da 6.5.2680

Vedi Anche

  • Add Parameter (procedura)
  • Add Recordset (procedura)
  • Recordset
  • Scarica il file tempate XLS utilizzato nell'esempio.

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum