Scopo
La procedura SetReprint chiede al sistema di ristampare la sezione con gli stessi dati e quindi senza cambiare la posizione nella nella query del report.
Sintassi
// Ristampa la sezione
Book.Sezione.SetReprint(Ristampa)
Book.Sezione.SetReprint(Ristampa)
Argomenti
| Ristampa | E' un parametro booleano che indica al sistema se occorre o meno ristampare la sezione con gli stessi dati. |
Esempio di codice
// ************************************
// Fired when the section is formatting
// ************************************
event CategorieBook1.BookCategorie.ReportCategorie.Detail.BeforeFormatting()
{
// Tooltip nome categoria
if NOT(IsNull(BookCategorie.DescrizioneCategorie))
...
//
// Se devo mostrare la griglia... vado fino a fine pagina
if Parametri.MostraGriglia = True
{
// Se devo, nascondo le celle che devono risultare vuote
if Parametri.NascondiCelleVuote = True
{
BookCategorie.ReportCategorie.IdcategoriaHeader.Visible := False
BookCategorie.ReportCategorie.Idcategoria.Visible := False
BookCategorie.ReportCategorie.NomeCategoriaHeader.Visible := False
BookCategorie.ReportCategorie.NomeCategoria.Visible := False
//
BookCategorie.ReportCategorie.Detail.VisualStyle := Riquadro
}
//
// Se sono arrivato sull'ultimo record devo cominciare forzare la ristampa
// delle sezioni
if BookCategorie.ReportCategorie.Detail.RecordNumber() = BookCategorie.
ReportCategorie.RecordsCount()
{
boolean flDone = 0 // Vale TRUE se ho finito di ristampare
//
// Ho finito se sono arrivato alla fine della pagina e se ho stampato un
// numero totale di sezioni multiplo del numero di colonne
flDone := BookCategorie.ReportCategorie.Detail.YPos() + BookCategorie.
ReportCategorie.Detail.Height + BookCategorie.ReportCategorie.Detail.
Height = BookCategorie.PageBody.Height AND Parametri.
NumeroCelleStampate % Parametri.NumeroColonne = Parametri.
NumeroColonne - ONE
//
// Se non ho finito
if NOT(flDone)
{
// Forzo la ristampa della sezione
BookCategorie.ReportCategorie.Detail.SetReprint(True)
//
// Se è la prima volta, attivo questo semaforo che mi permette di
// nascondere i dati contenuti nelle sezioni "forzate"
if NOT(Parametri.NascondiCelleVuote)
{
// Dalla prossima sezione devo iniziare a nascondere i dati
Parametri.NascondiCelleVuote := True
}
}
}
//
// Conto quante sezioni ho stampato in totale
Parametri.NumeroCelleStampate := Parametri.NumeroCelleStampate + ONE
}
}
// Fired when the section is formatting
// ************************************
event CategorieBook1.BookCategorie.ReportCategorie.Detail.BeforeFormatting()
{
// Tooltip nome categoria
if NOT(IsNull(BookCategorie.DescrizioneCategorie))
...
//
// Se devo mostrare la griglia... vado fino a fine pagina
if Parametri.MostraGriglia = True
{
// Se devo, nascondo le celle che devono risultare vuote
if Parametri.NascondiCelleVuote = True
{
BookCategorie.ReportCategorie.IdcategoriaHeader.Visible := False
BookCategorie.ReportCategorie.Idcategoria.Visible := False
BookCategorie.ReportCategorie.NomeCategoriaHeader.Visible := False
BookCategorie.ReportCategorie.NomeCategoria.Visible := False
//
BookCategorie.ReportCategorie.Detail.VisualStyle := Riquadro
}
//
// Se sono arrivato sull'ultimo record devo cominciare forzare la ristampa
// delle sezioni
if BookCategorie.ReportCategorie.Detail.RecordNumber() = BookCategorie.
ReportCategorie.RecordsCount()
{
boolean flDone = 0 // Vale TRUE se ho finito di ristampare
//
// Ho finito se sono arrivato alla fine della pagina e se ho stampato un
// numero totale di sezioni multiplo del numero di colonne
flDone := BookCategorie.ReportCategorie.Detail.YPos() + BookCategorie.
ReportCategorie.Detail.Height + BookCategorie.ReportCategorie.Detail.
Height = BookCategorie.PageBody.Height AND Parametri.
NumeroCelleStampate % Parametri.NumeroColonne = Parametri.
NumeroColonne - ONE
//
// Se non ho finito
if NOT(flDone)
{
// Forzo la ristampa della sezione
BookCategorie.ReportCategorie.Detail.SetReprint(True)
//
// Se è la prima volta, attivo questo semaforo che mi permette di
// nascondere i dati contenuti nelle sezioni "forzate"
if NOT(Parametri.NascondiCelleVuote)
{
// Dalla prossima sezione devo iniziare a nascondere i dati
Parametri.NascondiCelleVuote := True
}
}
}
//
// Conto quante sezioni ho stampato in totale
Parametri.NumeroCelleStampate := Parametri.NumeroCelleStampate + ONE
}
}
- Normalmente la procedura SetReprint viene chiamata all'interno dell'evento BeforeFormatting della sezione per indicare al sistema che occorre ristampare la sezione stessa senza muovere la riga corrente nella query del report.
- La procedura SetReprint può essere utilizzata unicamente all'interno dell'evento BeforeFormatting della sezione. Al di fuori di tale evento la funzione non ha alcun effetto.
- La procedura SetReprint chiede al sistema di ristampare la sezione utilizzando gli stessi dati. Qualora si debba stampare una griglia vuota occorre nascondere le eventuali box e span contenuti nella sezione, come mostrato nell'esempio di codice (vedi parametro NascondiCelleVuote).
Ultima modifica: 23/03/2021 / Validità: da 6.7.2900
procedura