cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
15 janv. 2006 à 13:35
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
15 janv. 2006 à 22:47
Bonjour à tous....
Besoin d'aide pour améliorer le bout de script ci-dessus.
Principe:
A partir d'une base Access (100 mo), je lis celle-ci en VBS,
et mon script VBS va créer un fichier .html
Tout marche !!!
Mais j'aimerais amélioré ce script (performance + nbre de ligne).
Je n'arrive pas à effectuer une boucle indexée.
les mots ci-dessous sont associés
ales,imsa,iqsa,uiqsimsa,tpea
bour,imsb,iqsb,uiqsimsb,tpeb
pneu,imsp,iqsp,uiqsimsp,imtp
chin,imsc,iqsc,uiqsimsc,tpec
partie de script
MaRequete = "SELECT JOBID,RON,AMJ,DATE_FIN,ABORT,PROJECT,CPU,USER,ELAPSE FROM " & MaTable & " ORDER BY AMJ"
'
'JOBID Rs.Fields(0) : var=jobid nom du job
'RON Rs.Fields(1) : var=ron numéro d''identification du jobid
'AMJ Rs.Fields(2) : var=DatDeb date début du jobid sous la forme jj/mm/aaaa hh:mn:ss
'DATE_FIN Rs.Fields(3) : var=DatFin date fin du jobid sous la forme jj/mm/aaaa hh:mn:ss
' Attention: cette cellule n'est parfois pas renseignée
'ABORT Rs.Fields(4) : var=status status peut-être "OK" ou "ABORTED"
'PROJECT Rs.Fields(5) : nom du project du jobid
'CPU Rs.Fields(6) : var=cpu temps cpu du jobid en secondes
'USER Rs.Fields(7) : var=user USER
'ELAPSE Rs.Fields(8) : var=duree Différence de temps début-fin
' Attention: cette cellule n'est parfois pas renseignée
Set Db = CreateObject("ADODB.Connection")
Set Rs = CreateObject("ADODB.Recordset")
Db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & MaBaseJor
Rs.Open MaRequete ,Db
If Rs.Fields(5) = "UIQSIMSA" Then
If Rs.Fields(0) = "IQSLALES" Then
ElseIf Mid(Rs.Fields(0), 1, 7) = "ALESIQS" Then
ElseIf Rs.Fields(7) = "CRZ-GEP7" Then
ElseIf Rs.Fields(0)= "TRANSIQS" Then
Else
If Rs.Fields(2) >= tdstpea_fin Then
niqsa = niqsa + 1
ciqsa = Rs.Fields(6) + ciqsa
eiqsa = Temps + eiqsa
If Rs.Fields(0) = "AL-D-IQS" Then
niqsa = niqsa - 1
iqsa_deb = DateDeb
End If
iqsa_fin = DateFin
If Rs.Fields(0) = "AL-F-IQS" Then
eiqsa = DateDiff("s", iqsa_deb, DateFin)
niqsa = niqsa - 1
End If
lIQSA = "<tr>" & c_jobid & Rs.Fields(0) & c_font & c_ron & Rs.Fields(1) & c_font &_
c_datdeb & Rs.Fields(2) & c_font & c_datfin & DateFin & c_font & c_duree & duree & " " &_
c_font & c_cpu & cpu & " " & c_font & c_status & status & c_font & c_user & Rs.Fields(7) & c_font & "<tr>"
If status = "ok" Then
lIQSA = Replace(lIQSA, """><", blanc & """><")
wIQSA = wIQSA & lIQSA
Else
lIQSA = Replace(lIQSA, """><", jaune & """><")
wIQSA = wIQSA & lIQSA
End If
End If
End If
End If
If Rs.Fields(5) = "UIQSIMSB" Then
If Rs.Fields(0) = "IQSLBOUR" Then
ElseIf Mid(Rs.Fields(0), 1, 7) = "BOURIQS" Then
ElseIf Rs.Fields(7) = "CRZ-GEP7" Then
ElseIf Rs.Fields(0)= "TRANSIQS" Then
Else
If Rs.Fields(2) >= tdstpeb_fin Then
niqsb = niqsb + 1
ciqsb = Rs.Fields(6) + ciqsb
eiqsb = Temps + eiqsb
If Rs.Fields(0) = "BG-D-IQS" Then
niqsb = niqsb - 1
iqsb_deb = DateDeb
End If
iqsb_fin = DateFin
If Rs.Fields(0) = "BG-F-IQS" Then
eiqsb = DateDiff("s", iqsb_deb, DateFin)
niqsb = niqsb - 1
End If
lIQSB = "<tr>" & c_jobid & Rs.Fields(0) & c_font & c_ron & Rs.Fields(1) & c_font &_
c_datdeb & Rs.Fields(2) & c_font & c_datfin & DateFin & c_font & c_duree & duree & " " &_
c_font & c_cpu & cpu & " " & c_font & c_status & status & c_font & c_user & Rs.Fields(7) & c_font & "<tr>"
If status = "ok" Then
lIQSB = Replace(lIQSB, """><", blanc & """><")
wIQSB = wIQSB & lIQSB
Else
lIQSB = Replace(lIQSB, """><", jaune & """><")
wIQSB = wIQSB & lIQSB
End If
End If
End If
End If
If Rs.Fields(5) = "UIQSIMSP" Then
If Rs.Fields(0) = "IQSLPNEU" Then
ElseIf Mid(Rs.Fields(0), 1, 7) = "PNEUIQS" Then
ElseIf Rs.Fields(7) = "CRZ-GEP7" Then
ElseIf Rs.Fields(0)= "TRANSIQS" Then
Else
If Rs.Fields(2) >= tdsimtp_fin Then
niqsp = niqsp + 1
ciqsp = Rs.Fields(6) + ciqsp
eiqsp = Temps + eiqsp
If Rs.Fields(0) = "LP-D-IQS" Then
niqsp = niqsp - 1
iqsp_deb = DateDeb
End If
iqsp_fin = DateFin
If Rs.Fields(0) = "LP-F-IQS" Then
eiqsp = DateDiff("s", iqsp_deb, DateFin)
niqsp = niqsp - 1
End If
lIQSP = "<tr>" & c_jobid & Rs.Fields(0) & c_font & c_ron & Rs.Fields(1) & c_font &_
c_datdeb & Rs.Fields(2) & c_font & c_datfin & DateFin & c_font & c_duree & duree & " " &_
c_font & c_cpu & cpu & " " & c_font & c_status & status & c_font & c_user & Rs.Fields(7) & c_font & "<tr>"
If status = "ok" Then
lIQSP = Replace(lIQSP, """><", blanc & """><")
wIQSP = wIQSP & lIQSP
Else
lIQSP = Replace(lIQSP, """><", jaune & """><")
wIQSP = wIQSP & lIQSP
End If
End If
End If
End If
End if
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Je remercie par avance ceux(celles) qui ont eu la patience de lire et de déchiffrer ce bout de script.
Mon but est de simplifier (!!!!) ce code si je rajoute une usine.
usine = Array("ALES", "BOUR", "PNEU", "CHIN")
tds = Array("TPEA", "TPEB", "IMTP", "CHIN")
proj_iqs = Array("UIQSIMSA", "UIQSIMSB", "UIQSIMSP", "UIQSIMSC"
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200825 15 janv. 2006 à 21:55
Euh ... et si tu nous disais déjà à quoi çà sert ... on pourrait peut-être comprendre plus facilement ce code et tenter de l'améliorer.
Tu as visiblement pris un malin plaisir à brouiller les pistes avec tous ces noms de variables tordus.
Manu -------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.