Per tutti quelli che passano da questa sezione del forum…
C’ un signore , gentile e molto affidabile
che vi aiuta a risolvere ogni tipo di problematica, un personaggio veramente preparato. Ed invidiabile quanto la sua capacit di risolvere ogni qualsiasi problematica ha il pieno successo ogni volta.
GRAZIE ANTONIO !
Ciao Massimo
Approfitto al volo visto che sei sveglio…
Sto facendo un programma per le timbrature dei dipendenti, cosicche ti chiedo come faccio a calcore il totale delle ore tra :
- entrata
2.pranzo - fine pausa
4 fine turno
Se puoi darmi una mano saro indebito con te
Ciao Alan,
se hai tutte le timbrature in perfetta sequenza, basta che alterni la somma
ad esempio (pseudo codice)
dim t as double
dim t0 as double
per tutte le timbrature
if timbrature entrata
t0=timbratura.orario.totalSeconds
altrimenti
t=t+(timbratura.orario.totalSeconds - t0)
end if
end
t rappresenta i secondi di lavoro
Il problema (grosso) come gestire le doppie timbrature e le mancate timbrature.
Un altro metodo trasformare le timbrature da sequenza a record accoppiati
In questo caso se la timbratura in entrata crei un nuovo record e registri l’orario in entrata,
se la timbratura in uscita aggiorni l’ultima timbratura inserendo l’orario d’uscita.
Alla fine gli orari effettivi sono le differenze tra uscita e entrata e puoi crearti pi facilmente un file di anomalie (per i dati fuori sequenza)
[quote=281097:@Massimiliano Chiodi]Per tutti quelli che passano da questa sezione del forum…
C’è un signore , gentile e molto affidabile
che vi aiuta a risolvere ogni tipo di problematica, è un personaggio veramente preparato. Ed è invidiabile quanto la sua capacità di risolvere ogni qualsiasi problematica ha il pieno successo ogni volta.
GRAZIE ANTONIO ![/quote]
Mi unisco anch’io ai ringraziamenti, Antonio mi ha tirato fuori dai guai ben più di una volta !
Ciao Antonio
Pensavo fossi in vacanza per questo non ho scritto a te, e mi unisco ai ringraziamenti di Massimiliano.
Quando registro la ora della timbratura sarebbe cosi:
dim d as new data
rec.column(“data”) = d.longdate
rec.column(“chechin”)= d.longtime
etc etc
adesso nella celle della listbox ho i seguenti campi:
(giovedi, 2 settembre 2016) ( 08:30:56) (12:00:00 ) ( 13:00:00 ) (17:00:00 ) (totale) le parentesi sono le celle della listbox
adesso arrivano le domande:
- come faccio a fare delle operazioni su dei valori come quelli della ora (08:30:00) bisogna formattare il campo o ce una specie di parsedate come per le date?
le timbrature sono tutte in sequenza ed i casi sono due:
1 caso) timbratura entrata e timbratura uscita
2 caso) inizio pausa fine pausa uscita
potresti accennarmi il codice perche e’ la ultima (piu difficile) parte che mi manca per finire il programma.
Grazie Antonio
Ringrazio tutti per i ringraziamenti
Antonio hai alcuni suggerimenti sul post che ti ho mandato?
Alan, non registrare le date in campi diversi: non confondere la visualizzazione con la registrazione.
registra la data in ogni caso come sqldate (o per l’orario sqldatetime)
per cui nel tuo caso posto che la data ti server per identificare il giorno (ma potrebbe non servirti)
alla registrazione:
dim d as new data
rec.column(“data”)=d.sqlDate
rec.column(“checkin”)=d.sqlDatetime
etc…
alla lettura nella listbox scrivi la data come hai indicato dove in questo caso
dim dCheckIn as new date
dCheckIn.sqlDateTime=rs.field(“checkin”).stringValue // o dCheckIn =rs.field(“checkin”).dateValue
a questo punto fai le differenze come ti ho indicato prima ovvero (scritto in altro modo visto che per te esistono solo i 4 eventi)
dim t as double=dCheckPausa.totalSeconds-dCheckIn.totalSeconds+ dCheckOut.totalSeconds-d.CheckPausaFine.totalSeconds
dim d as double=new date
d.totalSeconds=t
listbox1.cell(row,5)=d.longTime
Nota che memorizzare la data completa dell’evento oltre a semplificarti i conti ti permette anche di coprire casi in cui il checkout sia oltre la mezzanotte.
Ciao Antonio
Grazie innanzitutto per il tuo tempo , e poi grazie per la soluzione perche funziona perfettamente.
Grazie
Bella iniziativa questa,
quel Signore gentile e molto affidabile
ha aiutato più volte anche me.
Grazie Antonio
antonio santo subito … senza di lui non avrei mai avuto il coraggio di passare a xojo
Sant Antonio da Xojo
Per fortuna che esistono persone cos !
Grazie Antonio
Grazie a tutti
Non potete immaginare quanto possa far piacere leggere un thread come questo
Mi associo anche io ai ringraziamenti per Antonio. Se molti sviluppatori italiani usano e continueranno ad usare Xojo per merito suo.
Concordo con tutti voi! Antonio un punto di riferimento per tutti noi, e l’appellativo “S.Antonio da Xojo” il pi simpatico e veritiero che ci sia!!!
Secondo me azzeccato NEDI !!! propongo anche di instaurare la data del Santo Patrono …
Diciamo in concomitanza con l’usicita della versione di XOJO che compiler anche per ANDROID…
Grazie a tutti