Scopo
Imposta il massimo numero di record che possono essere recuperati dal database. Il valore di default è 0 e indica che non viene imposto nessun limite al numero massimo di record recuperati dal database durante la stampa del report.
Sintassi
// Al massimo 100 righe ritornate
Book.Report.MaxRows := 100
Book.Report.MaxRows := 100
Quando letta
Restituisce il massimo numero di record che saranno recuperati dal database quando il book sarà stampato.
Quando impostata
Indica al sistema il massimo numero di records che è possibile recuperare dal database durante la stampa del book contenente il report.
Esempio di codice
// **************************************************
// Fired after changes in panel are saved to database
// **************************************************
event MultiReport.Filtri.AfterCommit(
int RowsUpdated // Number of rows inserted or updated
int RowsInErrors // Number of rows that cannot be updated due to databas...
)
{
boolean flRefresh = 0 //
//
// Se è cambiato il numero di righe devo rieseguire le query del book
if NewBook.ReportCategorie.MaxRows <> Filtri.MaxCategorie OR NewBook.
ReportProdotti.MaxRows <> Filtri.MaxProdotti
{
flRefresh := True
}
//
NewBook.ReportCategorie.Visible := Filtri.MostraCategorie
NewBook.ReportProdotti.Visible := Filtri.MostraProdotti
//
NewBook.ReportCategorie.MaxRows := Filtri.MaxCategorie
NewBook.ReportProdotti.MaxRows := Filtri.MaxProdotti
//
// Se devo, comunico al book che devono essere rieseguite le query
if flRefresh
{
NewBook.RefreshQuery()
}
//
// Aggiorno il book
NewBook.Refresh(ONE, C-1)
//
// Se non ero ancora stato stampato... vado automaticamente sulla prima pagina
if NewBook.PageNumber() = ZERO
{
NewBook.Print(ONE, ONE)
}
}
// Fired after changes in panel are saved to database
// **************************************************
event MultiReport.Filtri.AfterCommit(
int RowsUpdated // Number of rows inserted or updated
int RowsInErrors // Number of rows that cannot be updated due to databas...
)
{
boolean flRefresh = 0 //
//
// Se è cambiato il numero di righe devo rieseguire le query del book
if NewBook.ReportCategorie.MaxRows <> Filtri.MaxCategorie OR NewBook.
ReportProdotti.MaxRows <> Filtri.MaxProdotti
{
flRefresh := True
}
//
NewBook.ReportCategorie.Visible := Filtri.MostraCategorie
NewBook.ReportProdotti.Visible := Filtri.MostraProdotti
//
NewBook.ReportCategorie.MaxRows := Filtri.MaxCategorie
NewBook.ReportProdotti.MaxRows := Filtri.MaxProdotti
//
// Se devo, comunico al book che devono essere rieseguite le query
if flRefresh
{
NewBook.RefreshQuery()
}
//
// Aggiorno il book
NewBook.Refresh(ONE, C-1)
//
// Se non ero ancora stato stampato... vado automaticamente sulla prima pagina
if NewBook.PageNumber() = ZERO
{
NewBook.Print(ONE, ONE)
}
}
- Non tutti i database potrebbero tenere conto di questa proprietà quando eseguono la query sul database. E' quindi opportuno limitare il numero di record impostando le opportune condizioni di filtro nella master query del report.
- Se il massimo numero di righe viene impostato a zero, allora verranno recuperate tutte le righe recuperate dalla query, quindi non verrà impostato alcun limite.
- Attenzione: Dopo aver modificato il valore alla proprietà MaxRows è necessario eseguire il metodo RefreshQuery del report. Le query dei report, infatti, vengono conservate in memoria e la modifica alla proprietà MaxRows non causa l'automatico aggiornamento della query.
- Questa proprietà vale solo in caso di report su tabelle del database; i report su tabelle IMDB non considerano questa limitazione.
- E' sconsigliato modificare il valore della proprietà MaxRows all'interno degli eventi di formattazione degli oggetti del book poiché la modifica della proprietà richiede la riesecuzione della query del report e questa operazione, se effettuata durante la stampa del report, potrebbe causare effetti non desiderati.
Ultima modifica: 06/10/2021 / Validità: da 6.7.2900