Sezioni di Gruppo e funzioni di raggruppamento
copia linkTrascrizione

Un’altra funzionalità offerta dal motore di stampa è quella di poter stampare i dati in un formato Raggruppato. Con il termine raggruppato non si intende un semplice ordinamento dei dati, ma un formato che preveda una Intestazione di Gruppo, un Piede Gruppo, con la possibilità di stampa di valori calcolati attraverso funzioni di aggregazione, quali, ad esempio: Somme, Medie o Conteggi.
Tornando al Libro Località, pensiamo di voler stampare i dati, non come un semplice elenco, ma con un raggruppamento per ISO Stato. Di certo, per ottenere il risultato, i dati dovranno essere ordinati per le colonne ISO Stato e, aggiungerei, anche per la colonna Denominazione e dovrà essere anche aggiunto al Report la funzionalità di Raggruppamento, appunto con la creazione di Gruppi.
La creazione di nuovi Gruppi è realizzabile con il trascinamento, nell’albero di progetto, della colonna desiderata dalla Master Query all’oggetto Report.
Una parentesi, per un piccolo aiuto. Siccome con gli oggetti Libri, si utilizza spesso il mouse con scorciatoie di tastiera, vi invito a buttare l’occhio sulla barra di stato di Instant Developer, in quanto viene mostrato un help sull’operazione che state eseguendo.
Tornando alla creazione del Gruppo, trasciniamo la colonna ISO Stato sull’oggetto Nuovo Report, questa volta senza utilizzare la tastiera. Attendo un attimo a rilasciare per avere il tempo di leggere sulla barra di stato che stiamo effettivamente creando un nuovo Gruppo basato, appunto, sulla colonna ISO Stato.
Al rilascio del mouse, automaticamente è stato aggiunto, alla Master Query, l’ordinamento primario ISO Stato e due nuove sezioni: ISO Stato Intestazione Gruppo e ISO Stato Piede Gruppo.
Nel caso non fosse visibile l’Anteprima del Report, vi ricordo che potete sempre fare doppio clic nell’albero di progetto, appunto, sull’oggetto Nuovo Report.
Nelle sezioni Intestazione e Piede Gruppo è possibile aggiungere qualsiasi oggetto che verrà, ovviamente, replicato per ogni elemento ISO Stato univoco che sarà recuperato dal database. Ad esempio, nella Intestazione Gruppo, potremmo volere stampare una frase una tipo:
Quindi è una frase formata da una parte di Testo costante più una parte di Testo variabile, derivante, appunto, dalla colonna ISO Stato. Come sarebbe meglio procedere? Creare 2 oggetti Box, con uno il Testo fisso e l’altro il Testo variabile, oppure è preferibile un unico oggetto Box, con all’interno span differenti?
Io consiglio sempre la seconda modalità: cioè una unica box con all’interno N oggetti span, che verranno concatenati in fase di stampa.
Per semplicità creiamo l’oggetto Box, trascinando la colonna ISO Stato dalla Master Query alla sezione Intestazione Gruppo con il tasto <SHIFT> sulla tastiera premuto. Ecco, ora, rimanendo sull’albero di progetto, precisamente sull’oggetto che è stato inserito, l’oggetto Box, denominato ISO Stato, aggiungiamo al suo interno uno span. Quindi: tasto destro, Aggiungi Span.
Se vi ricordate, il testo fisso deve essere indicato nella parte Descrizione. Quindi il nostro testo fisso lo possiamo scrivere Elenco Località relative allo Stato e poi lascio uno spazio (SPACE): confermo. Ecco, attenzione che l’ordine degli oggetti span è importante per la compilazione, ovviamente, della frase. Quindi noi trasciniamo il testo fisso sullo span del testo variabile, così da avere la nostra frase desiderata. Sistemo un attimo meglio questa box.
Passiamo alla parte Piede Gruppo. Ah, dimenticavo: ma siamo obbligati ad avere sia Intestazione che Piede Gruppo? Mah, no! Possiamo anche decidere se avere entrambi le sezioni o solo una delle due cancellando, ovviamente, quella che non è di nostro interesse. Tornando al Report Località, vorremmo stampare il numero di Comuni elencati in un determinato stato. Cioè vorremmo applicare a una colonna della Master Query una funzione di aggregazione di tipo Conteggio.
Il metodo che vi mostro a breve, basato sulla funzione di conteggio, è il medesimo da utilizzare in caso si voglia un risultato diverso, dato da altre funzioni di aggregazione, quali, ad esempio: la Somma, la Media, la Varianza.
Ecco, tra le colonne della Master Query, quale colonna vogliamo, diciamo, “contare”? La funzione prenderà in esame tutti i valori di una determinata colonna del recordset e ritornerà il numero di record il cui valore risulti diverso da stringa vuota, da Null. Ecco, nel nostro esempio potremmo utilizzare sia la colonna Id che la colonna Denominazione, perché sicuramente sono con dei valori compilati.
Ora, procediamo eseguendo l’operazione di trascinamento solo con gli oggetti dell’albero di progetto, quindi tralasciamo l’Anteprima Report, in questo caso. Trasciniamo la colonna Denominazione sulla sezione Piede Gruppo e intanto premiamo il tasto <SHIFT> sulla tastiera.
(Mi soffermo un attimo, prima del rilascio, così possiamo leggere l’aiuto nella barra di stato. L’aiuto dice che verrà aggiunta una box con il calcolo della Somma. Ok, volevamo il conteggio, però, per ora, confermiamo comunque: quindi rilascio il mouse e quindi la tastiera.)
Abbiamo effettivamente ottenuto la creazione automatica di un oggetto Box, con all’interno uno Span: uno Span per il calcolo, in questo caso, della Somma dei valori di una colonna. Dobbiamo solamente modificare la funzione di aggregazione e il nostro lavoro diciamo che è concluso.
Quindi, andiamo sullo Span. Doppio clic sull’oggetto Span: nell’area dell’Espressione modifichiamo la funzione Sum, andando a sostituirla con la funzione Count ed il gioco è fatto. Potevamo sostituirla anche con la funzione Everage o altre funzioni. Per chiarezza, una volta che abbiamo confermato questa modifica dello Span, io andrei anche a modificare l’identificativo della Box, visto che adesso dice Sum Of, lo chiamiamo Count Of.
Il Report prodotto in stampa sarà in formato raggruppato per ISO STATO, con una Intestazione composta da una espressione calcolata, con un Piede, con il numero totale dei Comuni del gruppo. Ovviamente, potremmo inserire ulteriori raggruppamenti, quindi: nuove Intestazioni e Piedi Gruppo. Però, ovviamente, tutto dipende da come sono i dati presenti sul database e se esistono altre colonne di raggruppamento.
Tornando al Libro Località, pensiamo di voler stampare i dati, non come un semplice elenco, ma con un raggruppamento per ISO Stato. Di certo, per ottenere il risultato, i dati dovranno essere ordinati per le colonne ISO Stato e, aggiungerei, anche per la colonna Denominazione e dovrà essere anche aggiunto al Report la funzionalità di Raggruppamento, appunto con la creazione di Gruppi.
La creazione di nuovi Gruppi è realizzabile con il trascinamento, nell’albero di progetto, della colonna desiderata dalla Master Query all’oggetto Report.
Una parentesi, per un piccolo aiuto. Siccome con gli oggetti Libri, si utilizza spesso il mouse con scorciatoie di tastiera, vi invito a buttare l’occhio sulla barra di stato di Instant Developer, in quanto viene mostrato un help sull’operazione che state eseguendo.
Tornando alla creazione del Gruppo, trasciniamo la colonna ISO Stato sull’oggetto Nuovo Report, questa volta senza utilizzare la tastiera. Attendo un attimo a rilasciare per avere il tempo di leggere sulla barra di stato che stiamo effettivamente creando un nuovo Gruppo basato, appunto, sulla colonna ISO Stato.
Al rilascio del mouse, automaticamente è stato aggiunto, alla Master Query, l’ordinamento primario ISO Stato e due nuove sezioni: ISO Stato Intestazione Gruppo e ISO Stato Piede Gruppo.
Nel caso non fosse visibile l’Anteprima del Report, vi ricordo che potete sempre fare doppio clic nell’albero di progetto, appunto, sull’oggetto Nuovo Report.
Nelle sezioni Intestazione e Piede Gruppo è possibile aggiungere qualsiasi oggetto che verrà, ovviamente, replicato per ogni elemento ISO Stato univoco che sarà recuperato dal database. Ad esempio, nella Intestazione Gruppo, potremmo volere stampare una frase una tipo:
Elenco delle località relative allo Stato [ISOSTATO]
Elenco Località relative allo Stato più, ovviamente, la sigla recuperata da ISO Stato.Quindi è una frase formata da una parte di Testo costante più una parte di Testo variabile, derivante, appunto, dalla colonna ISO Stato. Come sarebbe meglio procedere? Creare 2 oggetti Box, con uno il Testo fisso e l’altro il Testo variabile, oppure è preferibile un unico oggetto Box, con all’interno span differenti?
Io consiglio sempre la seconda modalità: cioè una unica box con all’interno N oggetti span, che verranno concatenati in fase di stampa.
Per semplicità creiamo l’oggetto Box, trascinando la colonna ISO Stato dalla Master Query alla sezione Intestazione Gruppo con il tasto <SHIFT> sulla tastiera premuto. Ecco, ora, rimanendo sull’albero di progetto, precisamente sull’oggetto che è stato inserito, l’oggetto Box, denominato ISO Stato, aggiungiamo al suo interno uno span. Quindi: tasto destro, Aggiungi Span.
Se vi ricordate, il testo fisso deve essere indicato nella parte Descrizione. Quindi il nostro testo fisso lo possiamo scrivere Elenco Località relative allo Stato e poi lascio uno spazio (SPACE): confermo. Ecco, attenzione che l’ordine degli oggetti span è importante per la compilazione, ovviamente, della frase. Quindi noi trasciniamo il testo fisso sullo span del testo variabile, così da avere la nostra frase desiderata. Sistemo un attimo meglio questa box.
Passiamo alla parte Piede Gruppo. Ah, dimenticavo: ma siamo obbligati ad avere sia Intestazione che Piede Gruppo? Mah, no! Possiamo anche decidere se avere entrambi le sezioni o solo una delle due cancellando, ovviamente, quella che non è di nostro interesse. Tornando al Report Località, vorremmo stampare il numero di Comuni elencati in un determinato stato. Cioè vorremmo applicare a una colonna della Master Query una funzione di aggregazione di tipo Conteggio.
Il metodo che vi mostro a breve, basato sulla funzione di conteggio, è il medesimo da utilizzare in caso si voglia un risultato diverso, dato da altre funzioni di aggregazione, quali, ad esempio: la Somma, la Media, la Varianza.
Ecco, tra le colonne della Master Query, quale colonna vogliamo, diciamo, “contare”? La funzione prenderà in esame tutti i valori di una determinata colonna del recordset e ritornerà il numero di record il cui valore risulti diverso da stringa vuota, da Null. Ecco, nel nostro esempio potremmo utilizzare sia la colonna Id che la colonna Denominazione, perché sicuramente sono con dei valori compilati.
Ora, procediamo eseguendo l’operazione di trascinamento solo con gli oggetti dell’albero di progetto, quindi tralasciamo l’Anteprima Report, in questo caso. Trasciniamo la colonna Denominazione sulla sezione Piede Gruppo e intanto premiamo il tasto <SHIFT> sulla tastiera.
(Mi soffermo un attimo, prima del rilascio, così possiamo leggere l’aiuto nella barra di stato. L’aiuto dice che verrà aggiunta una box con il calcolo della Somma. Ok, volevamo il conteggio, però, per ora, confermiamo comunque: quindi rilascio il mouse e quindi la tastiera.)
Abbiamo effettivamente ottenuto la creazione automatica di un oggetto Box, con all’interno uno Span: uno Span per il calcolo, in questo caso, della Somma dei valori di una colonna. Dobbiamo solamente modificare la funzione di aggregazione e il nostro lavoro diciamo che è concluso.
Quindi, andiamo sullo Span. Doppio clic sull’oggetto Span: nell’area dell’Espressione modifichiamo la funzione Sum, andando a sostituirla con la funzione Count ed il gioco è fatto. Potevamo sostituirla anche con la funzione Everage o altre funzioni. Per chiarezza, una volta che abbiamo confermato questa modifica dello Span, io andrei anche a modificare l’identificativo della Box, visto che adesso dice Sum Of, lo chiamiamo Count Of.
Il Report prodotto in stampa sarà in formato raggruppato per ISO STATO, con una Intestazione composta da una espressione calcolata, con un Piede, con il numero totale dei Comuni del gruppo. Ovviamente, potremmo inserire ulteriori raggruppamenti, quindi: nuove Intestazioni e Piedi Gruppo. Però, ovviamente, tutto dipende da come sono i dati presenti sul database e se esistono altre colonne di raggruppamento.
Ultima modifica: 08/06/2021 / Validità: da 21.0.8100