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

Add Recordset

procedura copia link

Scopo

Permette di popolare un'intera area del template con il risultato di una query.

Sintassi

Recordset RS = new() // Recordset contenente i dati da usare
// 
FileMangler.AddRecordset(nome tabella, RS)

Argomenti

Nome Tabella È una stringa contenente il nome dell'area del template da popolare con i dati del Recordset. Si tratta di un Named Range nel caso di template Excel (XLS), di un Segnalibro nel caso di templare Word (RTF) o in caso di file PDF del nome utilizzato come prima parte del nome dei campi.
RS È un oggetto Recordset contenente l'insieme dei dati da utilizzare per popolare l'area del template specificata.

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 far sì che il documento template sia formattato correttamente è necessario seguire alcune linee guida:
  • Nel caso di file Excel (XLS) occorre creare un NamedRange (Intervallo Nominato) formato da due righe. La riga superiore deve contenere i nomi delle colonne del recordset, la riga inferiore un valore che identifichi il tipo di dato contenuto, un numero (ad esempio 0) per valori numerici, una data (ad esempio 01/01/2000) per le date, una stringa (ad esempio "a") per tutti gli altri.
  • Nel caso di file Word (RTF) occorre creare un segnalibro che all'interno contenga tutti i segnalibri che rappresentano i campi del Recordset da inserire nel file di output. Di solito si crea la prima riga di una tabella e la si racchiude in un segnalibro con nome uguale a quello passato alla funzione AddRecordset, poi all'interno della tabella si specificano tanti segnalibri quante sono le informazioni da inserire, usando come nome del segnalibro il nome della colonna del recordset corrispondente.
  • Nel caso di file PDF il formato del nome dei campi che vengono popolati da questo metodo deve essere:
    [NomeTabella]_[NomeColonna]_[NumeroRiga]
    in cui il Nome Tabella è il primo argomento passato ad AddRecordset, Nome Colonna è il nome della colonna del Recordset ed il numero di riga è il numero di riga del campo (1 per la prima riga).
    Perciò per creare una tabella al'interno di un file PDF è necessario creare tutti i TextField della tabella, i cui nomi devono iniziare con il nome della tabella, seguito dal nome della colonna e dal numero della riga. Per una guida alla creazione di un template fare riferimento alla documentazione del metodo Translate File
  • Si consiglia di leggere il capitolo 6.10 della Guida all'Uso.
  • 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 della riga del recordset contenente il campo di output.
  • Questo componente non è supportato nelle applicazioni offline.

Ultima modifica: 30/11/2022 / Validità: da 6.5.2680

Vedi Anche

  • Add Values (procedura)
  • Add Parameter (procedura)
  • Recordset
  • Recordset (proprietà)
  • Scarica il file template XLS utilizzato nell'esempio.
  • Guida all'uso

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum