par asx9 » 01 Juil 2003 à 10:14
g un petit problème pour retirer les faire une différence entre 2 horaires, voici mon script:Sub Click(Source As Button) Dim workspace As New NotesUIWorkspace Dim uidoc As NotesUIDocument Set docstat = workspace.CurrentDocument 'pour écrire les résultats dans les champs du masque "stat" Set docdate = workspace.CurrentDocument.document 'pour relever les dates du masque "stat" Dim session As New notessession Dim db As notesdatabase Dim vue As notesview Dim doc As notesdocument 'documents de la base Dim difference As Long Dim tpsencours As Long Dim tpsvalidé As Long Dim tpsrefusé As Long Dim tpsattente As Long Dim nbreencours As Long Dim nbrevalidé As Long Dim nbrerefusé As Long Dim nbreattente As Long Dim statut As Long Set db = session.currentdatabase Set vue = db.getview("(test)") Set doc = vue.getfirstdocument 'initialisation des compteurs des nombres de documents nbreencours = 0 nbrerefusé = 0 nbrevalidé = 0 nbreattente = 0 nbredoc = 0 'récupérer les 2 dates et heures du masque "stat" Set datedebH = New notesdatetime (Format$(docdate.getitemvalue("datedeb")(0),"dd/mm/yyyy hh:nn:ss")) Set datefinH = New notesdatetime (Format$(docdate.getitemvalue("datefin")(0),"dd/mm/yyyy hh:nn:ss")) Set datedebJ = New notesdatetime (Format$(docdate.getitemvalue("datedeb")(0),"dd/mm/yyyy")) Set datefinJ = New notesdatetime (Format$(docdate.getitemvalue("datefin")(0),"dd/mm/yyyy")) While Not doc Is Nothing If (doc.getitemvalue("TypDoc")(0) = "DemandeModificationTiers") Then If Isnumeric (doc.getitemvalue("StatutDemande")(0)) Then 'condition qui permet d'éviter le plantage du programme statut = doc.getitemvalue("StatutDemande")(0) 'récupérer les dates et heures du document Set datedocdebH = New notesdatetime (Format$(doc.getitemvalue("Datedemande")(0),"dd/mm/yyyy hh:nn:ss")) Set datedocfinH = New notesdatetime (Format$(doc.getitemvalue("DateAccepteRefuse")(0),"dd/mm/yyyy hh:nn:ss")) Set datedocdebJ = New notesdatetime (Format$(doc.getitemvalue("Datedemande")(0),"dd/mm/yyyy")) Set datedocfinJ = New notesdatetime (Format$(doc.getitemvalue("DateAccepteRefuse")(0),"dd/mm/yyyy")) Call differenceJour (datedocdebJ, datedocfinJ, datedocdebH, datedocfinH, difference)........................... ......................................................Sub differenceJour (dateDJ, dateFJ, dateDH, dateFH, difference) Dim cptJ As Integer Dim diffJ As Long Dim soir As notesdatetime Dim matin As notesdatetime matin = ("09:00:00 AM") soir = ("06:00:00 PM diffJ = dateFH.TimeDifference(dateDH) While diffJ>50400 'soit 14h difference = difference + 28800 '+ une journée de 8h diffJ = diffJ - 1 Wend Msgbox("1") difference = difference - dateFH.TimeDifference(matin) - soir.TimeDifference(dateDH) 'on commence la journée à 9h et on la termine à 18h Msgbox("2") End Suble problème se trouve dans le calcul de "difference" ci-dessus