Bonjour,
J'utilise un fichier XML pour générer plusieurs actions suivant les informations de ma Base de Données
Pour ceci j'ai besoin d’exécuter des "call" à chaqu'une des boucles effectué
et créer des variables comme ceci :
Prenom = PersonneElement.selectSingleNode("IdentiT/NewText01").text
Mais je voulais externaliser (modulariser mon projet) cette action dans une procédure extérieur au script de base!!!
est-ce possible !!!!
et l'utilisation : des classes en VBScript est-ce une bonne idée? je connais pas!
http://jerome.developpez.com/tutos/classesvbscript/
comme je voudrais modulariser mon projet, et une solution plutot adapter a mon scrip, mais je suis pas vraiment alaise avec le BVSript.
mon projet de base (2009) été en MS-DOS mais il ne me satisfais plus...
Voici mes bout de codes :
Mon Fichier initial
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132 ' ----- ----- ----- ----- ----- ' SelectionDepart ' ----- ----- ----- ----- ----- SelectionDepart = InputBox ("Tapez 1 " & vbCrlf & " ou 2 " & vbCrlf & " ou autres Valeurs" _ , "JojoSs : SelectionDepart" _ , "2") ' ----- ----- ----- ----- ----- ' Aiguillage selon la SelectionDepart ' ----- ----- ----- ----- ----- If SelectionDepart = 1 Then FichierXML = "Peoples_Arbre00_01_Base02.xml" MsgBox "Fonction if = un" & vbCrlf & _ "FichierXML : " & FichierXML _ , , "JojoSs_Dev... [SelectionDepart - If]" ' OuvertureXML Call OuvertureXML () Elseif SelectionDepart = 2 Then FichierXML = "Peoples_Arbre00_01_Base02.xml" MsgBox "Fonction if = Deux" & vbCrlf & _ "FichierXML : " & FichierXML _ , , "JojoSs_Dev... [SelectionDepart - If]" ' OuvertureXML Call OuvertureXML () FichierXML = "Peoples_Arbre00_02_Base02.xml" MsgBox "Fonction if = Deux" & vbCrlf & _ "FichierXML : " & FichierXML _ , , "JojoSs_Dev... [SelectionDepart - If]" ' OuvertureXML Call OuvertureXML3 () Else FichierXML = "Peoples_Arbre00_02_Base02.xml" MsgBox "Fonction if = Autres" & vbCrlf & _ "FichierXML : " & FichierXML _ , , "JojoSs_Dev... [SelectionDepart - If]" ' OuvertureXML Call OuvertureXML4 () End if ' ##### ##### ##### ##### ##### ' Fin du Script ' ##### ##### ##### ##### ##### Msgbox "Fin du Script" _ , , "JojoSs Dev" ' ##### ##### ##### ##### ##### ' Variables ' ##### ##### ##### ##### ##### Dim FichierXML ' FichierXML :Est le fichier XML a ouvrir ' Node IdentiT Public Prenom Public Nom Public Sexe ' Node Evenements Public Naiss Public DateNaiss Public Dece Public DateDece ' Node jSOSA Public jSOSA01 Public jSOSA02 Public jSOSA03 Public jSOSA04 ' ##### ##### ##### ##### ##### ' Procédures ' ##### ##### ##### ##### ##### ' ----- ----- ----- ----- ----- ' OuvertureXML ' ----- ----- ----- ----- ----- Sub OuvertureXML () ' La première chose à faire dans notre code est donc d'initialiser un parseur : Set xmlDoc = CreateObject("Microsoft.XMLDOM") ' Il nous faut maintenant ouvrir notre fichier. ' On va également indiquer au parseur de charger tout le fichier en mémoire avant de commencer à le parser : xmlDoc.Async = "false" ' ===== ===== ===== ===== ===== Msgbox "Fichier : " & FichierXML _ , , "JojoSs Dev [FichierXML]" xmlDoc.Load(FichierXML) ' test d'ouverture if xmlDoc.Load(FichierXML) Then Set idDocXMLGenea = xmldoc.SelectSingleNode("//DatasGenea/Id") MsgBox "identification du Fichier : " & idDocXMLGenea.Text _ , , "JojoSs_Dev... [xmlDoc.Load]" Else MsgBox "Erreur ouverture fichier xml" _ , , "JojoSs_Dev... [msg Erreur]" End If For Each PersonneElement In xmlDoc.selectNodes("//Personnes/Personne") Call InitialisationDesVariables () Call MsgBox_ () ' ----- ----- ----- ----- ----- ' SelectionvariableSingleNode ' ----- ----- ----- ----- ----- ' Node IdentiT Prenom = PersonneElement.selectSingleNode("IdentiT/NewText01").text Nom = PersonneElement.selectSingleNode("IdentiT/NewText02").text Sexe = PersonneElement.selectSingleNode("IdentiT/NewText03").text ' Node Evenements Naiss = PersonneElement.selectSingleNode("Evenements/NewText01").text DateNaiss = PersonneElement.selectSingleNode("Evenements/NewText02").text Dece = PersonneElement.selectSingleNode("Evenements/NewText03").text DateDece = PersonneElement.selectSingleNode("Evenements/NewText04").text ' Node jSOSA jSOSA01 = PersonneElement.selectSingleNode("jSOSA/NewText01").text jSOSA02 = PersonneElement.selectSingleNode("jSOSA/NewText02").text jSOSA03 = PersonneElement.selectSingleNode("jSOSA/NewText03").text jSOSA04 = PersonneElement.selectSingleNode("jSOSA/NewText04").text Call MsgBox_ () Next Set xmlDoc = Nothing End Sub
Mon Fichier XML
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 <?xml version="1.0" encoding="ISO-8859-1"?> <DatasGenea> <!-- Nodes d'Identification --> <Id>Arbre 000 Generation 01</Id> <!-- Nodes d'Arbre --> <Arbre000> <Personnes> <Personne> <IdentiT> <NewText01>Jorge</NewText01> <NewText02>LOPES</NewText02> <NewText03>M</NewText03> </IdentiT> <jSOSA> <NewText01>Arb00-Gene01-SOSA000001</NewText01> <NewText02>Arb01-Gene01-OrdreFam00-OrdreNaiss01-Lien00</NewText02> <NewText03>00.01.000001</NewText03> <NewText04>0001000001</NewText04> </jSOSA> <Evenements> <NewText01>1975.12.30</NewText01> <NewText02>[ !?_Ville_?! ], [ !?_Etat / Province_?! ], [ !?_Pays_?! ]</NewText02> <NewText03>_AAAA-MM-JJ_</NewText03> <NewText04>[ !?_Ville_?! ], [ !?_Etat / Province_?! ], [ !?_Pays_?! ]</NewText04> </Evenements> </Personne> </Personnes> </Arbre000> </DatasGenea>
Mes procédures (pour la modularisation)
InitialisationDesVariables -> Permet de remettre les variables à un état vide
MsgBox_ -> Permet d’afficher les variables
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 ' ----- ----- ----- ----- ----- ' Initialisation des variables ' ----- ----- ----- ----- ----- Sub InitialisationDesVariables () ' Node IdentiT Prenom = Empty Nom = Empty Sexe = Empty ' Node Evenements Naiss = Empty DateNaiss = Empty Dece = Empty DateDece = Empty ' Node jSOSA jSOSA01 = Empty jSOSA02 = Empty jSOSA03 = Empty jSOSA04 = Empty End Sub ' ----- ----- ----- ----- ----- ' MsgBox_ ' ----- ----- ----- ----- ----- Sub MsgBox_ () MsgBox "Prénom : " & Prenom & vbCrlf & _ "Nom : " & Nom & vbCrlf & _ "Sexe : " & Sexe _ , , "JojoSs_Dev... [selectNodes]" MsgBox "Prénom : " & Prenom & vbCrlf & _ vbCrlf & _ "jSOSA01 : " & jSOSA01 & vbCrlf & _ "jSOSA02 : " & jSOSA02 & vbCrlf & _ "jSOSA03 : " & jSOSA03 & vbCrlf & _ "jSOSA04 : " & jSOSA04 _ , , "JojoSs_Dev... [selectNodes]" MsgBox "Prénom : " & Prenom & vbCrlf & _ vbCrlf & _ "Naiss : " & Naiss & vbCrlf & _ "DateNaiss : " & DateNaiss & vbCrlf & _ "Dece : " & Dece & vbCrlf & _ "DateDece : " & DateDece _ , , "JojoSs_Dev... [selectNodes]" End Sub
J'avais pensé à une structure de cette forme, mais ca marche pas!!!![]()
![]()
Mon Nouveau Script
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 ' ----- ----- ----- ----- ----- ' OuvertureXML4 ' ----- ----- ----- ----- ----- Sub OuvertureXML4 () Set xmlDoc = CreateObject("Microsoft.XMLDOM") xmlDoc.Async = "false" ' ===== ===== ===== ===== ===== Msgbox "Fichier : " & FichierXML _ , , "JojoSs Dev [FichierXML]" xmlDoc.Load(FichierXML) ' test d'ouverture if xmlDoc.Load(FichierXML) Then Set idDocXMLGenea = xmldoc.SelectSingleNode("//DatasGenea/Id") MsgBox "identification du Fichier : " & idDocXMLGenea.Text _ , , "JojoSs_Dev... [xmlDoc.Load]" Else MsgBox "Erreur ouverture fichier xml" _ , , "JojoSs_Dev... [msg Erreur]" End If For Each PersonneElement In xmlDoc.selectNodes("//Personnes/Personne") Call InitialisationDesVariables () Call MsgBox_ () Call SelectionVariableSingleNode () Call MsgBox_ () Next Set xmlDoc = Nothing End Sub
Ma procédure
SelectionVariableSingleNode [COLOR="#008000"]-> Permet d’afficher les variables issu des Nodes ==>> ne fonctionne pas
msg = Erreur : objet requi: 'PersonneElement'
En faite nul ...![]()
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 ' ----- ----- ----- ----- ----- ' SelectionVariableSingleNode ' ----- ----- ----- ----- ----- Sub SelectionVariableSingleNode () ' Node IdentiT Prenom = PersonneElement.selectSingleNode("IdentiT/NewText01").text Nom = PersonneElement.selectSingleNode("IdentiT/NewText02").text Sexe = PersonneElement.selectSingleNode("IdentiT/NewText03").text ' Node Evenements Naiss = PersonneElement.selectSingleNode("Evenements/NewText01").text DateNaiss = PersonneElement.selectSingleNode("Evenements/NewText02").text Dece = PersonneElement.selectSingleNode("Evenements/NewText03").text DateDece = PersonneElement.selectSingleNode("Evenements/NewText04").text ' Node jSOSA jSOSA01 = PersonneElement.selectSingleNode("jSOSA/NewText01").text jSOSA02 = PersonneElement.selectSingleNode("jSOSA/NewText02").text jSOSA03 = PersonneElement.selectSingleNode("jSOSA/NewText03").text jSOSA04 = PersonneElement.selectSingleNode("jSOSA/NewText04").text End Sub
Partager