Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Conteggio ricorrenze intestazione di gruppo report access

  1. #1
    gas1966 non è in linea Scolaretto
    Buongiorno,

    In un report delle fatture emesse ho creato un'intestazione di gruppo con la data fattura cosicché in un dato giorno vi possono essere molte fatture ma, ovviamente, una sola data.
    Analizando un periodo avrò tante intestazioni di gruppo quante sono le date e nel corpo un numero uguale o maggiore di fatture emesse.
    Esempio: Periodo dal 01/04 al 10/04/2021
    Ottengo sei date di intestazione di gruppo cioè: 01/04 + 02/04 + 06/04 + 07/04 + 08/04 + 09/04 cioè un totale di N° 6 date considerato che nei giorni mancanti non abbiamo emesso nessuna fattura.
    Come si possono contare le ricorrenze di una intestazione di gruppo di un report di Access (nel caso di specie N° 6)?
    Devo per forza fare una query con raggruppamento per data, cosa che vorrei evitare?
    Grazie e buona giornata.

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Puoi mettere un Contatore come Variabile nel Report e, su Format della Sezione lo vai ad incrementare.
    Poi puoi mettere una Funzione nel Report che puoi chiamare [RecuperaNumeroGiorni] che leggendo la variabile valorizza il controllo nel report come Origine Controllo.
    =RecuperaNumeroGiorni()
    
    ℹ️ Leggi di più su @Alex ...

  3. #3
    Quote Originariamente inviato da gas1966 Visualizza il messaggio
    Come si possono contare le ricorrenze di una intestazione di gruppo di un report di Access (nel caso di specie N° 6)?
    Metti nell'intestazione di gruppo 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 report un'altra textbox non associata con origine dati la textbox di prima, quella che contiene il conteggio progressivo.
    Ultima modifica di Phil_cattivocarattere; 13-04-2021 13:47  Motivo: textbox, non testbox. Che texta vuota.

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Quote Originariamente inviato da Phil_cattivocarattere Visualizza il messaggio
    Metti nell'intestazione di gruppo una testbox con origine dati =1. Imposta la proprietà "Somma parziale = Su tutto" (è nella stessa scheda dell'orgine 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 report un'altra textbox non associata con origine dati la textbox di prima, quella che contiene il conteggio progressivo.
    Ottimo non ci avevo pensato.
    ℹ️ Leggi di più su @Alex ...

  5. #5
    OPS, scusa... non avevo visto la tua risposta, @Alex. La lascio per motivare il mio dissenso iniziale, anche se in questo momento non ce ne sarebbe più bisogno.
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    Puoi mettere un Contatore come Variabile nel Report e, su Format della Sezione lo vai ad incrementare....
    Udite udite: non sono d'accordo con @Alex. Questo lo tengo a testimonianza del fatto che non mi paga per essere sempre dalla sua parte.
    Non sono d'accordo nel senso che come l'ho proposta io è (a mio avviso, ovviamente) molto più semplice: zero codice e presenta meno rischi. I report sono terribili (sembra che lo scriva ad @Alex, in realtà lo scrivo "per tutti") e ti trovi un Format ripetuto senza accorgertene. Sì, c'è il sistema per considerarlo una volta sola, quando FormatCount = 1, ma se posso evitare questo lavoro di codice, lasciando fare tutto ad Access con i "sistemi suoi" (sperando che non vadano a farsi friggere con le somme nei sottoreport da riportare sui report principali) dormo sonni tranquilli.
    In una situazione del genere, tanto per fare un esempio, andando di codice (senza discriminare con il FormatCount) ho 164. Se faccio la somma solo quando FormatCount = 1 ottengo correttamente 161.
    Con la casella di testo non associata e somma progressiva 161, nessun codice.

  6. #6
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Infatti... come vedi ti ho dato ragione con 28 caratteri punto incluso ;-)
    ℹ️ Leggi di più su @Alex ...

  7. #7
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    In ogni caso, siccome il metodo del codice serve più di quanto si possa pensare... per ovviare alle ripetizioni, che ovviamente nei report ci sono, ma basta saperlo,... si memorizza la Chiave di raggruppamento in una variabile a livello di Report o Static a livello di Evento e si incrementa solo quando Cambia.
    Lo dico a tutti ovviamente
    ℹ️ Leggi di più su @Alex ...

  8. #8
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    ... si memorizza la Chiave di raggruppamento in una variabile a livello di Report o Static a livello di Evento e si incrementa solo quando Cambia.
    Lo dico a tutti ovviamente
    Me la sono cercata (19 caratteri, spazi compresi, umiltà massima)

  9. #9
    gas1966 non è in linea Scolaretto
    Perfetto!
    Grazie 1000

  10. #10
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    il metodo del codice serve più di quanto si possa pensare... per ovviare alle ripetizioni, che ovviamente nei report ci sono, ma basta saperlo,... si memorizza la Chiave di raggruppamento in una variabile a livello di Report o Static a livello di Evento e si incrementa solo quando Cambia.
    Eccolo, rilancio. Ho provato a metterlo in pratica ma mi trovo in difficoltà ad ottenere il risultato giusto, mi scontro con il fatto che fa un "secondo giro" di tutto quando, una volta visualizzata (in anteprima! ) la prima pagina del report decido di spostarmi sull'ultima.
    Il piédipaginareport contiene la classica somma degli importi (si tratta di moltissimi pagamenti, l'intestazione del gruppo è la data, per simulare una situazione corposa) e in quella stessa sezione ho una casella di testo non associata in cui scrivo quello che poi si vede dal codice.
    Option Compare Database
    Option Explicit

    Private privData1 As Date, privConta As Long, privstatConta As Long
    ' per ovviare alle ripetizioni si memorizza la Chiave di raggruppamento
    ' in una variabile a livello di Report
    ' o Static a livello di Evento
    ' e si incrementa solo quando Cambia.

    Private Sub IntestazioneGruppo0_Format(Cancel As Integer, FormatCount As Integer)

    Static statData1 As Date
    Static statConta As Long

    If Not Me.Data1.Value = statData1 Then
    statData1 = Me.Data1.Value
    statConta = statConta + 1
    End If

    If Not Me.Data1.Value = privData1 Then
    privData1 = Me.Data1.Value
    privConta = privConta + 1
    privstatConta = privConta 'serve per leggerlo da un altro evento
    End If

    End Sub

    Private Sub PièDiPaginaReport_Format(Cancel As Integer, FormatCount As Integer)
    Dim strDebug As String

    strDebug = "FormatCount = " & FormatCount & "; PrivStat = " & privstatConta & "; Priv = " & privConta

    Me.Testo18.Value = strDebug

    Debug.Print strDebug

    End Sub

    Ho provato sia con le variabili statiche sia con variabili a livello di modulo.
    Apertura del report, si ferma sulla prima pagina. Nella finestra immediata c'è
    FormatCount = 1; PrivStat = 161; Priv = 161
    
    Giusto: le date sono 161.

    Premo il pulsante per andare all'ultima pagina, lavora lavora lavora, arriva in fondo.
    Nella finestra immediata c'è
    FormatCount = 1; PrivStat = 322; Priv = 322
    
    Cosa ho dimenticato per non fargli considerare il "secondo giro"? Devo azzerare le variabili dopo il loro uso nel piédipaginareport_format o già nel format dell'intestazione di gruppo devo verificare un'ulteriore condizione?
    (oh... il codice è proprio da test)
    Ultima modifica di Phil_cattivocarattere; 14-04-2021 10:59 

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Risposte: 3
    Ultimo Post: 06-04-2012, 09:55
  2. Access: Somma di gruppo in un report tramite VBA
    Da xman nel forum Microsoft Access
    Risposte: 2
    Ultimo Post: 29-12-2009, 13:57
  3. Risposte: 3
    Ultimo Post: 09-08-2007, 15:17
  4. [Access Xp - Report] Conteggio condizionato
    Da Recordset nel forum Microsoft Access
    Risposte: 8
    Ultimo Post: 09-11-2005, 13:57
  5. report trova ricorrenze
    Da roby_marc nel forum Visual Basic 6
    Risposte: 3
    Ultimo Post: 15-06-2004, 17:41