Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    [vb6]Continuita' operativa

    salve a tutti,

    io avrei necessita' di capire come trovare la continuita' operativa di un mio operaio, (per esempio).
    per calcolarla prendo il primo record , prendo l'ultimo record e calcole le ore che passano dal primo all'ultimo.

    da li ho il numero di ore lavorate nella giornata.
    poi controllo tutto il mese avendo cosi il numero di ore giorno per giorno lavorate.

    successivamente faccio la media dei valori e trovo la continuita' media lavorata mensile.

    un problema che mi si verifica e' che un turno puo' essere dalle 20 alle 03 di notte del giorno successivo!!!

    ok...a parole e' facilissimo, e a mano complicatissimo, vorrei percio' creare un programmino che lo faccia per me con visual basic 6.

    come posso farlo? vi prego aiutatemi!!!


    • NUM_ORDINE DTA_RIL TME_RIL MTR_OPERAIO
      22120021117 14-gen-12 1614 C0160
      22120021118 14-gen-12 1618 C0160
      22120021119 14-gen-12 1631 C0160
      22120022688 14-gen-12 1647 C0160
      22120029349 17-gen-12 1301 C0005
      22120029350 17-gen-12 1307 C0005
      22120029351 17-gen-12 1320 C0005
      22120029352 17-gen-12 1334 C0005
      22120026255 19-gen-12 1101 C0242
      22120026256 19-gen-12 1105 C0242
      22120025883 16-gen-12 1120 C0310
      22120025884 16-gen-12 1125 C0310
      22120025885 16-gen-12 1128 C0310
      22120025686 16-gen-12 1656 B0126
      22120025687 16-gen-12 1714 B0126
      22120027590 16-gen-12 1718 B0126
      22120025296 16-gen-12 1048 C0001
      22120025297 16-gen-12 1052 C0001
      22120025298 16-gen-12 1055 C0001
      22120025299 16-gen-12 1058 C0001
      22120025300 16-gen-12 1109 C0001
      22120025921 16-gen-12 1116 C0030
      22120025923 16-gen-12 1120 C0030
      22120025924 16-gen-12 1127 C0030

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Comincia con spiegare il contenuto di ogni record di quel file ...

    Tu hai chiaro il tuo problema e il contesto in cui operi, chi ti legge la prima volta no.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3

    ok

    NUM_ORDINE <-- il numero degli ordini (e' un codice seriale)
    dTA_RIL <--la data di registrazione dell'ordine
    TME_RIL <-- l'ora di registrazione dell'ordine
    MTR_OPERAIO <-- la matricola di chi effettua l'ordine.

    fatto a mano per i dati che vedete verrebbe:
    ----------------------------
    MAtricola : C0160 - Continuita' operativa : 33 minuti
    (ora prima rilevazione : 1614 - ora ultima rilevazione : 1647)
    ------------------------
    MAtricola : C0005 - Continuita' operativa : 33 minuti
    (ora prima rilevazione : 1301 - ora ultima rilevazione : 1334)
    ------------------------
    MAtricola : C0242 - Continuita' operativa : 4 minuti
    (ora prima rilevazione : 1101 - ora ultima rilevazione : 1105)
    ------------------------

    un problema si pone quando l'orario e' cosi :
    22120021117 14-gen-12 2014 C0160
    22120021118 15-gen-12 0218 C0160

    dove a mano verrebbe:

    ------------------------
    MAtricola : C0160 - Continuita' operativa : 6 ore e 4 minuti minuti
    (ora prima rilevazione : 2014 - ora ultima rilevazione : 0218)
    ------------------------

    ma con vb6?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: ok

    Originariamente inviato da nikeddy
    ma con vb6?
    Usa la DateDiff. Nell'ultimo caso

    mm=datediff("n", "14-gen-12 20.14", "15-gen-12 02.18")

    ottieni 364 (in minuti le 6 ore e 4 minuti)

    http://msdn.microsoft.com/en-us/library/aa262712(v=vs.60).aspx
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    grande, ma come faccio a dirgli l'inizio e la fine?
    e come faccio a mettere la data cosi ?

    e .. andando ad analizzare il database, ho scoperto che il campo : TME_RIL
    e' in formato testo, come posso convertirlo ? oppure posso lasciarlo cosi?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da nikeddy
    grande, ma come faccio a dirgli l'inizio e la fine?
    Non hai detto di che tipo di DB si tratta ... Non sai leggere i record che ti interessa ottenere?

    e come faccio a mettere la data cosi ?
    La data devi inserirla in una stringa ...

    e .. andando ad analizzare il database, ho scoperto che il campo : TME_RIL
    e' in formato testo, come posso convertirlo ? oppure posso lasciarlo cosi?
    Sta tutto in una stringa ... devi solo inserire il . tra le ore e i minuti
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    con excel so farlo ma con vb6..

    • data matricola orario1 orario2 1 Prima stringa 1 Seconda stringa Risultato 1 2 Prima stringa Seconda stringa Risultato 2 Differenza
      03-gen-11 B0031 1748 2130 17 48 17:48 21 30 21:30 3:42
      03-gen-11 B0048 1819 2145 18 19 18:19 21 45 21:45 3:26
      03-gen-11 C0011 1747 2116 17 47 17:47 21 16 21:16 3:29
      03-gen-11 C0014 1755 2133 17 55 17:55 21 33 21:33 3:38

  8. #8
    il db e' in access

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Beh, mi pare di capire che il problema non è solo la differenza tra i due valori, ma anche l'accesso ai dati del DB e, in generale, la programmazione VB6.

    Quindi, se non sai come si fa una connessione ad un DB Access da VB6, né come si cercano e leggono i singoli dati, la richiesta che dovevi fare era un'altra ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    ok ti allego quello che sono riuscito a fare:
    allora io ho fatto cosi :

    Set grsCasaPro = New ADODB.Recordset
    gsSQL = "SELECT MIN(TME_RIL) AS primo, MAX(TME_RIL) AS ultimo FROM " & scerca & " WHERE DTA_RIL between #" & txt_dal.Text & "# AND #" & txt_al.Text & "# AND MTR_OPERAIO
    LIKE """ & "%" & smatricola & "%"""
    grsCasaPro.Open gsSQL, gCnDatabase

    Dim nuovastringa3 As String
    Dim nuovastringa1 As String
    Dim nuovastringa2 As String
    nuovastringa1 = Left$(grsCasaPro!ultimo, 2)
    nuovastringa2 = Right$(grsCasaPro!ultimo, 2)
    nuovastringa3 = nuovastringa1 & ":" & nuovastringa2
    Dim nuovastringa6 As String
    Dim nuovastringa4 As String
    Dim nuovastringa5 As String
    nuovastringa4 = Left$(grsCasaPro!primo, 2)
    nuovastringa5 = Right$(grsCasaPro!primo, 2)
    nuovastringa6 = nuovastringa4 & ":" & nuovastringa5

    Dim nuovastringa7 As String
    ' nuovastringa7

    ' Format(nuovastringa7, "HH:mm") = DateTime.DateDiff("hh:mm", nuovastringa3, nuovastringa6)
    nuovastringa7 = Format$(TimeValue(nuovastringa3) - TimeValue(nuovastringa6), "hh:mm")

    FXG_griglia.Text = nuovastringa7

    e cosi mi prende il valore minimo e massimo, ci aggiungo i due punti, e faccio la differenza funziona!!!! ma ci sono 2 problemi!!!
    1) come faccio a fargli scorrere un giorno per volta (perche' cosi facendo mi incasina tutto con il cambio del turno)?
    e poi fare la media dei valori?
    2) come faccio con la questione del turno 20.00 - 03.00?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.