Scopo
Comunica al sistema le dimensioni delle pagine del book misurate in pixel. Tale procedura è da utilizzarsi solo ed esclusivamente se il book è contenuto in una porzione di una videata.
Le dimensioni fornite mediante la procedura SetSize influenzano la stampa del book solo se le pagine mastro del book hanno la proprietà FitMode diversa da None.
Qualora il valore della proprietà FitMode di una pagina sia uguale a FitWidth il sistema crea la pagina con larghezza uguale a quella fornita mediante la SetSize. Qualora il valore della proprietà FitMode di una pagina sia uguale a FitPage il sistema crea la pagina con dimensioni uguali a quelle fornite mediante la SetSize.
Sintassi
Argomenti
Larghezza | Larghezza del contenitore del book (pixel) |
Altezza | Altezza del contenitore del book (pixel) |
Esempio di codice
// Fired after changes in panel are saved to database
// **************************************************
event ImpiegatiBook.ConfigBook.AfterCommit(
int RowsUpdated // Number of rows inserted or updated
int RowsInErrors // Number of rows that cannot be updated due to databas...
)
{
int OldFitMode = 0 // Valore precedente della proprietà Fit_Mode
//
// Memorizzo il vecchio valore del Fit_Mode e aggiorno il valore della
// proprietà
OldFitMode := ImpiegatiBook.ImpiegatiBookPage.FitMode
ImpiegatiBook.ImpiegatiBookPage.FitMode := ConfigBook.FitMode
//
// Comunico al sistema le nuove dimensioni del book
ImpiegatiBook.SetSize(ConfigBook.Width, ConfigBook.Height)
//
// Ci sono 2 casi in cui la Set_Size non aggiorna automaticamente il book:
// 1) la proprietà Fit_Mode era NONE e tutte le pagine in memoria avevano
// tale valore. In quel caso la Set_Size non aggiorna il book e devo
// farlo io.
// 2) non sono state modificate le dimensioni. In questo caso la Set_Size
// non fa nulla e devo pensarci io a ristampare il book
if (OldFitMode <> ConfigBook.FitMode AND OldFitMode = None) OR NOT(
ConfigBook.ModifDims)
{
// Devo aggiornare tutte le pagine già stampate del book
ImpiegatiBook.Refresh(ONE, C-1)
//
// Ripristino il flag che indica se le dimensioni sono state modificate
// (vedi evento di OnUpdatingRow)
ConfigBook.ModifDims := False
}
}
- Attenzione: Tale procedura è utilizzabile solo se il book viene mostrato in anteprima in una videata. Se il book non è inserito in una porzione di videata la chiamata alla procedura genera un errore.
- Le dimensioni fornite mediante la procedura SetSize non hanno nulla a che fare con il valore delle proprietà Width ed Height del book. Le prime riguardano la gestione delle pagine con dimensioni dinamiche (proprietà FitMode), le seconde riguardano invece la dimensione del contenitore del book.
- Il sistema verifica se una delle pagine già stampate possiede il valore della proprietà FitMode diverso da None. Qualora questo avvenga il sistema aggiorna automaticamente tutto il book ristampando le pagine fino a quella attualmente mostrata. Se, invece, tutte le pagine avevano valore None ed il valore della proprietà FitMode della pagina Template è stato anch'esso modificato, occorre chiamare il metodo Refresh del book dopo la chiamata alla procedura SetSize.
- La procedura SetSize non ha effetto sulla stampa di un PDF. Le dimensioni della pagina del PDF rimangono quelle definite nelle corrispondenti proprietà della pagina Template.
Ultima modifica: 25/10/2016 / Validità: da 6.7.2850