Un generatore di report RTF

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

Scrivere linee e paragrafi

La scrittura di linee e paragrafi richiede il passaggio del testo da scrivere, quindi la funzione è leggermente diversa dalle precedenti, ma non di molto.

/*
* Scrive una linea senza mettere una fine paragrafo
* testo è il testo da scrivere
*
* N.B. 'tagFilè non è usato, ma viene richiesto per
* mantenere una certa coerenza con tutte le altre funzioni.
*/
function ScriviLinea( reportFile, tagFile, testo )
{
  reportFile.Write( testo + " ");
}
/*
* Scrive una linea aggiungendo la fine del paragrafo
*/
function ScriviLineaACapo( reportFile, tagFile, testo )
{
  reportFile.Write( testo );
  ChiudiParagrafo( reportFile, tagFile );
}
/*
* Inserisce la fine del paragrafo
*/
function ChiudiParagrafo( reportFile, tagFile )
{
  ScriviTagNelReport( tagFile, reportFile, "FineParagrafo" );
}

Definire e scegliere uno stile di testo

Per definire e poi scegliere uno stile occorre inserire due tag distinti: per prima cosa occorre definire lo stile creando una apposita "tabella di stili", poi si utilizza il tag di selezione per scegliere lo stile da usare nel paragrafo.

Siccome la tabella degli stili è quasi sempre la stessa, ho deciso di usare una tabella "fissa" definendo in anticipo tutti gli stili che mi servono ed "infilandoli" per default nel mio report, decidendo quale stile usare di volta in volta.

Per selezionare uno stile basta riferirsi allo stile della tabella, specificando la dimensione del font. Per fare questo si deve raddoppiare la definizione degli stili, inserendo la prima volta lo stile nella tabella e la seconda volta lo stile con la dimensione del carattere.

Il codice che esegue la gestione degli stili è molto semplice:

/*
* Inserisce l'inizio della Tabella degli Stili
*/
function IniziaTabellaStili( reportFile, tagFile )
{
  ScriviTagNelReport( tagFile, reportFile, "InizioTabellaStili" );
}
/*
* Inserisce lo stile nella tabella
*/
function InserisciStile( reportFile, tagFile, stile )
{
  ScriviTagNelReport( tagFile, reportFile, stile )
}
/*
* Chiude la tabella stili
*/
function ChiudiTabellaStili( reportFile, tagFile )
{
  ScriviTagNelReport( tagFile, reportFile, "FineTabellaStili" );
}
/*
* Inserisce la tabella degli stili 'default'
*/
function InserisciTabellaStili( reportFile, tagFile )
{
  // inizializzo la tabella
  IniziaTabellaStili( reportFile, tagFile );
 
  // inserisco gli stili
  InserisciStile( reportFile, tagFile, "Titolo1" );
  InserisciStile( reportFile, tagFile, "Titolo2" );
  InserisciStile( reportFile, tagFile, "Titolo3" );
  InserisciStile( reportFile, tagFile, "Titolo4" );
  InserisciStile( reportFile, tagFile, "Normale" );
  InserisciStile( reportFile, tagFile, "Testo" );
  InserisciStile( reportFile, tagFile, "PieDiPagina" );
  InserisciStile( reportFile, tagFile, "Intestazione" );
  // chiudo la tabella degli stili
  ChiudiTabellaStili( reportFile, tagFile );
 
}

Per "attivare" uno stile occorre pescare dall'elenco il tag "corretto":

/*
* Inizia a scrivere con uno stile
*/
function IniziaStile( reportFile, tagFile, stile )
{
  ScriviTagNelReport( tagFile, reportFile, "Stile_" + stile );
}
/*
* Termina lo stile corrente
*/
function ChiudiStile( reportFile, tagFile )
{
ScriviTagNelReport( tagFile, reportFile, "FineStile" );
}

Il trucco consiste nel fatto che per ogni stile ci sono due "tag": quello "Normale", in cui abbiamo il tag come "Normale", e quello "Stile_Normale", in cui viene richiamato il primo con l'aggiunta della dimensione del carattere:

Normale@{\f5\froman\fcharset0\fprq2 Times New Roman;}
Stile_Normale@{\f5\fs20

Grassetto e corsivo

La gestione del Grassetto e del Corsivo (Italico), è paurosamente semplice a questo punto: basta inserire i due tag necessari:

/*
* Mette il testo in grassetto
*/
function AttivaGrassetto( reportFile, tagFile )
{
  ScriviTagNelReport( tagFile, reportFile, "InizioGrassetto" );
}
/*
* Mette il testo in corsivo
*/
function AttivaCorsivo( reportFile, tagFile )
{
  ScriviTagNelReport( tagFile, reportFile, "InizioCorsivo" );
}
/*
* Disattiva il grassetto
*/
function FineGrassetto( reportFile, tagFile )
{
  ScriviTagNelReport( tagFile, reportFile, "FineGrassetto" );
}
/*
* Disattiva il corsivo
*/
function FineCorsivo( reportFile, tagFile )
{
  ScriviTagNelReport( tagFile, reportFile, "FineCorsivo" );
}

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