Un generatore di report RTF

7 pagine in totale: <<Indietro 1 2 3 [4] 5 6 7 Avanti >>

L'utilizzo delle Regular Expression per effettuare il lavoro semplifica di molto la funzione stessa, in pratica il tutto si riduce ad una linea di codice.

L'ultima funzione "generica" che mi serve è la seguente: recupera un Tag dal file usando le due funzioni precedenti e lo scrive dentro nel file del report indicato.

/*
* Recupera un tag e lo scrive nel report
* Funzione che viene usato dappertutto
*
* tagFile è il nome del file dei tag da usare
* reportFile è un File già aperto.
* tag è l'ID del tag da inserire
*
*/
function ScriviTagNelReport( tagFile, reportFile, tag )
{
  var tmpTag;
 
  // recupero il tag di inizializzazione e lo scrivo nel file
  tmpTag = LeggiTag( tag, tagFile );
  reportFile.WriteLine( tmpTag );
 
}

Iniziare e finire il Report

Adesso che abbiamo le due funzioni "basilari" del sistema possiamo cominciare dall'inizio...e dalla fine: aprire e chiudere il report.

Un documento RTF, come un documento HTML deve essere "aperto" e "chiuso" con i tag corretti, questi tag sono scritti nell'elenco dei tag e vengono recuperati dalle funzioni che io ho definito come

IniziaReport()
e
ChiudiReport()
, che a loro volta sono definite come segue:

/*
* Inizializza il report
* Crea il file denominato "reportFile" e scrive
* i tag di inizializzazione dell'RTF. I tag sono
* letti dal file indicato come "tagFile"
*
* Ritorna il nuovo oggetto File creato.
*/
function IniziaReport( reportFile, tagFile )
{
  var fso;    // FileSystemObject
  var fileReport; // file del Report
 
  // creo l'oggetto FSO
  fso = new ActiveXObject("Scripting.FileSystemObject");
 
  // creo il file del report
  fileReport = fso.CreateTextFile( reportFile );
 
  // recupero il tag di inizializzazione e lo scrivo nel file
  ScriviTagNelReport( tagFile, fileReport, "InizializzaReport" );
 
  // ritorno il report appena creato
  return fileReport;
 
}
/*
* Termina il report
* Scrive nel report indicato i tag di chiusura dell'RTF e
* chiude il file.
*/
function ChiudiReport( reportFile, tagFile )
{
  // recupero il tag di chiusura e lo scrivo nel file
  ScriviTagNelReport( tagFile, reportFile, "TerminaReport" );
 
  // chiudo il file
  reportFile.Close();
 
}

Impostare il formato della pagina

Il formato della pagina può essere impostato come "Portrait" o "Landscape", si tratta solo di inserire una sequenza o l'altra nel report.

/*
* Imposta il formato pagina a Portrait
*/
function ImpostaPortrait( reportFile, tagFile )
{
  ScriviTagNelReport( tagFile, reportFile, "Portrait" );
}
/*
* Imposta il formato pagina a Landscape
*/
function ImpostaLandscape( reportFile, tagFile )
{
  ScriviTagNelReport( tagFile, reportFile, "Landscape" );
}

Come si può vedere, una volta definite le funzioni "basilari", le altre funzioni sono di una banalità assurda.

7 pagine in totale: <<Indietro 1 2 3 [4] 5 6 7 Avanti >>

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.


TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC