English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Reportistica
  • Libreria Template Page

On Before Formatting

evento copia link

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

Vedi Anche

  • Page Number (funzione)
  • Number of Pages (funzione)
  • Number of Pages Confirmed (funzione)
  • On After Formatting (evento)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum