NOTA DI MERITO

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 :

  1. entrata
    2.pranzo
  2. 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:

  1. 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 :wink:

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 :smiley:

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