Barre de progression

Barre de progression

Messagepar Ex Stagiaire » 19 Juil 2005 à 11:31

Une autre version de la barre d'evolution :
[syntax="ls"]Public Sub GEN_AfficherEvolution ( iNbrDocOk As Long, sMode As String, sMsg As String)

' sMode = "INIT" ou "" ou "FIN"
' En mode "INIT" iNbrDocOk doit etre egale au nombre de doc à traiter
' Sinon iNbrDocOk doit etre egal au nombre de docs traités

' Variables pour l'evolution
Dim iEvolPourCent As Single
Dim sEvolPourCent As String
Dim iEvolAvancement As Single
Dim i As Integer
Dim sBarre As String
' Variables pour l'estimation du temps
Dim vTempEcoule As Variant
Dim sTempEcoule As String
Dim sTempEcouleSec As String
Dim sTempEcouleMin As String
Dim sTempEcouleH As String
Dim lTempEnSec As Long
Dim lTempRestant As Long
Dim lTempRestantSec As Long
Dim lTempRestantMin As Long
Dim lTempRestantH As Long
Dim sTempRestantSec As String
Dim sTempRestantMin As String
Dim sTempRestantH As String
Dim sTempRestant As String

Static sNow As String
Static iNbrDoc As String

If sMode = "FIN" Then
Print "End Process"
Exit Sub
End If

If Ucase$(Left$(sMode, 3 )) = "END" Then
Print sMode
Exit Sub
End If

If sMode = "INIT" Then
sNow = GEN_DH_NowFormater ()
iNbrDoc = iNbrDocOk
Else
iEvolPourCent = 0
iEvolAvancement = 100/iNbrDoc

If iEvolAvancement * iNbrDocOk > 100 Then
iEvolPourCent = 100
Else
iEvolPourCent = iEvolAvancement * iNbrDocOk
End If

sBarre = ""
For i = 1 To Int (iEvolPourCent)
sBarre = sBarre + "|"
Next i
For i = Int (iEvolPourCent) To 99
sBarre = sBarre + "'"
Next i

vTempEcoule = Time - Timevalue (sNow)
lTempEnSec = Hour (vTempEcoule) * 3600 + Minute (vTempEcoule) * 60 + Second (vTempEcoule)
lTempRestant = Int ((lTempEnSec / iNbrDocOk) * (iNbrDoc - iNbrDocOk))

lTempRestantH = Int (lTempRestant/3600)
lTempRestant = lTempRestant - 3600 * lTempRestantH
lTempRestantMin = Int (lTempRestant/60)
lTempRestant = lTempRestant - lTempRestantMin * 60
lTempRestantSec = lTempRestant

sTempRestantH = Trim$(Str$ (lTempRestantH))
sTempRestantMin = Trim$(Str$ (lTempRestantMin))
If lTempRestantMin < 10 Then
sTempRestantMin = "0" + sTempRestantMin
End If
sTempRestantSec = Trim$(Str$ (lTempRestantSec))
If lTempRestantSec < 10 Then
sTempRestantSec = "0" + sTempRestantSec
End If

sTempEcouleH = Trim$(Str$ (Hour (vTempEcoule) ))
sTempEcouleMin = Trim$(Str$ (Minute (vTempEcoule)))
If Minute (vTempEcoule) < 10 Then
sTempEcouleMin = "0" + sTempEcouleMin
End If
sTempEcouleSec = Trim$(Str$ (Second (vTempEcoule)))
If Second (vTempEcoule) < 10 Then
sTempEcouleSec = "0" + sTempEcouleSec
End If

sTempRestant = sTempRestantH + "h " + sTempRestantMin + "min " + sTempRestantSec + "sec"
sTempEcoule = sTempEcouleH + "h " + sTempEcouleMin + "min " + sTempEcouleSec + "sec"
sEvolPourCent = Trim$(Str$ ( Int (iEvolPourCent)))
If iEvolPourCent < 10 Then
sEvolPourCent = "0" + sEvolPourCent
End If
Print sMsg & " : " & sBarre & " " & sEvolPourCent & "%" & " -- Remaining time : " & sTempRestant & " -- Passed time : " & sTempEcoule

If iNbrDoc = iNbrDocOk Then
sBarre = ""
For i = 0 To 99
sBarre = sBarre + "|"
Next
Print "Evolution : " + sBarre + " 100%"
End If
End If

End Sub
[/syntax]
Notes R5.0.9
Dev. pour clients lourds.
Avatar de l’utilisateur
Ex Stagiaire
Empereur des posts
Empereur des posts
 
Message(s) : 1066
Inscrit(e) le : 16 Déc 2004 à 11:19
Localisation : Toulouse

Messagepar VastoMarine » 12 Oct 2005 à 14:25

Pourrait-on avoir plus de documentation concernant ce sujet ?

On mettons le code ?

Merci
Avatar de l’utilisateur
VastoMarine
Posteur habitué
Posteur habitué
 
Message(s) : 202
Inscrit(e) le : 10 Août 2005 à 08:40

Messagepar Sylvain-PEPIN » 26 Oct 2005 à 14:02

Salut,

Comment fait on pour l'utiliser dans un script ? avec un call ?
merci,
Sylvain
@+
Sylvain

"Le plus évident est souvent ce qui est le moins caché."
Avatar de l’utilisateur
Sylvain-PEPIN
Modérateur
Modérateur
 
Message(s) : 1918
Inscrit(e) le : 23 Juin 2005 à 14:56
Localisation : Bessancourt (95)

Messagepar Stephane Maillard » 26 Oct 2005 à 14:04

Bonjour,

Soit :
Call GEN_AfficherEvolution ( iNbrDocOk, sMode, sMsg)
Ou :
GEN_AfficherEvolution iNbrDocOk, sMode, sMsg
Cordialement

Stéphane Maillard
Avatar de l’utilisateur
Stephane Maillard
Lord of DominoArea
Lord of DominoArea
 
Message(s) : 8695
Inscrit(e) le : 16 Déc 2004 à 01:10
Localisation : Bretagne

Messagepar Sylvain-PEPIN » 26 Oct 2005 à 14:25

Argh ... j'ai un message dans la barre d'erreur de mon designer : "Not a sub or function name: GEN_DH_NOWFORMATER"
J'ai l'impression qu'il m'en manque un bout ... :cry:
@+
Sylvain

"Le plus évident est souvent ce qui est le moins caché."
Avatar de l’utilisateur
Sylvain-PEPIN
Modérateur
Modérateur
 
Message(s) : 1918
Inscrit(e) le : 23 Juin 2005 à 14:56
Localisation : Bessancourt (95)

Messagepar Stephane Maillard » 26 Oct 2005 à 14:45

Re,

Effectivement, je crois que c'est sur le forum, mais si il faut relire tous les posts de Ex Stagiaire depuis 2002 on aura quelques Week End sur le site.
Cordialement

Stéphane Maillard
Avatar de l’utilisateur
Stephane Maillard
Lord of DominoArea
Lord of DominoArea
 
Message(s) : 8695
Inscrit(e) le : 16 Déc 2004 à 01:10
Localisation : Bretagne

Messagepar Sylvain-PEPIN » 27 Oct 2005 à 12:39

Salut Stéphane,

Laisses tomber :wink: , j'ai trouvé dans un autre post, un script qui fait trés bien l'affaire. A moins effectivement, que que ça interresse d'autres personnes...

Merci,
Sylvain
@+
Sylvain

"Le plus évident est souvent ce qui est le moins caché."
Avatar de l’utilisateur
Sylvain-PEPIN
Modérateur
Modérateur
 
Message(s) : 1918
Inscrit(e) le : 23 Juin 2005 à 14:56
Localisation : Bessancourt (95)

Messagepar Stephane Maillard » 27 Oct 2005 à 12:42

Salut,

Bien sur tout m'intéresse. :wink:
Cordialement

Stéphane Maillard
Avatar de l’utilisateur
Stephane Maillard
Lord of DominoArea
Lord of DominoArea
 
Message(s) : 8695
Inscrit(e) le : 16 Déc 2004 à 01:10
Localisation : Bretagne

Messagepar Stephane Maillard » 27 Oct 2005 à 12:53

Cordialement

Stéphane Maillard
Avatar de l’utilisateur
Stephane Maillard
Lord of DominoArea
Lord of DominoArea
 
Message(s) : 8695
Inscrit(e) le : 16 Déc 2004 à 01:10
Localisation : Bretagne

Messagepar Sylvain-PEPIN » 27 Oct 2005 à 12:57

Y'avait un autre topic ici, avec pleins de liens ... je ne le retrouve plus ... :cry: Je ne sais plus si c'est Michael ou Oguruma qui l'avait publié ...je le recherche, j'vais bien le retrouver .... :twisted:
@+
Sylvain

"Le plus évident est souvent ce qui est le moins caché."
Avatar de l’utilisateur
Sylvain-PEPIN
Modérateur
Modérateur
 
Message(s) : 1918
Inscrit(e) le : 23 Juin 2005 à 14:56
Localisation : Bessancourt (95)

Messagepar Stephane Maillard » 27 Oct 2005 à 18:03

Re,

Voilà les codes d'Ex Stagiaire fournit par MSN : [syntax="ls"]Public Function GEN_DH_NowFormater ( ) As String

Dim sNow As String
Dim sMois As String
Dim sJour As String
Dim sAnnee As String
Dim sHeure As String
Dim sMinute As String
Dim sSeconde As String

sMois = GEN_FormaterChaine ( Trim$(Str$ (Month ( Now ))), 2, "0", "RIGHT" )
sJour = GEN_FormaterChaine ( Trim$(Str$ (Day( Now ))), 2, "0", "RIGHT" )
sAnnee = Trim$(Str$ (Year ( Now )))
sHeure = GEN_FormaterChaine ( Trim$(Str$ (Hour ( Now ))), 2, "0", "RIGHT" )
sMinute = GEN_FormaterChaine ( Trim$(Str$ (Minute ( Now ))), 2, "0", "RIGHT" )
sSeconde = GEN_FormaterChaine ( Trim$(Str$ (Second ( Now ))), 2, "0", "RIGHT" )

GEN_DH_NowFormater = sJour + "/" + sMois + "/" + sAnnee + " " + sHeure + ":" + sMinute + ":" + sSeconde

End Function


Public Function GEN_FormaterChaine ( sVal As String, iNombre As Integer, sCar As String , sMode As String ) As String

Dim sValNew As String
Dim iLong As Integer
Dim iNbr As Integer

' sMode ="RIGHT" ou "LEFT"

sValNew = Trim$(sVal)
iLong = Len (sValNew)
iNbr = iNombre - iLong
If INbr = 0 Then
GEN_FormaterChaine = sValNew
Exit Function
End If
If iNbr > 0 Then
If sMode = "RIGHT" Then
sValNew = String$(iNbr, sCar ) + sValNew
Else
sValNew = sValNew + String$(iNbr,sCar )
End If
Else
If sMode = "RIGHT" Then
sValNew = Left$(sValNew, iNombre)
Else
sValNew = Right$(sValNew, iNombre)
End If
End If
GEN_FormaterChaine = sValNew

End Function
[/syntax]
Cordialement

Stéphane Maillard
Avatar de l’utilisateur
Stephane Maillard
Lord of DominoArea
Lord of DominoArea
 
Message(s) : 8695
Inscrit(e) le : 16 Déc 2004 à 01:10
Localisation : Bretagne


Retour vers Divers