Newsgroup: it.comp.appl.access
Titolo: [?] Report: conteggio dei piè di gruppo.

Ciao a tutti!
Confido nella vostra esperienza per un problemino:
ho un recordset che contiene un record per ogni dipendente e per ogni
entrata/uscita. Da questo creo un report che mi calcola quante ore sono state
fatte al giorno ed alla settimana creando dei raggrupamenti per giorno e per
settimana dell'entrata.
Allo stesso tempo calcolo per giorno quante ore sono state fatte in meno
rispetto alle 8 ore canoniche (sommando le varie differenze tra entrata/uscita
per giorno e sottraendole a 8).
E fin qua tutto bene.
Il problema è che vorrei calcolare quante ore sono state fatte in meno rispetto
alla settimana. Chiaramente ho già fatto la somma delle differenze tra
entrata/uscita per settimana e le ho sottratte a 40, ma il problema è proprio
qui:
la settimana dal 23 aprile al 27 aprile ha in mezzo una festività (25.04.2001),
quindi le ore 'lavorabili' per quella settimana sono 32 anziché 40. Per questo
io vorrei sapere quanti 'Piè di Gruppo' ha il ragruppamento per giorno, in
questo modo potrei dire qualcosa del tipo:
TotaleOrePerSettimana = 8 * Conteggio([PièDiGruppo0])
il problema che quello che c'è scritto nella precedente riga non mi funziona:
quando apro il report mi viene chiesto di inserire il valore per [PièDiGruppo0].
Cosa ho sbagliato? O meglio come posso fare per risolvere il mio problema?
Ecco sinteticamente la struttura del recordset e del report:
Recordset:
 Nome, Entrata, Uscita
 Stefano, 21.05.2001 08:00, 21.05.2001 12:00
 Stefano, 21.05.2001 14:00, 21.05.2001 18:00
 Igor, 21.05.2001 08:00, 21.05.2001 10:00
 Igor, 21.05.2001 11:00, 21.05.2001 12:00
 Igor, 21.05.2001 14:00, 21.05.2001 18:00
 ecc.
Report:
 Stefano
 -----------------------------------------------------
 23.04.2001 08:56 - 23.04.2001 12:04
 23.04.2001 14:06 - 23.04.2001 19.01
 Totale giorno: 08:02 ore / Differenza a 8: 00:02
 24.04.2001 08:51 - 24.04.2001 11:56
 24.04.2001 14:14 - 24.04.2001 16:42
 Totale giorno: 05:31 ore / Differenza a 8: -02:29
 26.04.2001 08:39 - 26.04.2001 13:01
 26.04.2001 14:14 - 26.04.2001 18:03
 Totale giorno: 08:09 ore / Differenza a 8: 00:09
 27.04.2001 08:00 - 27.04.2001 16:00
 Totale giorno: 08:00 ore / Differenza a 8: 00:00
 --------------------------------------------------------
 Totale settimana: 21:42 / Differenza a 40: -18:18
Però non è vero che quella settimana ho fatto 18 ore in meno!! Ne ho fatte 10 in
meno, perché il 25 era festa nazionale e quindi per quella settimana sono solo
32 ore da tener conto per la differenza!
Avete un'idea?
Grazie!
--
Esteban
Hosted by 
www.seber.it

 wrote in message
news:0_9O6.21732$Ql3.9...@news.infostrada.it...

[Cut]
Ok, ho trovato una soluzione. La posto per chi avesse lo stesso problema o
magari per chi è interessato a trovare un 'buco' nella mia soluzione:
ho creato una funzione
Function Contatore (Stato As Variant) As Integer
   Static Contatore1 As Integer, Contatore2 As Integer
   If Stato Then
      Contatore1 = Contatore1 + 1
      Contatore2 = Contatore1
      Contatore = Contatore1
   Else
      Contatore1 = 0
      Contatore = Contatore2
   End If
End Function
In questo modo, nell'evento SuFormattazione del PièPaginaGruppo del
ragruppamento per giorno metto: =Contatore(Vero)
Mentre in una casella di testo metto come Origine controllo: =Contatore(Falso)
In questo modo la funzione Contatore() incrementa una variabile statica ogni
volta che viene chiamata con il parametro Vero e restituisce il valore a cui è
arrivato il contatore (= quante volte è stata chiamata la funzione con il
parametro Vero), mentre chiamando la funzione Contatore() con il parametro
Falso, mi restituisce l'ultimo valore a cui è arrivato il contatore senza
incrementarlo ed azzerando il conteggio.
Che ne pensate?
Ciao!
Esteban
Hosted by 
www.seber.it