Java c'est pas de la menthe a l'eau
Et n'oubliez pas : Ne pas respirer tue...
Mon BLOOOUUUG Un site trop bien
Pour la recherche JAVA des liens pratiques :
GOOGLE LA JAVADOC LES FAQ LES ARCHIVES
@ Aka
La déclaration Doc :IXMLDocument fonctionne très bien. Ce serait une autre histoire si on lui assignait un propriétaire à la création .
@ Andnotor :
Le code que vous m'avez passer ne fonctionne pas, pour la simple raison qu'il y a une erreur :
Il me semble avoir vu que c'était au niveau de la déclaration de la variable Doc. Ce qui as supprimer mes problèmes. Pour le reste, c'est certainement très bon, mais le soucis c'est que j'ai ce message qui me dis que la variable 'Doc' est inaccessible du fait de l'optimisation... Chose complètement incompréhensible pour moi...
Merci de votre aide
Java c'est pas de la menthe a l'eau
Et n'oubliez pas : Ne pas respirer tue...
Mon BLOOOUUUG Un site trop bien
Pour la recherche JAVA des liens pratiques :
GOOGLE LA JAVADOC LES FAQ LES ARCHIVES
J'ai bien compris.
Sache cependant que si je ne suis pas sûr de mon coup, je fais un test. Et si je n'ai pas le temps, je ne donne pas mon avis .
Cette déclaration fonctionne au minimum depuis D7. Si tu utilises une version antérieure, peut-être que ça coince...
Pour le message:
Cette variable n'est plus utilisée après ton point d'arrêt et elle a déjà été supprimée de la pile (Optimisation). Ce n'est pas une erreur.
Je suis sur D7. Je vais remettre mon code en entier, tu me dira ce que tu vois qui ne vas pas :
Merci pour tes réponses
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 procedure Tanalyses.FillFromXML(aFileName: TFileName); var REJ_DATE_ANALYSE, REJ_MOIS_FACTURATION, ECH_DATE_COLLECTE, ECH_DATE_PRELEV, TOU_ID_DATE_DEB :tdate; VERSION, REM_NOMBRE_RECIDIVE, REM_NOTE_MENSUELLE, REM_NOMBRE_MOIS, REJ_NOTE, REJ_UME_VALEUR_RES, TRN_ID_CODE, ECH_ORDRE_PRELEV, ECH_RANG_PRELEV, TOU_ID_NUMERO, NBENR : integer; NUMSEQ, ENT_ID_CODE_LAB, IDDEST, IDFICHIER, TYPE_EXPORT, ENT_ID_CODE_PRD, REM_MOIS_FACTURATION, RF_CRI_ID_CODE, RF_TRM_ID_CODE, ENT_ID_CODE_CA, RF_ESP_ID_CODE, RF_NAT_ID_CODE, RF_AIP_ID_CODE, ENT_ID_CODE_CC, ECH_CODE_LABO, RF_MET_ID_CODE, RF_SRJ_ID_CODE, RF_UME_ID_CODE, REM_RECIDIVE, REM_PENALITE_MOIS, REM_POUR_PAIEMENT, REM_DIFFUSION_PULL, REM_CLASSE_MENSUELLE, REM_RECLASSEMENT, REM_CLASSE_MENSUELLE_PAIE, REJ_PENALISATION_JOUR, REJ_DIFFUSION_PULL, ECH_CODE_INTERNE_LABO, RF_SEC_ID_CODE, ECH_ANOMALIE, ECH_COMMENTAIRE : string; Doc :TXMLDocument; begin Doc := TXMLDocument.Create(nil); Doc.LoadFromFile(aFileName); // <FIC_XML> with Doc.DocumentElement do begin // <DEB> with ChildNodes['DEB'] do begin NUMSEQ := ChildNodes['NUMSEQ'].Text; ENT_ID_CODE_LAB := ChildNodes['ENT_ID_CODE_LAB'].Text; end; // <REM> end; end;
Java c'est pas de la menthe a l'eau
Et n'oubliez pas : Ne pas respirer tue...
Mon BLOOOUUUG Un site trop bien
Pour la recherche JAVA des liens pratiques :
GOOGLE LA JAVADOC LES FAQ LES ARCHIVES
Testé sous D2007.
1° : Violation d'accès
2° : Fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var Doc :TXMLDocument; begin Doc := TXMLDocument.Create(nil); Doc.LoadFromFile(aFileName); ... end;
3° : Fonctionne (Normal puisque cette construction (propriétaire à nil) nous renvoi une interface)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 var Doc :TXMLDocument; begin Doc := TXMLDocument.Create(Self); Doc.LoadFromFile(aFileName); ... Doc.Free; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var Doc :IXMLDocument; begin Doc := TXMLDocument.Create(nil); Doc.LoadFromFile(aFileName); ... end;
Pour ton 3ème point :
Ne fonctionne pas puisque j'ai les erreurs suivantes :
[DCC Erreur] fi_analyses.pas(85): E2010 Types incompatibles : 'IXMLDocument' et 'TXMLDocument'
[DCC Erreur] fi_analyses.pas(86): E2003 Identificateur non déclaré : 'LoadFromFile'
[DCC Erreur] fi_analyses.pas(89): E2003 Identificateur non déclaré : 'DocumentElement'
[DCC Erreur] fi_analyses.pas(89): E2003 Identificateur non déclaré : 'DocumentElement'
Et j'en passe...
En revanche, visiblement l'option 2 fonctionne... Je test et je vous dis.
Encore merci
Java c'est pas de la menthe a l'eau
Et n'oubliez pas : Ne pas respirer tue...
Mon BLOOOUUUG Un site trop bien
Pour la recherche JAVA des liens pratiques :
GOOGLE LA JAVADOC LES FAQ LES ARCHIVES
Salut,
les uses a utiliser en tout cas avec D2009 mais j'imagine qu'avec les versions précédente c'est pareil.
L'option 3 de AndNotor doit fonctionner car TXMLDocument implémente IXMLDocument.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ...XMLIntf, XMLDoc...
Akim Merabet
J'ai bien fais de ne pas avoir mis le Tag Résolus tout de suite... Puisque j'ai un petit problème... Maintenant que ma lecture marche, je vais parcourir les enfants du premier nœud, (le with childnode['DEB'] do) mais quand je parcours le deuxième nœud (with childnode['REM'] do) ben je ne récupère aucune donnée... Je ne vois pas pourquoi... Je vous poste mon code complet
Merci d'avance pour votre aide !
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208 procedure Tanalyses.FillFromXML(aFileName: TFileName); var REJ_DATE_ANALYSE, REJ_MOIS_FACTURATION, ECH_DATE_COLLECTE, ECH_DATE_PRELEV, TOU_ID_DATE_DEB :tdate; VERSION, REM_NOMBRE_RECIDIVE, REM_NOTE_MENSUELLE, REM_NOMBRE_MOIS, REJ_NOTE, REJ_UME_VALEUR_RES, TRN_ID_CODE, ECH_ORDRE_PRELEV, ECH_RANG_PRELEV, TOU_ID_NUMERO, NBENR : integer; NUMSEQ, NUMSEQ1, NUMSEQ2, NUMSEQ3, NUMSEQ4, ENT_ID_CODE_LAB, IDDEST, IDFICHIER, TYPE_EXPORT, ENT_ID_CODE_PRD, REM_MOIS_FACTURATION, RF_CRI_ID_CODE, RF_TRM_ID_CODE, ENT_ID_CODE_CA, RF_ESP_ID_CODE, RF_NAT_ID_CODE, RF_AIP_ID_CODE, ENT_ID_CODE_CC, ECH_CODE_LABO, RF_MET_ID_CODE, RF_SRJ_ID_CODE, RF_UME_ID_CODE, REM_RECIDIVE, REM_PENALITE_MOIS, REM_POUR_PAIEMENT, REM_DIFFUSION_PULL, REM_CLASSE_MENSUELLE, REM_RECLASSEMENT, REM_CLASSE_MENSUELLE_PAIE, REJ_PENALISATION_JOUR, REJ_DIFFUSION_PULL, ECH_CODE_INTERNE_LABO, RF_SEC_ID_CODE, ECH_ANOMALIE, ECH_COMMENTAIRE : string; Doc :TXMLDocument; begin Doc := TXMLDocument.Create(Self); Doc.LoadFromFile(aFileName); // <FIC_XML> with Doc.DocumentElement do begin // <DEB> with ChildNodes['DEB'] do begin NUMSEQ := ChildNodes['NUMSEQ'].Text; ENT_ID_CODE_LAB := ChildNodes['ENT_ID_CODE_LAB'].Text; IDDEST := ChildNodes['IDDEST'].Text; IDFICHIER := ChildNodes['IDFICHIER'].Text; TYPE_EXPORT := ChildNodes['TYPE_EXPORT'].Text; VERSION := StrToInt(ChildNodes['VERSION'].Text); labelAction.Caption := 'Lecture des données...'; // c'est là qu'il faut faire le append dm.analyse.first; if not dm.analyse.locate('an_NUMSEQ',NUMSEQ,[]) then begin dm.analyse.Append; dm.analyse['an_NUMSEQ']:= NUMSEQ; dm.analyse['an_ENT_ID_CODE_LAB']:= ENT_ID_CODE_LAB; dm.analyse['an_IDDEST']:= IDDEST; dm.analyse['an_IDFICHIER']:= IDFICHIER; dm.analyse['an_TYPE_EXPORT']:= TYPE_EXPORT; dm.analyse['an_VERSION']:= VERSION; dm.analyse.Post; end; // <REM> with ChildNodes['REM'] do begin NUMSEQ1 := ChildNodes['NUMSEQ'].Text; ENT_ID_CODE_PRD := ChildNodes['ENT_ID_CODE_PRD'].Text; REM_MOIS_FACTURATION := ChildNodes['REM_MOIS_FACTURATION'].Text; RF_CRI_ID_CODE := ChildNodes['RF_CRI_ID_CODE'].Text; RF_TRM_ID_CODE := ChildNodes['RF_TRM_ID_CODE'].Text; ENT_ID_CODE_CA := ChildNodes['ENT_ID_CODE_CA'].Text; RF_ESP_ID_CODE := ChildNodes['RF_ESP_ID_CODE'].Text; RF_NAT_ID_CODE := ChildNodes['RF_NAT_ID_CODE'].Text; REM_RECIDIVE := ChildNodes['REM_RECIDIVE'].Text; REM_NOMBRE_RECIDIVE := StrToInt(ChildNodes['REM_NOMBRE_RECIDIVE'].Text); REM_PENALITE_MOIS := ChildNodes['REM_PENALITE_MOIS'].Text; REM_POUR_PAIEMENT := ChildNodes['REM_POUR_PAIEMENT'].Text; REM_DIFFUSION_PULL := ChildNodes['REM_DIFFUSION_PULL'].Text; RF_AIP_ID_CODE := ChildNodes['RF_AIP_ID_CODE'].Text; ENT_ID_CODE_CC := ChildNodes['ENT_ID_CODE_CC'].Text; REM_CLASSE_MENSUELLE := ChildNodes['REM_CLASSE_MENSUELLE'].Text; REM_RECLASSEMENT := ChildNodes['REM_RECLASSEMENT'].Text; REM_CLASSE_MENSUELLE_PAIE := ChildNodes['REM_CLASSE_MENSUELLE_PAIE'].Text; REM_NOTE_MENSUELLE := StrToInt(ChildNodes['REM_NOTE_MENSUELLE'].Text); REM_NOMBRE_MOIS := StrToInt(ChildNodes['REM_NOMBRE_MOIS'].Text); labelAction.Caption := 'Lecture des données...'; // c'est là qu'il faut faire le append dm.analyse.first; if not dm.analyse.locate('an_NUMSEQ',NUMSEQ,[]) then begin dm.analyse.Append; dm.analyse['an_NUMSEQ']:= NUMSEQ; dm.analyse['an_ENT_ID_CODE_PRD']:= ENT_ID_CODE_PRD; dm.analyse['an_REM_MOIS_FACTURATION']:= REM_MOIS_FACTURATION; dm.analyse['an_REM_NOMBRE_MOIS']:= REM_NOMBRE_MOIS; dm.analyse['an_RF_CRI_ID_CODE']:= RF_CRI_ID_CODE; dm.analyse['an_RF_TRM_ID_CODE']:= RF_TRM_ID_CODE; dm.analyse['an_ENT_ID_CODE_CA']:= ENT_ID_CODE_CA; dm.analyse['an_RF_ESP_ID_CODE']:= RF_ESP_ID_CODE; dm.analyse['an_RF_NAT_ID_CODE']:= RF_NAT_ID_CODE; dm.analyse['an_REM_RECIDIVE']:= REM_RECIDIVE; dm.analyse['an_REM_NOMBRE_RECIDIVE']:= REM_NOMBRE_RECIDIVE; dm.analyse['an_REM_PENALITE_MOIS']:= REM_PENALITE_MOIS; dm.analyse['an_REM_POUR_PAIEMENT']:= REM_POUR_PAIEMENT; dm.analyse['an_REM_DIFFUSION_PULL']:= REM_DIFFUSION_PULL; dm.analyse['an_REM_CLASSE_MENSUELLE']:= REM_CLASSE_MENSUELLE; dm.analyse['an_REM_RECLASSEMENT']:= REM_RECLASSEMENT; dm.analyse['an_REM_CLASSE_MENSUELLE_PAIE']:= REM_CLASSE_MENSUELLE_PAIE; dm.analyse['an_REM_NOTE_MENSUELLE']:= REM_NOTE_MENSUELLE; dm.analyse['an_REM_NOMBRE_MOIS']:= REM_NOMBRE_MOIS; dm.analyse.Post; end; // <RJM> with ChildNodes['RJM'] do begin NUMSEQ2 := ChildNodes['NUMSEQ'].Text; ECH_CODE_LABO := ChildNodes['ECH_CODE_LABO'].Text; RF_MET_ID_CODE := ChildNodes['RF_MET_ID_CODE'].Text; RF_CRI_ID_CODE := ChildNodes['RF_CRI_ID_CODE'].Text; REJ_DATE_ANALYSE := StrToDate(ChildNodes['REJ_DATE_ANALYSE'].Text); REJ_MOIS_FACTURATION := StrToDate(ChildNodes['REJ_MOIS_FACTURATION'].Text); RF_SRJ_ID_CODE := ChildNodes['RF_SRJ_ID_CODE'].Text; REJ_PENALISATION_JOUR := ChildNodes['REJ_PENALISATION_JOUR'].Text; REJ_DIFFUSION_PULL := ChildNodes['REJ_DIFFUSION_PULL'].Text; REJ_NOTE := StrToInt(ChildNodes['REJ_NOTE'].Text); REJ_UME_VALEUR_RES := StrToInt(ChildNodes['REJ_UME_VALEUR_RES'].Text); RF_UME_ID_CODE := ChildNodes['RF_UME_ID_CODE'].Text; labelAction.Caption := 'Lecture des données...'; // c'est là qu'il faut faire le append dm.analyse.first; if not dm.analyse.locate('an_NUMSEQ',NUMSEQ,[]) then begin dm.analyse.Append; dm.analyse['an_NUMSEQ']:= NUMSEQ; dm.analyse['an_ECH_CODE_LABO']:= ECH_CODE_LABO; dm.analyse['an_RF_MET_ID_CODE']:= RF_MET_ID_CODE; dm.analyse['an_RF_CRI_ID_CODE']:= RF_CRI_ID_CODE; dm.analyse['an_REJ_DATE_ANALYSE']:= REJ_DATE_ANALYSE; dm.analyse['an_REJ_MOIS_FACTURATION']:= REJ_MOIS_FACTURATION; dm.analyse['an_RF_SRJ_ID_CODE']:= RF_SRJ_ID_CODE; dm.analyse['an_REJ_PENALISATION_JOUR']:= REJ_PENALISATION_JOUR; dm.analyse['an_REJ_DIFFUSION_PULL']:= REJ_DIFFUSION_PULL; dm.analyse['an_REJ_NOTE']:= REJ_NOTE; dm.analyse['an_REJ_UME_VALEUR_RES']:= REJ_UME_VALEUR_RES; dm.analyse['an_RF_UME_ID_CODE']:= RF_UME_ID_CODE; dm.analyse.Post; end; end; with ChildNodes['ECM'] do begin NUMSEQ3 := ChildNodes['NUMSEQ'].Text; ECH_CODE_LABO := ChildNodes['ECH_CODE_LABO'].Text; ECH_CODE_INTERNE_LABO := ChildNodes['ECH_CODE_INTERNE_LABO'].Text; RF_ESP_ID_CODE := ChildNodes['RF_ESP_ID_CODE'].Text; RF_NAT_ID_CODE := ChildNodes['RF_NAT_ID_CODE'].Text; ENT_ID_CODE_CC := ChildNodes['ENT_ID_CODE_CC'].Text; TRN_ID_CODE := StrToInt(ChildNodes['TRN_ID_CODE'].Text); TOU_ID_NUMERO := StrToInt(ChildNodes['TOU_ID_NUMERO'].Text); TOU_ID_DATE_DEB := StrToDate(ChildNodes['TOU_ID_DATE_DEB'].Text); ECH_DATE_PRELEV := StrToDate(ChildNodes['ECH_DATE_PRELEV'].Text); ECH_DATE_COLLECTE := StrToDate(ChildNodes['ECH_DATE_COLLECTE'].Text); ECH_RANG_PRELEV := StrToInt(ChildNodes['ECH_RANG_PRELEV'].Text); ECH_ORDRE_PRELEV := StrToInt(ChildNodes['ECH_ORDRE_PRELEV'].Text); ENT_ID_CODE_CA := ChildNodes['ENT_ID_CODE_CA'].Text; ENT_ID_CODE_PRD := ChildNodes['ENT_ID_CODE_PRD'].Text; RF_SEC_ID_CODE := ChildNodes['RF_SEC_ID_CODE'].Text; ECH_ANOMALIE := ChildNodes['ECH_ANOMALIE'].Text; ECH_COMMENTAIRE := ChildNodes['ECH_COMMENTAIRE'].Text; labelAction.Caption := 'Lecture des données...'; // c'est là qu'il faut faire le append dm.analyse.first; if not dm.analyse.locate('an_NUMSEQ',NUMSEQ,[]) then begin dm.analyse.Append; dm.analyse['an_NUMSEQ']:= NUMSEQ; dm.analyse['an_ECH_CODE_LABO']:= ECH_CODE_LABO; dm.analyse['an_ECH_CODE_INTERNE_LABO']:= ECH_CODE_INTERNE_LABO; dm.analyse['an_RF_ESP_ID_CODE']:= RF_ESP_ID_CODE; dm.analyse['an_RF_NAT_ID_CODE']:= RF_NAT_ID_CODE; dm.analyse['an_ENT_ID_CODE_CC']:= ENT_ID_CODE_CC; dm.analyse['an_TRN_ID_CODE']:= TRN_ID_CODE; dm.analyse['an_TOU_ID_NUMERO']:= TOU_ID_NUMERO; dm.analyse['an_TOU_ID_DATE_DEB']:= TOU_ID_DATE_DEB; dm.analyse['an_ECH_DATE_PRELEV']:= ECH_DATE_PRELEV; dm.analyse['an_ECH_DATE_COLLECTE']:= ECH_DATE_COLLECTE; dm.analyse['an_ECH_RANG_PRELEV']:= ECH_RANG_PRELEV; dm.analyse['an_ECH_ORDRE_PRELEV']:= ECH_ORDRE_PRELEV; dm.analyse['an_ENT_ID_CODE_CA']:= ENT_ID_CODE_CA; dm.analyse['an_ENT_ID_CODE_PRD']:= ENT_ID_CODE_PRD; dm.analyse['an_RF_SEC_ID_CODE']:= RF_SEC_ID_CODE; dm.analyse['an_ECH_ANOMALIE']:= ECH_ANOMALIE; dm.analyse['an_ECH_COMMENTAIRE']:= ECH_COMMENTAIRE; dm.analyse.Post; end; end; // <FIN> with ChildNodes['FIN'] do begin NUMSEQ4 := ChildNodes['NUMSEQ'].Text; NBENR := StrToInt(ChildNodes['NBENR'].Text); labelAction.Caption := 'Lecture des données...'; // c'est là qu'il faut faire le append dm.analyse.first; if not dm.analyse.locate('an_NUMSEQ',NUMSEQ,[]) then begin dm.analyse.Append; dm.analyse['an_NUMSEQ']:= NUMSEQ; dm.analyse['an_NBENR']:= NBENR; dm.analyse.Post; end; end; end; end; end; Doc.free; end;
Java c'est pas de la menthe a l'eau
Et n'oubliez pas : Ne pas respirer tue...
Mon BLOOOUUUG Un site trop bien
Pour la recherche JAVA des liens pratiques :
GOOGLE LA JAVADOC LES FAQ LES ARCHIVES
Le end de with ChildNodes['DEB'] do est trop bas. Comme écrit, REM, RJM, etc. sont enfants de DEB.
Oui effectivement... mais je ne sais pas trop ou le mettre
Java c'est pas de la menthe a l'eau
Et n'oubliez pas : Ne pas respirer tue...
Mon BLOOOUUUG Un site trop bien
Pour la recherche JAVA des liens pratiques :
GOOGLE LA JAVADOC LES FAQ LES ARCHIVES
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 with ChildNodes['DEB'] do begin NUMSEQ := ChildNodes['NUMSEQ'].Text; ENT_ID_CODE_LAB := ChildNodes['ENT_ID_CODE_LAB'].Text; IDDEST := ChildNodes['IDDEST'].Text; IDFICHIER := ChildNodes['IDFICHIER'].Text; TYPE_EXPORT := ChildNodes['TYPE_EXPORT'].Text; VERSION := StrToInt(ChildNodes['VERSION'].Text); labelAction.Caption := 'Lecture des données...'; // c'est là qu'il faut faire le append dm.analyse.first; if not dm.analyse.locate('an_NUMSEQ',NUMSEQ,[]) then begin dm.analyse.Append; dm.analyse['an_NUMSEQ']:= NUMSEQ; dm.analyse['an_ENT_ID_CODE_LAB']:= ENT_ID_CODE_LAB; dm.analyse['an_IDDEST']:= IDDEST; dm.analyse['an_IDFICHIER']:= IDFICHIER; dm.analyse['an_TYPE_EXPORT']:= TYPE_EXPORT; dm.analyse['an_VERSION']:= VERSION; dm.analyse.Post; end; end; // <REM> with ChildNodes['REM'] do begin
Ok, impecable pour le replacement du "end;" ^^. J'ai un petit soucis fonctionnel avec un format de date mais ça peux s'arranger. En revanche j'ai un problème d'ordre analytique maintenant... Mon fichier XML est fais de la forme suivante :
Plus clairement, certains <REM> sont des fiches d'identités d'un producteur, (celle qui ne comportent que les balises REM), d'autre sont les produits par producteur... Et le nombre de produits peux varier suivant les producteurs. De plus les "sous-balises" à l'intérieur des différentes balises "<REM>" ne sont pas les mêmes... Bref, je me suis perdu dans mon analyse et je ne sais plus comment faire en delphi pour gérer ce problème... Merci à tous ceux qui voudrons bien se pencher sur mon problème et éclairer ma lanterne...
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 <DEB> ... </DEB> <REM> ... <RJM> .... </RJM> <RJM> ... </RJM> </REM> <REM> ... </REM> <REM> ... <RJM> ... </RJM> <RJM> ... </RJM> <RJM> ... </RJM> </REM>
Histoire de guider, mon code :
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224 procedure Tanalyses.FillFromXML(aFileName: TFileName); var nbtot, I : integer; root, node, Ent, Att : IXMLDOMNode; REJ_DATE_ANALYSE, REJ_MOIS_FACTURATION, ECH_DATE_COLLECTE, ECH_DATE_PRELEV, TOU_ID_DATE_DEB :tdate; VERSION, REM_NOMBRE_RECIDIVE, REM_NOTE_MENSUELLE, REM_NOMBRE_MOIS, REJ_NOTE, REJ_UME_VALEUR_RES, TRN_ID_CODE, ECH_ORDRE_PRELEV, ECH_RANG_PRELEV, TOU_ID_NUMERO, NBENR : integer; NUMSEQ, NUMSEQ1, NUMSEQ2, NUMSEQ3, NUMSEQ4, ENT_ID_CODE_LAB, IDDEST, IDFICHIER, TYPE_EXPORT, ENT_ID_CODE_PRD, REM_MOIS_FACTURATION, RF_CRI_ID_CODE, RF_TRM_ID_CODE, ENT_ID_CODE_CA, RF_ESP_ID_CODE, RF_NAT_ID_CODE, RF_AIP_ID_CODE, ENT_ID_CODE_CC, ECH_CODE_LABO, RF_MET_ID_CODE, RF_SRJ_ID_CODE, RF_UME_ID_CODE, REM_RECIDIVE, REM_PENALITE_MOIS, REM_POUR_PAIEMENT, REM_DIFFUSION_PULL, REM_CLASSE_MENSUELLE, REM_RECLASSEMENT, REM_CLASSE_MENSUELLE_PAIE, REJ_PENALISATION_JOUR, REJ_DIFFUSION_PULL, ECH_CODE_INTERNE_LABO, RF_SEC_ID_CODE, ECH_ANOMALIE, ECH_COMMENTAIRE : string; Doc :TXMLDocument; begin Doc := TXMLDocument.Create(Self); Doc.LoadFromFile(aFileName); // <FIC_XML> with Doc.DocumentElement do begin // nbtot:=root.childNodes.length; // <DEB> with ChildNodes['DEB'] do // for I := 0 to nbtot - 1 do begin NUMSEQ := ChildNodes['NUMSEQ'].Text; ENT_ID_CODE_LAB := ChildNodes['ENT_ID_CODE_LAB'].Text; IDDEST := ChildNodes['IDDEST'].Text; IDFICHIER := ChildNodes['IDFICHIER'].Text; TYPE_EXPORT := ChildNodes['TYPE_EXPORT'].Text; VERSION := StrToInt(ChildNodes['VERSION'].Text); labelAction.Caption := 'Lecture des données...'; // c'est là qu'il faut faire le append dm.analyse.first; if not dm.analyse.locate('an_NUMSEQ',NUMSEQ,[]) then begin dm.analyse.Append; dm.analyse['an_NUMSEQ']:= NUMSEQ; dm.analyse['an_ENT_ID_CODE_LAB']:= ENT_ID_CODE_LAB; dm.analyse['an_IDDEST']:= IDDEST; dm.analyse['an_IDFICHIER']:= IDFICHIER; dm.analyse['an_TYPE_EXPORT']:= TYPE_EXPORT; dm.analyse['an_VERSION']:= VERSION; dm.analyse.Post; end; end; // <REM> with ChildNodes['REM'] do begin NUMSEQ1 := ChildNodes['NUMSEQ'].Text; ENT_ID_CODE_PRD := ChildNodes['ENT_ID_CODE_PRD'].Text; REM_MOIS_FACTURATION := ChildNodes['REM_MOIS_FACTURATION'].Text; RF_CRI_ID_CODE := ChildNodes['RF_CRI_ID_CODE'].Text; RF_TRM_ID_CODE := ChildNodes['RF_TRM_ID_CODE'].Text; ENT_ID_CODE_CA := ChildNodes['ENT_ID_CODE_CA'].Text; RF_ESP_ID_CODE := ChildNodes['RF_ESP_ID_CODE'].Text; RF_NAT_ID_CODE := ChildNodes['RF_NAT_ID_CODE'].Text; REM_RECIDIVE := ChildNodes['REM_RECIDIVE'].Text; REM_NOMBRE_RECIDIVE := StrToInt(ChildNodes['REM_NOMBRE_RECIDIVE'].Text); REM_PENALITE_MOIS := ChildNodes['REM_PENALITE_MOIS'].Text; REM_POUR_PAIEMENT := ChildNodes['REM_POUR_PAIEMENT'].Text; REM_DIFFUSION_PULL := ChildNodes['REM_DIFFUSION_PULL'].Text; RF_AIP_ID_CODE := ChildNodes['RF_AIP_ID_CODE'].Text; ENT_ID_CODE_CC := ChildNodes['ENT_ID_CODE_CC'].Text; REM_CLASSE_MENSUELLE := ChildNodes['REM_CLASSE_MENSUELLE'].Text; REM_RECLASSEMENT := ChildNodes['REM_RECLASSEMENT'].Text; REM_CLASSE_MENSUELLE_PAIE := ChildNodes['REM_CLASSE_MENSUELLE_PAIE'].Text; REM_NOTE_MENSUELLE := StrToInt(ChildNodes['REM_NOTE_MENSUELLE'].Text); REM_NOMBRE_MOIS := StrToInt(ChildNodes['REM_NOMBRE_MOIS'].Text); labelAction.Caption := 'Lecture des données...'; // c'est là qu'il faut faire le append dm.analyse.first; if not dm.analyse.locate('an_NUMSEQ',NUMSEQ,[]) then begin dm.analyse.Append; dm.analyse['an_NUMSEQ']:= NUMSEQ; dm.analyse['an_ENT_ID_CODE_PRD']:= ENT_ID_CODE_PRD; dm.analyse['an_REM_MOIS_FACTURATION']:= REM_MOIS_FACTURATION; dm.analyse['an_REM_NOMBRE_MOIS']:= REM_NOMBRE_MOIS; dm.analyse['an_RF_CRI_ID_CODE']:= RF_CRI_ID_CODE; dm.analyse['an_RF_TRM_ID_CODE']:= RF_TRM_ID_CODE; dm.analyse['an_ENT_ID_CODE_CA']:= ENT_ID_CODE_CA; dm.analyse['an_RF_ESP_ID_CODE']:= RF_ESP_ID_CODE; dm.analyse['an_RF_NAT_ID_CODE']:= RF_NAT_ID_CODE; dm.analyse['an_REM_RECIDIVE']:= REM_RECIDIVE; dm.analyse['an_REM_NOMBRE_RECIDIVE']:= REM_NOMBRE_RECIDIVE; dm.analyse['an_REM_PENALITE_MOIS']:= REM_PENALITE_MOIS; dm.analyse['an_REM_POUR_PAIEMENT']:= REM_POUR_PAIEMENT; dm.analyse['an_REM_DIFFUSION_PULL']:= REM_DIFFUSION_PULL; dm.analyse['an_REM_CLASSE_MENSUELLE']:= REM_CLASSE_MENSUELLE; dm.analyse['an_REM_RECLASSEMENT']:= REM_RECLASSEMENT; dm.analyse['an_REM_CLASSE_MENSUELLE_PAIE']:= REM_CLASSE_MENSUELLE_PAIE; dm.analyse['an_REM_NOTE_MENSUELLE']:= REM_NOTE_MENSUELLE; dm.analyse['an_REM_NOMBRE_MOIS']:= REM_NOMBRE_MOIS; dm.analyse.Post; end; // <RJM> with ChildNodes['RJM'] do begin NUMSEQ2 := ChildNodes['NUMSEQ'].Text; ECH_CODE_LABO := ChildNodes['ECH_CODE_LABO'].Text; RF_MET_ID_CODE := ChildNodes['RF_MET_ID_CODE'].Text; RF_CRI_ID_CODE := ChildNodes['RF_CRI_ID_CODE'].Text; REJ_DATE_ANALYSE := StrToDate(FormatDateTime('yyyymmdd',ChildNodes['REJ_DATE_ANALYSE'].Text)); REJ_MOIS_FACTURATION := StrToDate(FormatDateTime('yyyymmdd',ChildNodes['REJ_MOIS_FACTURATION'].Text)); RF_SRJ_ID_CODE := ChildNodes['RF_SRJ_ID_CODE'].Text; REJ_PENALISATION_JOUR := ChildNodes['REJ_PENALISATION_JOUR'].Text; REJ_DIFFUSION_PULL := ChildNodes['REJ_DIFFUSION_PULL'].Text; REJ_NOTE := StrToInt(ChildNodes['REJ_NOTE'].Text); REJ_UME_VALEUR_RES := StrToInt(ChildNodes['REJ_UME_VALEUR_RES'].Text); RF_UME_ID_CODE := ChildNodes['RF_UME_ID_CODE'].Text; labelAction.Caption := 'Lecture des données...'; // c'est là qu'il faut faire le append dm.analyse.first; if not dm.analyse.locate('an_NUMSEQ',NUMSEQ,[]) then begin dm.analyse.Append; dm.analyse['an_NUMSEQ']:= NUMSEQ; dm.analyse['an_ECH_CODE_LABO']:= ECH_CODE_LABO; dm.analyse['an_RF_MET_ID_CODE']:= RF_MET_ID_CODE; dm.analyse['an_RF_CRI_ID_CODE']:= RF_CRI_ID_CODE; dm.analyse['an_REJ_DATE_ANALYSE']:= REJ_DATE_ANALYSE; dm.analyse['an_REJ_MOIS_FACTURATION']:= REJ_MOIS_FACTURATION; dm.analyse['an_RF_SRJ_ID_CODE']:= RF_SRJ_ID_CODE; dm.analyse['an_REJ_PENALISATION_JOUR']:= REJ_PENALISATION_JOUR; dm.analyse['an_REJ_DIFFUSION_PULL']:= REJ_DIFFUSION_PULL; dm.analyse['an_REJ_NOTE']:= REJ_NOTE; dm.analyse['an_REJ_UME_VALEUR_RES']:= REJ_UME_VALEUR_RES; dm.analyse['an_RF_UME_ID_CODE']:= RF_UME_ID_CODE; dm.analyse.Post; end; end; end; // <ECM> with ChildNodes['ECM'] do begin NUMSEQ3 := ChildNodes['NUMSEQ'].Text; ECH_CODE_LABO := ChildNodes['ECH_CODE_LABO'].Text; ECH_CODE_INTERNE_LABO := ChildNodes['ECH_CODE_INTERNE_LABO'].Text; RF_ESP_ID_CODE := ChildNodes['RF_ESP_ID_CODE'].Text; RF_NAT_ID_CODE := ChildNodes['RF_NAT_ID_CODE'].Text; ENT_ID_CODE_CC := ChildNodes['ENT_ID_CODE_CC'].Text; TRN_ID_CODE := StrToInt(ChildNodes['TRN_ID_CODE'].Text); TOU_ID_NUMERO := StrToInt(ChildNodes['TOU_ID_NUMERO'].Text); TOU_ID_DATE_DEB := StrToDate(FormatDateTime('yyyymmdd',ChildNodes['TOU_ID_DATE_DEB'].Text)); ECH_DATE_PRELEV := StrToDate(FormatDateTime('yyyymmdd',ChildNodes['ECH_DATE_PRELEV'].Text)); ECH_DATE_COLLECTE := StrToDate(FormatDateTime('yyyymmdd',ChildNodes['ECH_DATE_COLLECTE'].Text)); ECH_RANG_PRELEV := StrToInt(ChildNodes['ECH_RANG_PRELEV'].Text); ECH_ORDRE_PRELEV := StrToInt(ChildNodes['ECH_ORDRE_PRELEV'].Text); ENT_ID_CODE_CA := ChildNodes['ENT_ID_CODE_CA'].Text; ENT_ID_CODE_PRD := ChildNodes['ENT_ID_CODE_PRD'].Text; RF_SEC_ID_CODE := ChildNodes['RF_SEC_ID_CODE'].Text; ECH_ANOMALIE := ChildNodes['ECH_ANOMALIE'].Text; ECH_COMMENTAIRE := ChildNodes['ECH_COMMENTAIRE'].Text; labelAction.Caption := 'Lecture des données...'; // c'est là qu'il faut faire le append dm.analyse.first; if not dm.analyse.locate('an_NUMSEQ',NUMSEQ,[]) then begin dm.analyse.Append; dm.analyse['an_NUMSEQ']:= NUMSEQ; dm.analyse['an_ECH_CODE_LABO']:= ECH_CODE_LABO; dm.analyse['an_ECH_CODE_INTERNE_LABO']:= ECH_CODE_INTERNE_LABO; dm.analyse['an_RF_ESP_ID_CODE']:= RF_ESP_ID_CODE; dm.analyse['an_RF_NAT_ID_CODE']:= RF_NAT_ID_CODE; dm.analyse['an_ENT_ID_CODE_CC']:= ENT_ID_CODE_CC; dm.analyse['an_TRN_ID_CODE']:= TRN_ID_CODE; dm.analyse['an_TOU_ID_NUMERO']:= TOU_ID_NUMERO; dm.analyse['an_TOU_ID_DATE_DEB']:= TOU_ID_DATE_DEB; dm.analyse['an_ECH_DATE_PRELEV']:= ECH_DATE_PRELEV; dm.analyse['an_ECH_DATE_COLLECTE']:= ECH_DATE_COLLECTE; dm.analyse['an_ECH_RANG_PRELEV']:= ECH_RANG_PRELEV; dm.analyse['an_ECH_ORDRE_PRELEV']:= ECH_ORDRE_PRELEV; dm.analyse['an_ENT_ID_CODE_CA']:= ENT_ID_CODE_CA; dm.analyse['an_ENT_ID_CODE_PRD']:= ENT_ID_CODE_PRD; dm.analyse['an_RF_SEC_ID_CODE']:= RF_SEC_ID_CODE; dm.analyse['an_ECH_ANOMALIE']:= ECH_ANOMALIE; dm.analyse['an_ECH_COMMENTAIRE']:= ECH_COMMENTAIRE; dm.analyse.Post; end; end; // <FIN> with ChildNodes['FIN'] do begin NUMSEQ4 := ChildNodes['NUMSEQ'].Text; NBENR := StrToInt(ChildNodes['NBENR'].Text); labelAction.Caption := 'Lecture des données...'; // c'est là qu'il faut faire le append dm.analyse.first; if not dm.analyse.locate('an_NUMSEQ',NUMSEQ,[]) then begin dm.analyse.Append; dm.analyse['an_NUMSEQ']:= NUMSEQ; dm.analyse['an_NBENR']:= NBENR; dm.analyse.Post; end; end; end; Doc.free; end; procedure Tanalyses.Button2Click(Sender: TObject); var cFile:TFileName; begin cFile:= chemin.Text; FillFromXML(cFile); end; end.
Java c'est pas de la menthe a l'eau
Et n'oubliez pas : Ne pas respirer tue...
Mon BLOOOUUUG Un site trop bien
Pour la recherche JAVA des liens pratiques :
GOOGLE LA JAVADOC LES FAQ LES ARCHIVES
Si tu as plusieurs noeuds de même niveau et de même nom, tu dois les énumérer. Je te renvoi à cette discussion qui contient deux exemples complets.
Ok, j'ai bien regardé et j'ai essayé de l'appliquer, mais le truc c'est qu'avec tous les niveaux que j'ai je m'y perds... J'ai du mal à savoir ou ouvrir mes boucles et ou les fermées...
Java c'est pas de la menthe a l'eau
Et n'oubliez pas : Ne pas respirer tue...
Mon BLOOOUUUG Un site trop bien
Pour la recherche JAVA des liens pratiques :
GOOGLE LA JAVADOC LES FAQ LES ARCHIVES
J'ai enfin trouver la solution avec l'aide d'un collègue : J'ai créé une table par nœuds, ce qui me facilite grandement la tache... merci à vous tous pour votre aide !
Java c'est pas de la menthe a l'eau
Et n'oubliez pas : Ne pas respirer tue...
Mon BLOOOUUUG Un site trop bien
Pour la recherche JAVA des liens pratiques :
GOOGLE LA JAVADOC LES FAQ LES ARCHIVES
salut
j'avais une appli à développer et j'ai utilisé ce
composant delphi que j'ai trouvé très simple d'utilisation
http://www.destructor.de/xmlparser/download.htm
J'ai un nouveaux problème concernant le même sujet, en fait lorsque je veux lire mes nœuds <RJM> je me retrouve à me planter puisque ma boucle n'est pas bonne. Je n'en sort jamais en fait, mais je ne comprends pas pourquoi... je poste mon code pour vous montrer...
En rappel, le nœud <RJM> est un enfant de <REM> et comporte lui même des enfants... En fait le traitement sur RJM il faudrait le faire tant que l'on trouve un nœud RJM et ensuite en sortir, et avec ce code, je pensais avoir trouvé comment faire mais ce n'est pas le cas. En fait je devrai faire deux passages puis sortir (étant donné que je n'ai que deux nœuds <RJM> ), or la je fais un troisième passage ou je récupérer les données ' ' (vide) et donc j'ai une erreur lors de l'écriture dans la base.
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
133
134
135
136
137 // <REM> REMnode := ChildNodes['REM']; nbrem := REMnode.AttributeNodes.Count; with REMnode do begin while REMnode <> nil do begin ENT_ID_CODE_PRD := ChildNodes['ENT_ID_CODE_PRD'].Text; REM_MOIS_FACTURATION := ChildNodes['REM_MOIS_FACTURATION'].Text; RF_CRI_ID_CODE := ChildNodes['RF_CRI_ID_CODE'].Text; RF_TRM_ID_CODE := ChildNodes['RF_TRM_ID_CODE'].Text; ENT_ID_CODE_CA := ChildNodes['ENT_ID_CODE_CA'].Text; RF_ESP_ID_CODE := ChildNodes['RF_ESP_ID_CODE'].Text; RF_NAT_ID_CODE := ChildNodes['RF_NAT_ID_CODE'].Text; REM_RECIDIVE := ChildNodes['REM_RECIDIVE'].Text; REM_NOMBRE_RECIDIVE := StrToInt(ChildNodes['REM_NOMBRE_RECIDIVE'].Text); REM_PENALITE_MOIS := ChildNodes['REM_PENALITE_MOIS'].Text; REM_POUR_PAIEMENT := ChildNodes['REM_POUR_PAIEMENT'].Text; REM_DIFFUSION_PULL := ChildNodes['REM_DIFFUSION_PULL'].Text; RF_AIP_ID_CODE := ChildNodes['RF_AIP_ID_CODE'].Text; ENT_ID_CODE_CC := ChildNodes['ENT_ID_CODE_CC'].Text; if ChildNodes['REM_CLASSE_MENSUELLE'].Text = '' then begin REM_CLASSE_MENSUELLE := ' '; end else begin REM_CLASSE_MENSUELLE := ChildNodes['REM_CLASSE_MENSUELLE'].Text; end; REM_RECLASSEMENT := ChildNodes['REM_RECLASSEMENT'].Text; if ChildNodes['REM_CLASSE_MENSUELLE_PAIE'].Text = '' then begin REM_CLASSE_MENSUELLE_PAIE := ' '; end else begin REM_CLASSE_MENSUELLE_PAIE := ChildNodes['REM_CLASSE_MENSUELLE_PAIE'].Text; end; REM_NOTE_MENSUELLE := StrToInt(ChildNodes['REM_NOTE_MENSUELLE'].Text); if ChildNodes['REM_VALEUR_RES_MENS'].Text = '' then begin REM_VALEUR_RES_MENS := 0; end else begin REM_VALEUR_RES_MENS := StrToInt(ChildNodes['REM_VALEUR_RES_MENS'].Text); end; if ChildNodes['RF_UME_ID_CODE'].Text = '' then begin RF_UME_ID_CODE := ' '; end else begin RF_UME_ID_CODE := ChildNodes['RF_UME_ID_CODE'].Text; end; REM_NOMBRE_MOIS := StrToInt(ChildNodes['REM_NOMBRE_MOIS'].Text); labelAction.Caption := 'Lecture des données...'; // c'est là qu'il faut faire le append dm.rem.Append; dm.rem['ENT_ID_CODE_PRD']:= ENT_ID_CODE_PRD; dm.rem['REM_MOIS_FACTURATION']:= REM_MOIS_FACTURATION; dm.rem['REM_NOMBRE_MOIS']:= REM_NOMBRE_MOIS; dm.rem['RF_CRI_ID_CODE']:= RF_CRI_ID_CODE; dm.rem['RF_TRM_ID_CODE']:= RF_TRM_ID_CODE; dm.rem['ENT_ID_CODE_CA']:= ENT_ID_CODE_CA; dm.rem['RF_ESP_ID_CODE']:= RF_ESP_ID_CODE; dm.rem['RF_NAT_ID_CODE']:= RF_NAT_ID_CODE; dm.rem['REM_RECIDIVE']:= REM_RECIDIVE; dm.rem['REM_NOMBRE_RECIDIVE']:= REM_NOMBRE_RECIDIVE; dm.rem['REM_PENALITE_MOIS']:= REM_PENALITE_MOIS; dm.rem['REM_POUR_PAIEMENT']:= REM_POUR_PAIEMENT; dm.rem['REM_DIFFUSION_PULL']:= REM_DIFFUSION_PULL; dm.rem['REM_CLASSE_MENSUELLE']:= REM_CLASSE_MENSUELLE; dm.rem['REM_RECLASSEMENT']:= REM_RECLASSEMENT; dm.rem['REM_CLASSE_MENSUELLE_PAIE']:= REM_CLASSE_MENSUELLE_PAIE; dm.rem['REM_NOTE_MENSUELLE']:= REM_NOTE_MENSUELLE; dm.rem['REM_NOMBRE_MOIS']:= REM_NOMBRE_MOIS; dm.rem['RF_UME_ID_CODE']:= RF_UME_ID_CODE; dm.rem['REM_VALEUR_RES_MENS']:= REM_VALEUR_RES_MENS; dm.rem['REM_NOMFICHIER']:= NOMFICHIER; dm.rem.Post; dm.rem.close; dm.rem.open; dm.rem.next; // <RJM> RJMnode := ChildNodes['RJM']; nbrjm := RJMnode.AttributeNodes.Count; with RJMnode do begin while RJMnode <> nil do begin ECH_CODE_LABO := ChildNodes['ECH_CODE_LABO'].Text; RF_MET_ID_CODE := ChildNodes['RF_MET_ID_CODE'].Text; RF_CRI_ID_CODE := ChildNodes['RF_CRI_ID_CODE'].Text; REJ_DATE_ANALYSE := ChildNodes['REJ_DATE_ANALYSE'].Text; REJ_MOIS_FACTURATION := ChildNodes['REJ_MOIS_FACTURATION'].Text; RF_SRJ_ID_CODE := ChildNodes['RF_SRJ_ID_CODE'].Text; REJ_PENALISATION_JOUR := ChildNodes['REJ_PENALISATION_JOUR'].Text; REJ_DIFFUSION_PULL := ChildNodes['REJ_DIFFUSION_PULL'].Text; REJ_NOTE := ChildNodes['REJ_NOTE'].Text; REJ_UME_VALEUR_RES := StrToInt(ChildNodes['REJ_UME_VALEUR_RES'].Text); RF_UME_ID_CODE := ChildNodes['RF_UME_ID_CODE'].Text; RJM_IDREM := dm.rem['ID_REM']; labelAction.Caption := 'Lecture des données...'; // c'est là qu'il faut faire le append dm.rjm.Append; dm.rjm['ECH_CODE_LABO']:= ECH_CODE_LABO; dm.rjm['RF_MET_ID_CODE']:= RF_MET_ID_CODE; dm.rjm['RF_CRI_ID_CODE']:= RF_CRI_ID_CODE; dm.rjm['REJ_DATE_ANALYSE']:= REJ_DATE_ANALYSE; dm.rjm['REJ_MOIS_FACTURATION']:= REJ_MOIS_FACTURATION; dm.rjm['RF_SRJ_ID_CODE']:= RF_SRJ_ID_CODE; dm.rjm['REJ_PENALISATION_JOUR']:= REJ_PENALISATION_JOUR; dm.rjm['REJ_DIFFUSION_PULL']:= REJ_DIFFUSION_PULL; dm.rjm['REJ_NOTE']:= REJ_NOTE; dm.rjm['REJ_UME_VALEUR_RES']:= REJ_UME_VALEUR_RES; dm.rjm['RF_UME_ID_CODE']:= RF_UME_ID_CODE; dm.rjm['RJM_IDREM']:= RJM_IDREM; dm.rjm.Post; RJMnode := RJMnode.NextSibling; end; end; REMnode := REMnode.NextSibling; end; end;
Merci d'avance de votre aide !
Java c'est pas de la menthe a l'eau
Et n'oubliez pas : Ne pas respirer tue...
Mon BLOOOUUUG Un site trop bien
Pour la recherche JAVA des liens pratiques :
GOOGLE LA JAVADOC LES FAQ LES ARCHIVES
NextSibling te renvoi le prochain noeud de même niveau. S'appelle-t-il 'RJM' ? Mystère. (Il pourrait même s'agir d'un noeud commentaire... )
Oui je sais que nextsibling me renvois le prochain nœud, et une exception si il n'en trouve pas... Dans mon cas, il n'y a pas de nœuds suivant (de même niveau)
Java c'est pas de la menthe a l'eau
Et n'oubliez pas : Ne pas respirer tue...
Mon BLOOOUUUG Un site trop bien
Pour la recherche JAVA des liens pratiques :
GOOGLE LA JAVADOC LES FAQ LES ARCHIVES
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager