Newsgroup: it.comp.appl.access
Titolo: Urgente bisogno d'aiuto con operazioni su date!!!!!





Da una timbratrice di cartellini importo un file di testo con 
tre campi:


Id_persona  giorno  ora,min


Ho imporato il file nella tabella di access ma il mio problema 
è calcolare la differenza tra le timbrate in uscita e quelle in entrata (non 
esiste alcun flag che le differenzi!!)


Io non posso sapere se le timbrate giornaliere sono 2, 4 o 6 ma devo 
calcolare le differenze giornaliere di ore/min tra quelle pari e quelle 
dispari


Ringrazio anticipatamente chi mi darà una mano!



 wrote in 
  message 000801c033a6$969af7e0$0100000a@utente...



Come gestisci l'importazione del file di input? Mi 
spiego, se parti da un file di testo con la struttura: <ID>, 
<Giorno>, <Ora> potresti crearti una tabella formata nel seguente 
modo: <ID>, <Giorno>, <Ora1>, <Ora2>. Cioè ogni due 
record in input dello stesso <ID> e stesso <Giorno>, metti 
insieme  i due campi <Ora>. Dopodichè dovrebbe essere facile 
calcolare la differenza (Istruzione del tipo: SELECT <ID>, <Giorno>, 
Sum(<Ora2> - <Ora1>) From <NomeTabella> Group By <ID>, 
<Giorno>).


 


-- 
Se i costruttori costruissero edifici 
nello stesso modo in cui i
programmatori hanno scritto programmi, un solo 
picchio
basterebbe per distruggere il mondo intero.


 


(Seconda legge di 
Weinberg)



vediamo che si puň fare ma prometti di non postare piů in html
puoi fare un copiaincolla di qualche riga di dati?
--
non studio non lavoro non guardo la tv
non vado al cinema non faccio sport
----------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access

devo calcolare le differenze giornaliere di ore/min tra quelle pari e quelle dispari
E se uno salta una timbratura?

E se uno salta una timbratura?
je segamo le mani a quer boia!  :-)


 ha scritto 
  nel messaggio 
news:000801c033a6$969af7e0$0100000a@utente
...


Da una timbratrice di cartellini importo un file di testo 
  con tre campi:


Id_persona  giorno  ora,min


Ho imporato il file nella tabella di access ma il mio 
  problema è calcolare la differenza tra le timbrate in uscita e quelle in 
  entrata (non esiste alcun flag che le differenzi!!)


Io non posso sapere se le timbrate giornaliere sono 2, 4 o 6 ma devo 
  calcolare le differenze giornaliere di ore/min tra quelle pari e quelle 
  dispari


Ringrazio anticipatamente chi mi darà una mano!


Il tuo e' un problema piu' di rilevazione presenze 
che di operazioni su date.


Questo fa ricadere la tua domanda nel mio campo 
d'azione ;-)


 


Chi sviluppa SW di questo tipo adotta due 
sistemi:


1.    Filtri le timbrature del 
dipendente per il giorno che ti interessa, le ordini secondo l'orario di 
timbratura, le carichi in una matrice (tipo Ore(i)) e le cicli con un for to 
next step 2 sottraendo il corrente dal successivo.


2.    Stabilisci a priori le fasce 
orarie di timbratura e stabilisci se le timbrate siano d'entrata o d'uscita in 
base alla fascia, gli assegni un flag E/U e poi ti viene piu' facile 
elaborarle


 


Il vantaggio del primo metodo e' l'assoluta 
elasticita' del calcolo ma ha lo smisurato svantaggio che se qualcuno si 
dimentica una timbrata (cosa incredibilmente frequente) ti sballa completamente 
tutto il calcolo.


Il secondo metodo e' un po' piu' rigido ma se 
dimenticano di timbrare ti sa ricostruire una timbrata virtuale facendo comunque 
un calcolo attendibile.


In tutto questo non capisco come mai non hai un 
flag che differenzi le timbrate, il 99,99% dei terminali in commercio per la 
rilevazione presenze ti danno il loro bravo flag E/U.


Infine, quando fai i calcoli, non usare il formato 
data ora, manipola da codice ore e minuti se vuoi che tutto funzioni a 
dovere.


 


Ciao, Sib




Salta un giro e prende una carta dagli "imprevisti"...
Ciao.

 
  wrote in message 
8s6r19$65g$3...@pegasus.tiscalinet.it
...



Grazie per i consigli Sib, adotterò il primo metodo in 
  quanto mi è impossibile stabilire range precisi di E/U (orari 
  flessibil)


L'alternativa acui stavo pensando è quella di affiancare una query con un 
  campo [Num_Timbrature] che inserisca il num progressivo di timbrate per ogni 
  Dip in ciascun giorno.


Successivamente potrei creare una query a campi incociati mettendo tale 
  campo come intestazione di colonna.


Secondo te può funzionare ??


Ancora grazie e 
Ciao



Ciao Sib,
sono contento di trovare qualcuno che lavori  nella rilevazione presenze.
Ora che ho smesso dopo tredici anni di sviluppo sw in questo campo (di cui 7
con Clipper e 6 con Access sviluppando un programma di 5 mega che ora conta
circa 70 istallazioni) mi viene quasi tristezza a parlarne. Ricordo quando
mi trovai a combattere con 1.000.000 (un milione) di timbrature di storico
di un cliente che passava dal Clipper ad Access e devo dire che non fu molto
piacevole....
Per quanto riguarda Carlo penso che abbia avuto la disgraziata sfortuna di
trovarsi di fronte a qualche vecchio Solari che non gestiva l'ingresso e
l'uscita. Ma stiamo parlando di terminali del 1992 o giù di lì.
Io penso comunque che un buon programma di R.P. debba avere alla base una
funzione che segnali le anomalie prima di poter effettuare calcoli che
vengano poi male interpretati. Nel caso di assenza di flag I/U diventa
persino difficile gestire le anomalie, ma non dobbiamo dimenticare che la
problematica va ad impattare su altri versanti (sndacati, ufficio del
personale, dipendenti che si mettono "per traverso", ecc...) per cui risulta
difficile dire ad un dipendente che non possiamo correttamente calcolare il
suo orario di presenza solo perché l'Amministrazione è dotata di sistemi
antidiluviani.
In generale io dico che una giornata con numero dispari di timbrature non va
calcolata: i dati vanno semplicemente accantonati e segnalati
successivamente come anomalia.
A ciò fa eccezione la casisitica relativa ai turnisti notturni: in questo
caso siamo veramente nei guai, in quanto risulta pressoché impossibile
distinguere tra giornata anomala e giornata di turnista notturno;caso tipico
è quello dell'uscita notturna dal servizio con successiva giornata di
riposo: in tal caso, pur con una sola timbratura, la giornata è
perfettamente regolare.
Una giornata con numero pari di timbrature, va, secondo me, calcolata "as is
it", ma segnalando anomalia in due casi:
1) fuori fascia di ingresso uscita (sono pienamente d'accordo cn te)
2) eccessivo numero di ore lavorate: questo secondo test, raramente adottato
nei sistemi di R.P., aiuta molto a distinguere casi in cui il dipendente
abbia dimenticato di timbrare. Ma siamo sempre nel campo dell'opinabile.
Forse il miglior rimedio al problema è quello di acquistare una nuova serie
di TRP oppure dotarsi di un sistema esperto...
Scherzo, ma non tanto. Sono infatti sempre più convinto che la Rilevazione
Presenze è una problematica che va affrontata con gli strumenti
dell'Intelligenza Artificiale (in particolare sto pensando agli algoritmi
genetici), piuttosto che a colpi di profili orari e cicli lavorativi.
Mi piacerebbe molto conoscere la tua opinione al riguardo, se la cosa non ti
crea disturbo.
Be' ora bisogna che me la smetta se no divento patetico.
Ti auguro buon lavoro
Ciao
Antonio Misericordia
antonio.mi...@libero.it
-- 
Posted from 
smtp1.libero.it
 [193.70.192.51] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

><HTML><HEAD>
nooo Sib... tu quoque...


 Antonio Misericordia
Ciao e chissa' che sia stato proprio un addio alla RP o solo un arrivederci.
Sib

 nooo Sib... tu quoque...
Distrazione fu'!
Non m'accorsi dell'errore di chi chiedeva e risposi senza correggere.
Sib
