Italian community of Lazarus and Free Pascal

Programmazione => Componenti Aggiuntivi => Topic aperto da: tito_livio - Gennaio 17, 2021, 01:32:21 am

Titolo: "keep group together" in Lazreport
Inserito da: tito_livio - Gennaio 17, 2021, 01:32:21 am
Buongiorno a tutti,
Con il Lazreport stampo dei dati raggruppati secondo un certo criterio.
Però a volte il gruppo finisce per avere l'Header su di una pagina e il Footer sulla successiva e non riesco a farli stare insieme sulla stessa pagina.
Cioè vorrei che l'Header forzasse il salto pagina solo se tutto il gruppo non entra nello spazio che rimane sulla pagina stessa.
Cliccando sul tasto destro sulla banda GroupHeader ci sono delle opzioni ma nessuna risolve il problema.
Cosa posso fare?
Credo che sia un problema frequente per chi si occupa di programmi gestionali.
Grazie in anticipo.
Titolo: Re:"keep group together" in Lazreport
Inserito da: nomorelogic - Gennaio 17, 2021, 11:03:31 am
ciao,
non conosco lazreport ma potresti vedere se, sui parametri del gruppo, c'è un'opzione tipo "nuova pagina se spazio rimanente minore di N cm".
E' un'opzione che di solito si trova nei programmi di reportistica.

Spero sia utile.
Titolo: Re:"keep group together" in Lazreport
Inserito da: bonmario - Gennaio 17, 2021, 12:35:25 pm
Credo che sia un problema frequente per chi si occupa di programmi gestionali.

Infatti, capita tutti i giorni !!!
Non ho mai usato Lazreport, ma la logica vale per tutti i linguaggi:
- imposti in una costante quante righe possono essere stampate per ogni foglio: CstTotRighe
- all'inizio del programma, inizializzi a 0 una variabile in cui salvi il n° di righe già stampate: NumRigheStampate
- prima di emettere i dati in stampa, verifichi quante righe andresti a stampare: NumRigheDaStp
- se (NumRigheStampate + NumRigheDaStp) > CstTotRighe allora prima di emettere i dati in stampa, devi saltare alla pagina nuova
- in caso contrario, emetti i dati in stampa e fai NumRigheStampate = NumRigheStampate + NumRigheDaStp

Come suggerito da nomorelogic, invece delle righe, puoi usare i cm o i mm

Ciao, Mario
Titolo: Re:"keep group together" in Lazreport
Inserito da: tito_livio - Gennaio 17, 2021, 02:28:38 pm
Grazie per le risposte. Purtroppo in questo caso non è facile tenere in conto delle righe già stampate (o dei cm occupati) nella pagina. Infatti, le righe stampate in una pagina non dipendono soltanto dai record stampati ma anche da come questi ultimi vengono raggruppati.
Con Fast Report, per esempio, c'è l'opzione, della banda GroupHeader, "Keep group together".
In Lazreport ho trovato "keep child together with parent" ma non mi funziona.

Ciao, Livio
Titolo: Re:"keep group together" in Lazreport
Inserito da: tito_livio - Gennaio 17, 2021, 03:22:08 pm
Visto che non utilizzate Laz Report, che strumenti usate per le stampe?
Titolo: Re:"keep group together" in Lazreport
Inserito da: bonmario - Gennaio 17, 2021, 06:18:23 pm
A me non è mai servito nulla di complesso, quindi scrivo in un file di testo, usando la tecnica che ti ho descritto prima, e poi se serve lo stampo.

Ciao, Mario