Bonjour,
Malgre la touche "F1" et mon pot "Google" je n'ai pas vu de solution a mon probleme.
Je dois importer des Tickets au format XML :
La partie "Article" ne me pose pas de probleme puisque je connais le nombre de ligne, je bute dans la partie "Encaissement"
le nombres de lignes ne sont pas numerote :
Voici la structure XML :
/* je bute sur Ticket/Bilan/Encaissements */
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 <?xml version="1.0"?> <ticket version="1" numero="10182" caisse="8"> <entete> <creation> <date>07/06/2015</date> <heure>11:18:10</heure> </creation> </entete> <lignes nombre="4"> <article numero="1" quantite="2.000" valeur="9.90">VIN DIVERS</article> <article numero="2" quantite="2.000" valeur="13.50">VIN DIVERS</article> <article numero="3" quantite="1.000" valeur="8.10">SODA</article> <article numero="4" quantite="1.000" valeur="8.10">SODA</article> </lignes> <bilan montantTTC="63.00"> <tvas montantTaxes="8.64"> <tva taux="20.00" base="46.80" nombre="4.000">7.80</tva> <tva taux="5.50" base="16.20" nombre="2.000">0.84</tva> </tvas> <encaissements montantEncaisse="63.00"> <encaissement mode="ESPECES" nombre="1">11.00</encaissement> <encaissement mode="ESPECES" nombre="1">11.00</encaissement> <encaissement mode="CHEQUE" nombre="1">41.00</encaissement> </encaissements> </bilan> </ticket>
Voici mon code (qui ne pose aucun souci) pour recuperer les articles :
Je vous remercie d'avance pour votre aide ou vos suggestions.
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 var Node: IXMLNode; n: Integer; designation, fiche, prix, qt, tva: string; begin XMLDoc.Active := False; XMLDoc.XML.Clear; XMLDoc.XML.Append(Memo1.Text); //Memo qui contient le XML XMLDoc.Active := True; Node := XMLDoc.ChildNodes.Nodes['ticket'].ChildNodes.Nodes['lignes']; for n := 0 to Node.ChildNodes.Count - 1 do begin code := Node.ChildNodes.Nodes[n].GetAttributeNS('code', ''); qt := Node.ChildNodes.Nodes[n].GetAttributeNS('quantite', ''); prix := Node.ChildNodes.Nodes[n].GetAttributeNS('valeur', ''); tva := Node.ChildNodes.Nodes[n].GetAttributeNS('tva', ''); designation := PremiereMajuscule(Node.ChildNodes.Nodes[n].Text); ... code ..... end; ....
Beau temps belle mer
Jorgio
Partager