Report con subtotali a diversi livelli

di il
16 risposte

Report con subtotali a diversi livelli

Ciao a tutti, sono alle prese con un rompicapo che mi sta togliendo il sonno e volevo capire se quello che cerco è fattibile. Parliamo della costruzione di un prospetto di rendiconto economico. Con una serie di passaggi (probabilmente in modo nemmeno ottimale) ho messo assieme una query di questo tipo:
pos          quadro          descrizione          saldo
A1            A             ricavi IT                        100
A2            A             ricavi                               50
A3            A             ricavi extra                     20
B1            B             variaz. giac PF                15
B2            B             variaz. giac SL               -10 
C1            C             costo manodopera       -25
C2            C             costo MP                         -35
C3            C             costo energia                -30
Ovviamente il prospetto è molto più complesso, ma sostanzialmente quello che vorrei ottenere è un report di questo tipo:
A1            A             ricavi IT                           100
A2            A             ricavi EU                            50
A3            A             ricavi extra                        20
RN                          RICAVI NETTI                   170
B1            B             variaz. giac PF                  15
B2            B             variaz. giac SL                 -10 
VG                          VARIAZIONE GIACENZE     5
PN                          PRODUZIONE NETTA      175
C1            C             costo manodopera          -25
C2            C             costo MP                           -35
C3            C             costo energia                   -30
CD                          COSTI DIRETTI                   -90
1MC                         PRIMO MARGINE              85

Sul report raggruppando per "Quadro" e inserendo i campi di somma parziale ottengo i subtotali RN, VG e CD:
A1            A             ricavi IT                            100
A2            A             ricavi EU                            50
A3            A             ricavi extra                        20
RN                          RICAVI NETTI                    170
B1            B             variaz. giac PF                    15
B2            B             variaz. giac SL                   -10 
VG                          VARIAZIONE  GIACENZE       5
C1            C             costo manodopera           -25
C2            C             costo MP                            -35
C3            C             costo energia                    -30
CD                          COSTI DIRETTI                   -90

ma come faccio ad esempio ad inserire le righe intermedie PN (somma algebrica dei quadri A+B) e 1MC (somma algebrica dei quadri A+B+C) e così via nella posizione corretta? E' possibile?
Non è semplice ma spero di essermi spiegato.
Grazie a chiunque riesca a darmi una dritta!!!
Claudio

16 Risposte

  • Re: Report con subtotali a diversi livelli

    Se ho capito bene… non ci sono righe intermedie da inserire. Potresti creare tre sottoreport alimentati dalla stessa query ma con diverso criterio, ovvero sul valore del campo quadro.

  • Re: Report con subtotali a diversi livelli

    Ciao,

    puoi eseguire il calcolo dei Quadri in una query da accodare alla  Query che hai già 

    a quel punto nel recordset del report hai nell'ordine desiderato tutte le righe che ti interessano e non devi far nessun calcolo semplificando la costruzione dello stesso

  • Re: Report con subtotali a diversi livelli

    31/07/2023 - Antony73 ha scritto:


    Se ho capito bene… non ci sono righe intermedie da inserire. Potresti creare tre sottoreport alimentati dalla stessa query ma con diverso criterio, ovvero sul valore del campo quadro.

    In effetti la query contiene tutti i dati, si tratta di fare qualche calcolo e inserire i risultati nel report. Non so come si costruiscono i sottoreport, farò qualche ricerca… Grazie!!!

  • Re: Report con subtotali a diversi livelli

    01/08/2023 - By65Franco ha scritto:


    Ciao,

    puoi eseguire il calcolo dei Quadri in una query da accodare alla  Query che hai già 

    a quel punto nel recordset del report hai nell'ordine desiderato tutte le righe che ti interessano e non devi far nessun calcolo semplificando la costruzione dello stesso

    ciao By65Franco e grazie per il consiglio, proverò a fare come dici. Una volta creata la query e riordinata sai se nel report è possibile evidenziare (es. In grassetto) solo determinati record?

    Grazie!!!

  • Re: Report con subtotali a diversi livelli

    Io non ho capito molto, i dati sono o no raggruppabili per qualche campo…?

    Se la risposta è SI crea un RAGGRUPPAMENTO ed in quello inserisci le TextBox per il TOTALE_PARZIALE, basta che non aggiungi salti pagina o spaziature inutili e non hai stacchi…

    Se non hai forme di Aggregazione o Raggruppamento che consentono l'automazione del calcolo mi chiedo come fai a fare i conti…? e questo sia tu lo faccia con questo sistema che tu lo faccia con SottoReport o Query.

    Personalmente non userei assolutamente per questa esigenza i SottoReport dovresti poi gestirne la Visibilità/Altezza per non farli apparire… perchè a prescindere NON SAI dove posizionarli e dove sono da rendere VISIBILI… 

    La strada giusta è introdurre un campo di aggregazione o una forma di raggruppamento che consenta di creare un Report con le sezioni di Calcolo adeguate, queste sono poi Automatichamente posizionate giuste.

  • Re: Report con subtotali a diversi livelli

    01/08/2023 - @Alex ha scritto:


    Io non ho capito molto, i dati sono o no raggruppabili per qualche campo…?

    Se la risposta è SI crea un RAGGRUPPAMENTO ed in quello inserisci le TextBox per il TOTALE_PARZIALE, basta che non aggiungi salti pagina o spaziature inutili e non hai stacchi…

    Se non hai forme di Aggregazione o Raggruppamento che consentono l'automazione del calcolo mi chiedo come fai a fare i conti…? e questo sia tu lo faccia con questo sistema che tu lo faccia con SottoReport o Query.

    Personalmente non userei assolutamente per questa esigenza i SottoReport dovresti poi gestirne la Visibilità/Altezza per non farli apparire… perchè a prescindere NON SAI dove posizionarli e dove sono da rendere VISIBILI… 

    La strada giusta è introdurre un campo di aggregazione o una forma di raggruppamento che consenta di creare un Report con le sezioni di Calcolo adeguate, queste sono poi Automatichamente posizionate giuste.

    ciao @Alex, hai perfettamente centrato la questione.  Il rendiconto fin'ora viene fatto in excel imputando manualmente tutti i dati risultanti da gestionale. Quello che sono riuscito a fare fin'ora è l'estrazione dei dati tramite collegamenti a tabelle, e poi con una serie di varie query di “appoggio” sono arrivato alla query finale (esempio semplificato sopra) che contiene tutti i dati necessari tranne i totali parziali (RN, VG, PN, ecc…).

    Il primo livello di totali (nell'esempio sopra RN, VG, CD) è dato dalla somma algebrica delle righe dei singoli “Quadri” (A, B, C, ecc…), e fin qui ci sono arrivato con il raggruppamento sul report.  Il problema è che ho bisogno di ulteriori livelli di raggruppamento con relativi totali, esempio:

    PN = righe A+B = Produzione Netta

    1°MC = righe A+B+C = 1° Margine Contribuzione

    e così via fino al quadro L che mi dà il Risultato Finale Netto

    Per questioni di lettura del report sarebbe bello poter inserire queste righe dopo i totali di “primo livello” e qui vado in difficoltà.  Potrei marcare i vari record della query con un ulteriore campo in modo da poterli poi raggruppare in modo da ottenere i vari totali parziali, e che poi non saprei bene come gestirli a livello di report.

    Comunque grazie 1000 per i suggerimenti che mi avete dato, ora provo a guardarci.

  • Re: Report con subtotali a diversi livelli

    Se razionaliziamo il concetto mi pare di capire che ad ogni CAMBIO “QUADRO” devi fare dei Totali.

    Se i Quadri sono “A/B/C” quindi ordinabili in senso Alfabetico a mio avviso potresti valorizzare i Totali in una Sezione Raggruppamento su Quadro e con 3 righe di VBA nella sezione e nel Corpo combinare i conti.

    Nel Corpo puoi sommare sia il Totale di tutti quindi otterrai Somma(A+B+C), ma anche meglio Somma(Somma(A)+Somma(B)+Somma(C))

    Che siano 3 o più i Quadri direi che cambia poco… crei un Array di Double o Currency a seconda di cosa devi fare con i numeri, se sono € usa Currency, ed a seconda del Valore del Quadro sommi nell'indice dell'array dedicato.

    Sapendo che gli Array sono ZERO BASED, se non esplicitato diverso, e se effettivamente i tuoi codici sono A/B/C puoi usare la Funzione ASC(CodiceQuadro) -65 per indicizzare l'array.

    Una cosa simile, è solo a scopo di prova:

    Option Compare Database
    Option Explicit
    
    Dim SommaParziale(0 To 2) As Currency
    
    Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
        SommaParziale(Asc(Me!CodiceQuadro) - 65) = SommaParziale(Asc(Me!CodiceQuadro) - 65) + Me!ValoreDaSommare
    End Sub

    Poi nella Sezione Raggruppamento a seconda sempre della condizione vai a sommare gli ITEMS in base alla logica che ritieni e valorizzi la TextBox.

    L'evento del Raggruppamento nel PieDiPagina, si verifica quando ha terminato il Gruppo, prima di passare al Successivo, quindi metti un SELECT CASE e procedi…

  • Re: Report con subtotali a diversi livelli

    Wow! un po' oltre le mie (scarse) conoscenze comunque ci provo.

    L'importante è che sia fattibile, GRAZIE!!!!!!!!!!!!!!

    a presto

  • Re: Report con subtotali a diversi livelli

    01/08/2023 - By65Franco ha scritto:


    Ciao,

    puoi eseguire il calcolo dei Quadri in una query da accodare alla  Query che hai già 

    a quel punto nel recordset del report hai nell'ordine desiderato tutte le righe che ti interessano e non devi far nessun calcolo semplificando la costruzione dello stesso

    Come lo posizioni poi esattamente nel posto che serve…? Non esiste un CRITERIO quindi non ordinabile in modo funzionale, andrebbe dove vuole lui anzi alla fine, dovendo fare Molteplici Somme Parziali sarebbero tutte in coda, ed ognuna da realizzare con Query…?

    Pensiamo poi se domani dovesse filtrare i dati… le query devono ereditare i criteri…? Dobbiamo modificare tutto…?

    Lo trovo decisamente infattibile oltre che non conveniente.

  • Re: Report con subtotali a diversi livelli

    31/07/2023 - Antony73 ha scritto:


    Se ho capito bene… non ci sono righe intermedie da inserire. Potresti creare tre sottoreport alimentati dalla stessa query ma con diverso criterio, ovvero sul valore del campo quadro.

    Non trovo sia una buona idea, oltre che complessa, il SottoReport dovrebbe discriminare QUALE tipo di SOMME FARE ed avrebbe in pancia invece solo una PARTE dei dati… quelli che legano REPORT(Campo) SOTTOREPORT(CAMPO)…

  • Re: Report con subtotali a diversi livelli

    01/08/2023 - @Alex ha scritto:


    Se razionaliziamo il concetto mi pare di capire che ad ogni CAMBIO “QUADRO” devi fare dei Totali.

    Se i Quadri sono “A/B/C” quindi ordinabili in senso Alfabetico a mio avviso potresti valorizzare i Totali in una Sezione Raggruppamento su Quadro e con 3 righe di VBA nella sezione e nel Corpo combinare i conti.

    Ciao @Alex …. mi sembra un ottima soluzione e in caso di modifiche/implementazioni devi solo intervenire sul report.

  • Re: Report con subtotali a diversi livelli

    01/08/2023 - By65Franco ha scritto:

    Ciao @Alex …. mi sembra un ottima soluzione e in caso di modifiche/implementazioni devi solo intervenire sul report.

    Purtroppo nel caso aumentassero le condizioni di SommaParziale, non essendo codificato a monte, ed essendo pertanto gestito da codice non resta che gestirle nel codice del Report.

    Non mi sforzerei di trovare ulteriori automatismi, anche perchè mi pare sia nell'insieme tutto estremamente intuitivo e flessibile come logica.

  • Re: Report con subtotali a diversi livelli

    01/08/2023 - @Alex ha scritto:


    01/08/2023 - By65Franco ha scritto:

    Ciao @Alex …. mi sembra un ottima soluzione e in caso di modifiche/implementazioni devi solo intervenire sul report.

    Purtroppo nel caso aumentassero le condizioni di SommaParziale, non essendo codificato a monte, ed essendo pertanto gestito da codice non resta che gestirle nel codice del Report.

    Non mi sforzerei di trovare ulteriori automatismi, anche perchè mi pare sia nell'insieme tutto estremamente intuitivo e flessibile come logica.

    Concordo !!! bravo !  
    A me serve molto il confronto… apre la mente ad altre soluzioni e approcci che diversamente non sarebbe possibile ;-)

  • Re: Report con subtotali a diversi livelli

    Buongiorno ragazzi, ora raccolgo un po' tutte le info e vedo fin dove arrivo!

    Non ho mai gestito da codice i report di access cmq immagino che funzioni come nelle maschere (scusate la banalità…).

    Vi terrò informati sui risultati, credo non mancheranno ulteriori mie domande.

    Grazie!

Devi accedere o registrarti per scrivere nel forum
16 risposte