Newsgroup: it.comp.appl.access
Titolo: Si possono confrontare le righe in un report?

Ho un report che mi visualizza le timbrature del personale con ragruppamento
per persona (cognome) e per data.
Capita spesso che un impiegato ha 2, 3 o anche 4 record in una stessa
giornata (entra e esce 2 o 3 volte dalla ditta).
Nel report ho la necessità di andare a sommare le ore di presenza di alcune
persone e per fare questo devo confrontare l'ora di entrata e l'ora di
uscita di alcune righe (quelle con timbratice= A1).
I dati a disposizione sono come in questo esempio:
ID      Data          Impiegato      timbratice      oraentrata
orauscita  tempo
001    07/07/03      Pippo              A1                08.25        12.35
4.10
002    07/07/03      Pippo              A1                13.25        14.33
1.08
003    07/07/03      Pippo              A2                14.00        14.33
0.33
004    07/07/03      Pippo              A2                15.55        18.30
2.35
005    07/07/03      Pluto               A1                 08.25
12.35      4.10
Io dovrei confrontare l'ora di entrata e di uscita della prima riga con
quelle della seconda (cioè solo le righe con timbratice = A1)
Lo posso fare in un report?
Dovrei mettere questo valore nell'intesazione del ragruppamento per
Impiegato in modo da sapere il totale di presenza di quell'impiegato
registrate su quella timbratice.
Ho provato con una formula del tipo:
   " =IIf([timbratice]="A1";(Somma([tempo])))"
però così in pratica controlla il valore del campo timbratice del primo
record di quel gruppo, se il valore è A1 allora mi fa la somma di tempo di
tutte le righe di quel gruppetto. Se invece nel primo record non c'è A1 non
mi somma niente.
Altra cosa: se vado a calcolare il totale di presneza di quella persona
sommando le ore registrate da tutte le timbratrici dovrei confrontare ora di
entrata e di uscita di ogni riga. Per esempio dovrei andare a confrontare le
ore di entrata e uscita di riga 2 e 3 (ci sono 33 minuti sulla timbratrice
A2 contemporanei alla timbratrice A1) e visto che sono contemporanei non
faglieli sommare.
Però dalle varie prove che ho fatto non posso dirgli qualcosa del tipo
  "
=IIf([oraentrataRiga1]<>[oraentratariga2]an[orauscitariga1]<>[orauscitariga2
]";(Somma([tempo])))"
Spero di essere stato chiaro  (ma ne dubito)..
ciao e grazie
Luca

 faglieli sommare.
ALT!
A parte che ti consiglio di separare i quesiti in due thread distinti, il
problema della normalizzazione delle timbrature è molto complicato, almeno
per la mia esperienza, e sicuramente non lo gestisci con una query o con un
report.
In questi casi ci vuole prima una bella passata di codice che fa tutti i
test e prevede tutti i casi anomali e li risolve di conseguenza!!!
Antonio

 test e prevede tutti i casi anomali e li risolve di conseguenza!!!
All'inizio speravo di risolverla più facilmente e invece si è rivelato un
bel casino.
Posso fare una passata di codice solo che diventerebbe un po lunghetto
perchè ci sono mille (che numero!! :-))
dicevo ...ci sono mille record e fare tutti i controlli richiede tempo.
Per adesso potresti solo dirmi se si può fare il confronto che dicevo? cioè
=IIf([oraentrataRiga1]<>[oraentratariga2]an[orauscitariga1]<>[orauscitariga2
]";(Somma([tempo])))"
Hai esperienza anche sulle TimeCard?
ciao e grazie ancora
Luca

 Hai esperienza anche sulle TimeCard?
Ho esperienza su controllo anomalie di timbratura...
Antonio

 Non puoi confrontare record diversi nella stessa espressione
Proprio quello che temevo.
ciao
Luca

 Proprio quello che temevo.
Scrivendo codice però lo puoi fare...
Antonio

 Non credere che ci voglia poi cosě tanto tempo...
Proverň, appena scrivo tutto il codice provo.
ciao
Luca