In sintesi
In questa lezione vediamo quali eventi di formattazione vengono scatenati durante la stampa di un book.
Nota: questo video corso è stato realizzato con la versione 4 di Instant Developer. Anche se i contenuti sono ancora attuali e sono utili per imparare ad utilizzare Instant Developer, alcune affermazioni sono di fatto superate. Per i dettagli e le ultime novità sulle funzionalità illustrate vi rimandiamo alla sezione di reference che viene tenuta aggiornata giornalmente.
In questa lezione vediamo quali eventi di formattazione vengono scatenati durante la stampa di un book. Instant Developer fornisce due eventi di formattazione: l'evento On Formatting dell'oggetto pagina Template e l'evento On Formatting dell'oggetto Section. Per aggiungere gli eventi è possibile selezionare l'evento dal menu contestuale dell'oggetto.
Il motore di stampa scatena l'evento di On Formatting della pagina Template ogni volta che una nuova pagina di quel tipo viene creata. Durante l'evento di On Formatting della pagina possiamo cambiare le proprietà della pagina stessa o degli oggetti che essa contiene: box e span. Potremmo nascondere una o più box o cambiare lo stile visuale di uno degli span. Potremmo anche modificare le dimensioni o l'orientazione della pagina appena creata, prima che il motore di stampa la utilizzi per stamparvi sopra le sezioni.
Il motore di stampa, poi, scatena l'evento di On Formatting della Sezione ogni volta che questa deve essere stampata. In questo evento possiamo cambiare le proprietà della sezione o degli oggetti che essa contiene, box, span e sub-reports (che vedremo in dettaglio nelle lezioni successive). Per esempio nel book Cartina visto nella lezione precedente nell'evento di On Formatting della sezione Detail abbiamo spostato la box che la sezione conteneva leggendo i valori delle colonne del record corrente. Se la sezione è nascosta non viene scatenato l'evento in quanto la sezione non viene preparata per la stampa.
Occorre puntializzare che una modifica ad una proprietà di una pagina Template o di una Sezione durante il corrispondente evento di On Formatting non viene effettuata sull'oggetto originale (pagina Template o sezione) ma al nuovo oggetto di quel tipo appena creato.
Ogni modifica ad oggetti al di fuori di quello che ha scatenato l'evento comporta modifiche all'oggetto originale. Per esempio se durante l'evento di On Formatting della pagina Template Pagina Pari nascondiamo una box della pagina Template Pagina Dispari, quando verrà creata una nuova pagina del tipo Pagina Dispari questa avrà già la box nascosta. Lo stesso succede se modifichiamo le proprietà degli oggetti in altri eventi di Form o procedure (per esempio se nascondiamo una box nell'evento On Load della form che contiene il book).
Vediamo ora due esempi di utilizzo degli eventi di formattazione.
Abbiamo già visto nella lezione precedente l'evento di On Formatting della sezione Detail nel book Cartina. Nel corpo dell'evento abbiamo spostato la box che la sezione conteneva calcolando la nuova posizione partendo dai dati del record corrente.
Vediamo ora un esempio di come possiamo utilizzare l'evento di On Formatting della pagina Template.
Qui vediamo che è stato aggiunto l'evento di On Formatting per la pagina Template. Nell'evento se il numero di pagina è pari, allora cambiamo l'orientazione della pagina. Inoltre viene nascosto la box che contiene il logo. Vediamo il risultato stampando il book su PDF.