Condizioni di notifica
Questo evento viene notificato dalla pagina quando questa sta per essere preparata per la stampa. Quando il motore di stampa decide che è necessaria una nuova pagina ne crea una copia in memoria e notifica l'evento di OnBeforeFormatting.
Utilizzo consigliato
L'evento di OnBeforeFormatting può essere utilizzato per impostare le proprietà della pagina o delle box in essa contenute. E' possibile nascondere singole box o span. E' anche possibile cambiare lo stile visuale della degli oggetti che la pagina contiene.
Tutte le modifiche alla pagina che ha notificato l'evento o agli oggetti che questa contiene vengono applicate solo ed esclusivamente alla copia che è stata creata durante la preparazione della stampa. Modifiche ad oggetti non contenuti nella pagina vengono, invece, applicate agli oggetti da cui verranno fatte le copie per il proseguimento della stampa.
Argomenti
L'evento non ha argomenti.Esempio di codice
// Fired when a page is formatting
// *******************************
event ProdottiBook.ProdottiBook.ProdottiBookPage.OnBeforeFormatting()
{
int Pg = 0 //
boolean flFound = 0 // This variable is true if the linked query has ret...
//
record Parametro
int NumeroPagina = 0 //
int Width = 0 // Larghezza della pagina
int Height = 0 // Altezza della pagina
int Orientation = 0 // Orientamento della pagina
//
// Recupero il numero di pagina in fase di formattazione
Pg := ProdottiBook.PageNumber()
//
// Vediamo se ci sono particolari configurazioni per questa pagina
select into variables (flFound)
set Parametro.Width := Width
set Parametro.Height := Height
set Parametro.Orientation := Orientation
from
ParametriBook // Master Table
where
NumeroPagina = Pg
//
// Se ci sono configurazioni particolari, le applico
if flFound
{
if NOT(IsNull(Parametro.Width)) AND Parametro.Width <> ProdottiBook.
ProdottiBookPage.Width
{
ProdottiBook.ProdottiBookPage.Width := Parametro.Width
}
if NOT(IsNull(Parametro.Height)) AND Parametro.Height <> ProdottiBook.
ProdottiBookPage.Height
{
ProdottiBook.ProdottiBookPage.Height := Parametro.Height
}
if NOT(IsNull(Parametro.Orientation)) AND Parametro.Orientation <>
ProdottiBook.ProdottiBookPage.Orientation
{
ProdottiBook.ProdottiBookPage.Orientation := Parametro.Orientation
}
}
}
- In questo evento non è consigliabile leggere il valore delle colonne della query dei reports in quanto le query potrebbero trovarsi in uno stato non definito.
- In questo evento è possibile utilizzare il risultato delle funzioni PageNumber e NumberOfPages del book per poter sapere il numero corrente della pagina e il numero totale di pagine. Occorre prestare attenzione al fatto che la funzione NumberOfPages restituirà il numero corretto solo se è stato impostato il flag Precount Pages nella videata delle proprietà del Book. E' anche possibile leggere il valore della funzione NumberOfPagesConfirmed per sapere se il motore di stampa sta effettuando il primo o il secondo giro, qualora sia stato impostato il flag Precount Pages di cui sopra.
- Prima della versione 22.5 l'evento si chiamava OnFormatting. A partire dalla versione 22.5 il nome è stato cambiato in OnBeforeFormatting poiché è stato aggiunto l'evento OnAfterFormatting.
Ultima modifica: 24/08/2022 / Validità: da 6.5.2680