Conteggio del numero di raggruppamenti nei report

di il
10 risposte

Conteggio del numero di raggruppamenti nei report

Buongiorno, avrei bisogno di calcolare una media dei campi somma di un Report raggruppato ma non ne sto venendo a capo dato che in questo caso gli automatismi di media non funzionano!
Ho raggruppato le informazioni di una query secondo due criteri : Nome del pezzo (portello ancora) e Commessa , la commessa mi deve dare le lavorazioni sul pezzo (come da foto allegata) con calcolo di tempo e costo, io voglio che nel pie di pagina mi compaia il tempo medio per fare un pezzo dati i rilevamenti effettuati sui pezzi prodotti.
Ho bisogno, una volta calcolate le ore e costi totali , di dividere i risultati per il numero di commesse, quindi di gruppi frutto del raggruppamento (che ogni volta cambiano).
Come posso fare?
Come posso calcolare quante intestazioni commessa mi ha prodotto il report?
Ho provato in vari modi ma continua a darmi il numero dei record sottesi al raggruppamento, non il numero dei raggruppamenti diciamo.
Ho provato anche da layout a fare Totale>Media ma l'opzione rimane grigia e non me la fa selezionare.
Con il calcolo in pie di pagina di "=Media([ORE])" mi calcola la media delle ore delle singole lavorazioni e non delle due somme.

Grazie mille
Allegati:
30891_1a1510747154cdbd99bde41b3abf4c20.png
30891_1a1510747154cdbd99bde41b3abf4c20.png

30891_073139ab5c75f778daf66b965a4c7ecd.png
30891_073139ab5c75f778daf66b965a4c7ecd.png

30891_582aea53b6aa4e303f58dcc51bc29a5b.png
30891_582aea53b6aa4e303f58dcc51bc29a5b.png

10 Risposte

  • Re: Conteggio del numero di raggruppamenti nei report

    Hai provato una cosa simile, predisponi una Texbox nel piediPagina Raggruppamento, dove ora hai la somma, con Origine controllo:
    =Somma(NomeControllo)/Conteggio(NomeControllo)
  • Re: Conteggio del numero di raggruppamenti nei report

    Si ma lui conta tutte le commesse sottese al raggruppamento , come in foto, quindi 5 e non 2!!
    Allegati:
    30891_d06334678d9bbf7c0d606cd0e0815930.png
    30891_d06334678d9bbf7c0d606cd0e0815930.png

    30891_f3916162c2816230279b98e150a0ccc7.png
    30891_f3916162c2816230279b98e150a0ccc7.png
  • Re: Conteggio del numero di raggruppamenti nei report

    Prova a mettere in Pièdipagina Commessa un campo = Conteggio(commessa) così ci togliamo i dubbi.
    Dopo, se nel campo compare il valore atteso (2), prova a calcolare la media ore = Somma(ore)/campo conteggio commessa del pièpagina.

    Se non funziona io tenterei un approccio tramite VBA :
    - dichiaro una variabile, a livello di report, per il conteggio delle commesse (relativo al gruppo Piccola VTR)
    Dim lCountCom as long
    - nell'eventoIntestazionePiccolaVTR_format azzero la variabile
    lCountcom = 0
    - nell'evento IntestazioneCommessa_format (o PièdiPaginaCommessa_format) incremento la variabile
    lCountcom = lCountcom + 1
    - nell'evento pièdipaginaPiccolaVTR_format calcolo la media oraria delle commesse
    mediaoraria = somma(ore)/lcountcom

    Il tutto indicativamente senza averlo provato ...
  • Re: Conteggio del numero di raggruppamenti nei report

    Grazie Max!..Primo tentativo con Conteggio, continua a contarmi i valori sbagliati.
    Per quanto riguarda il VBA avrei bisogno di qualche precisazione, il processo che devo seguire è visualizzo struttura>clicco su intestazione piccolaVTR>apro il visualizzatore di codice e incollo paro paro "Dim lCountCom as long" e così per tutti gli altri??
    Quando scrivi " nell'eventoIntestazionePiccolaVTR_format " l'evento devo crearlo direttamente dall'editor VBA aprendo una nuova scheda o fa riferimento ad una sezione già presente nella struttura del mio report che io devo selezionare>aprire finestra VBA e scrivere "lCountcom = lCountcom + 1".
    Purtroppo sono molto a digiuno di VBA come si può capire
    Grazie mille
    Allegati:
    30891_a6c5709d65ac0c06431fc529c3faf2d7.png
    30891_a6c5709d65ac0c06431fc529c3faf2d7.png

    30891_18ca9cd53b7d9767b4b95d559d050c52.png
    30891_18ca9cd53b7d9767b4b95d559d050c52.png
  • Re: Conteggio del numero di raggruppamenti nei report

    Scusami ....forse ho capito in che senso Evento_Format, devo andare in evento>Su Formattazione>apri generatore di codice..giusto??
    Allegati:
    30891_44ef9f32ee1167be7a119255033d661c.png
    30891_44ef9f32ee1167be7a119255033d661c.png
  • Re: Conteggio del numero di raggruppamenti nei report

    Ho fatto così però nel Report non mi compare alcun risultato!!
    Allegati:
    30891_dd31c8c8f88f22fdbed37a882943a16f.png
    30891_dd31c8c8f88f22fdbed37a882943a16f.png
  • Re: Conteggio del numero di raggruppamenti nei report

    Testo VBA....

    Option Compare Database

    Private Sub IntestazioneGruppo0_Format(Cancel As Integer, FormatCount As Integer)
    lCountCom = 0
    End Sub

    Private Sub PièDiPaginaGruppo0_Format(Cancel As Integer, FormatCount As Integer)
    lCountCom = lCountCom + 1
    End Sub

    Private Sub PièDiPaginaGruppo1_Format(Cancel As Integer, FormatCount As Integer)
    mediaoraria = somma(ORE) / lCountCom
    End Sub

    Private Sub SezioneIntestazionePagina_Format(Cancel As Integer, FormatCount As Integer)
    Dim lCountCom As Long
    End Sub

    Private Sub Testo21_GotFocus()

    End Sub
  • Re: Conteggio del numero di raggruppamenti nei report

    Temo non sarà facile darti una mano in quanto mi pare che tu non conosca il VBa (e come operare con esso).
    Comunque proviamo a vedere se ci arriviamo :
    
    Option Compare Database
    Option Explicit
    Dim lCountCom As Long
    
    Private Sub IntestazioneGruppo0_Format(Cancel As Integer, FormatCount As Integer)
    lCountCom = 0
    End Sub
    
    Private Sub PièDiPaginaGruppo0_Format(Cancel As Integer, FormatCount As Integer)
    lCountCom = lCountCom + 1
    End Sub
    
    Private Sub PièDiPaginaGruppo1_Format(Cancel As Integer, FormatCount As Integer)
    Me.lCount = lCountCom
    End Sub
    
    La variabile lCountCom deve essere dichiarata a livello di report (quindi NON dentro le routine)
    Occorre anche aggiungere la clausola Option Explicit, serve per controllare che le variabili utilizzate siano state
    preventivamente dichiarate.
    Suppongo che gruppo0 sia il raggruppamento PiccolaVTR e il gruppo1 sia il raggruppamento Commessa
    Il campo Me.lCount è un campo che devi inserire nel Pièpagina Commessa (Gruppo1). In fase di test puoi anche lasciare il campo visibile poi se vuoi puoi renderlo invisibile.
    La mediaoraria la calcoli direttamente nel campo del raggruppamento Piccola VTR (Gruppo0) inserendo la formula nel campo (come già hai fatto : = Somma([Ore]) / lCount

    Si tratta di indicazioni non provate quindi potrebbero esserci dei bachi.

    PS - quando scrivi del codice nel Forum devi inserirlo tra i TAG Code (pulsante </>) per rendere il tutto più leggibile.
  • Re: Conteggio del numero di raggruppamenti nei report

    Liberamente tratto da me stesso masterdrive.it/microsoft-access-79/conteggio-ricorrenze-intestazione-gruppo-report-access-102918/#post384154
    Metti nell'intestazione di gruppo Commessa una textbox con origine dati =1. Imposta la proprietà "Somma parziale = Su tutto" (è nella stessa scheda dell'origine dati). Ovviamente solo l'ultima intestazione di gruppo riporterà il numero giusto, quindi nascondi quella textbox (prima lasciala visibile, per verificare come si comporta), metti nel pié di pagina Piccola VTR un'altra textbox non associata con origine dati la textbox di prima, quella che contiene il conteggio progressivo, ad esempio per visualizzare come viene calcolata la media. Nel calcolo della media fai riferimento a quest'ultima textbox.
    Spero di non essere stato più confusionario del solito quando si tratta di report.
  • Re: Conteggio del numero di raggruppamenti nei report

    Forse se posti un esempio sarà più facile darti un aiuto.
Devi accedere o registrarti per scrivere nel forum
10 risposte