<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><category>pcsoft.fr.windev</category><copyright>Copyright 2026, PC SOFT</copyright><lastBuildDate>27 Nov 2018 17:47:46 Z</lastBuildDate><pubDate>27 Nov 2018 17:47:46 Z</pubDate><description>Bonjour à tous, &#13;
&#13;
je vous sollicite pour un aide sur la création d'un xml.&#13;
&#13;
A partir d'une table alimentée par une requete (acces natif sql) j'ai besoin de créer un xml.&#13;
Je me suis inspiré du code présent dans un sujet par Philippe SB.&#13;
&#13;
Je rencontre 2 soucis, le premier est un message d'erreur (voir ci -dessous), le second est que je n'arrive pas à mettre un noeud fils.&#13;
&#13;
Je m'explique,  à partir de la requête &#13;
Select TVA,Raison_Sociale,Code,Adresse,Complement,CP,VIlle,Pays,Mail, IBAN,Numero_Facture,Date_Facture,Date_Echeance,Code_Rgt,Devise,Montant_Facture from FACTURE, on obtient comme exemple de résultat :&#13;
&#13;
TVACLIENT1,CLIENT1,CODECLIENT1,ADRESSE 1 CLIENT1,COMPLEMENT1 CLIENT1,VILLE1 CLIENT1,PAYS CLIENT1,mail CLIENT1, iban client1,FA036584,26/11/2018,25/01/2019,CHQ,EUR,643.76&#13;
TVACLIENT1,CLIENT1,CODECLIENT1,ADRESSE 1 CLIENT1,COMPLEMENT1 CLIENT1,VILLE1 CLIENT1,PAYS CLIENT1,mail CLIENT1, iban client1,FA036586,26/11/2018,25/01/2019,LSA,EUR,500.00&#13;
TVACLIENT2,CLIENT2,CODECLIENT2,ADRESSE 1 CLIENT2,COMPLEMENT1 CLIENT2,VILLE1 CLIENT2,PAYS CLIENT2,mail CLIENT2, iban client2,FA036582,26/11/2018,25/01/2019,VIR,EUR,3142.18&#13;
&#13;
Je dois obtenir le fichier xml :&#13;
&#13;
&#13;
[code:xml]&#13;
&lt;?xml version="1.0" encoding="UTF-8"?&gt;&#13;
&lt;FACTURES&gt;&#13;
	&lt;VERS&gt;2&lt;/VERS&gt;&#13;
	&lt;TVAEUR&gt;IT12345678901&lt;/TVAEUR&gt;&#13;
	&lt;NBRFAC&gt;3&lt;/NBRFAC&gt;&#13;
	&lt;TOTMTT&gt;4285.94&lt;/TOTMTT&gt;&#13;
	&lt;IMPORT&gt;&#13;
			&lt;IDIMP&gt;TVACLIENT1&lt;/IDIMP&gt;&#13;
			&lt;NOMIMP&gt;CLIENT1&lt;/NOMIMP&gt;&#13;
			&lt;CODCLI&gt;CODECLIENT1&lt;/CODCLI&gt;&#13;
			&lt;ADRIMP&gt;&#13;
					&lt;ADR1&gt;ADRESSE 1 CLIENT1&lt;/ADR1&gt;&#13;
					&lt;ADR2&gt;COMPLEMENT1 CLIENT1&lt;/ADR2&gt;&#13;
					&lt;CP&gt;CP1 CLIENT1&lt;/CP&gt;&#13;
					&lt;VILLE&gt;VILLE 1 CLIENT1&lt;/VILLE&gt;&#13;
					&lt;PAYS&gt;PAYS 1 CLIENT1&lt;/PAYS&gt;&#13;
			&lt;/ADRIMP&gt;&#13;
			&lt;EMAIL&gt;mail CLIENT1&lt;/EMAIL&gt;&#13;
			&lt;IBANIMP&gt;iban CLIENT1&lt;/IBANIMP&gt;&#13;
			&lt;RIBIMP&gt;&lt;/RIBIMP&gt;&#13;
			&lt;MODREGIMP&gt;SDD&lt;/MODREGIMP&gt;&#13;
			&lt;SDDRUM&gt;&lt;/SDDRUM&gt;&#13;
			&lt;SDDPAI&gt;&lt;/SDDPAI&gt;&#13;
			&lt;DATERUM&gt;&lt;/DATERUM&gt;&#13;
			&lt;BIC&gt;&lt;/BIC&gt;&#13;
			&lt;FACTURE&gt;&#13;
					&lt;NUMFAC&gt;FA036584&lt;/NUMFAC&gt;&#13;
					&lt;DATEFACT&gt;181126&lt;/DATEFACT&gt;&#13;
					&lt;DATEECH&gt;190125&lt;/DATEECH&gt;&#13;
					&lt;PAYSRGT&gt;PAYS 1 CLIENT1&lt;/PAYSRGT&gt;&#13;
					&lt;MODREG&gt;CHQ&lt;/MODREG&gt;&#13;
					&lt;DEVISE&gt;EUR&lt;/DEVISE&gt;&#13;
					&lt;MTFACT&gt;643.76&lt;/MTFACT&gt;&#13;
					&lt;IBANCRED&gt;iban CLIENT1&lt;/IBANCRED&gt;&#13;
			&lt;/FACTURE&gt;&#13;
			&lt;FACTURE&gt;&#13;
					&lt;NUMFAC&gt;FA036583&lt;/NUMFAC&gt;&#13;
					&lt;DATEFACT&gt;181126&lt;/DATEFACT&gt;&#13;
					&lt;DATEECH&gt;190125&lt;/DATEECH&gt;&#13;
					&lt;PAYSRGT&gt;PAYS 1 CLIENT1&lt;/PAYSRGT&gt;&#13;
					&lt;MODREG&gt;LSA&lt;/MODREG&gt;&#13;
					&lt;DEVISE&gt;EUR&lt;/DEVISE&gt;&#13;
					&lt;MTFACT&gt;500.00&lt;/MTFACT&gt;&#13;
					&lt;IBANCRED&gt;iban CLIENT1&lt;/IBANCRED&gt;&#13;
			&lt;/FACTURE&gt;&#13;
	&lt;/IMPORT&gt;&#13;
	&lt;IMPORT&gt;&#13;
			&lt;IDIMP&gt;TVACLIENT2&lt;/IDIMP&gt;&#13;
			&lt;NOMIMP&gt;CLIENT2&lt;/NOMIMP&gt;&#13;
			&lt;CODCLI&gt;CODECLIENT2&lt;/CODCLI&gt;&#13;
			&lt;ADRIMP&gt;&#13;
					&lt;ADR1&gt;ADRESSE 1 CLIENT2&lt;/ADR1&gt;&#13;
					&lt;ADR2&gt;COMPLEMENT1 CLIENT2&lt;/ADR2&gt;&#13;
					&lt;CP&gt;CP1 CLIENT2&lt;/CP&gt;&#13;
					&lt;VILLE&gt;VILLE 1 CLIENT2&lt;/VILLE&gt;&#13;
					&lt;PAYS&gt;PAYS 1 CLIENT2&lt;/PAYS&gt;&#13;
			&lt;/ADRIMP&gt;&#13;
			&lt;RIBIMP&gt;iban CLIENT2&lt;/RIBIMP&gt;&#13;
			&lt;MODREGIMP&gt;VIR&lt;/MODREGIMP&gt;&#13;
			&lt;FACTURE&gt;&#13;
					&lt;NUMFAC&gt;FA036582&lt;/NUMFAC&gt;&#13;
					&lt;DATEFACT&gt;181126&lt;/DATEFACT&gt;&#13;
					&lt;DATEECH&gt;190125&lt;/DATEECH&gt;&#13;
					&lt;PAYSRGT&gt;PAYS 1 CLIENT2&lt;/PAYSRGT&gt;&#13;
					&lt;MODREG&gt;VIR&lt;/MODREG&gt;&#13;
					&lt;DEVISE&gt;EUR&lt;/DEVISE&gt;&#13;
					&lt;MTFACT&gt;3142.18&lt;/MTFACT&gt;&#13;
					&lt;IBANCRED&gt;iban CLIENT2&lt;/IBANCRED&gt;&#13;
			&lt;/FACTURE&gt;&#13;
	&lt;/IMPORT&gt;&#13;
&lt;/FACTURES&gt;&#13;
[/code]&#13;
&#13;
pour cela, j'utilise ce fichier modele.xml après l'avoir importé dans la Description :&#13;
&#13;
https://hostimage.windev.io/images/description_696792c0be61ced616acd713543742fe.png&#13;
&#13;
Le code que j'ai commencé à faire :&#13;
&#13;
[code:wl]&#13;
nIndiceImport est entier&#13;
&#13;
MonXML est un xmlDocument &lt;description="MODELE"&gt;&#13;
MonImport est un xmlNoeud,description="MODELE.IMPORT"	&#13;
&#13;
MonXML.FACTURES.VERS = "2"&#13;
MonXML.FACTURES.TVAEUR = "FR"&#13;
&#13;
//Récupération du nombre de facture de la remise&#13;
&#13;
reqnbfactures est une Requête SQL = &#13;
[&#13;
	SELECT COUNT(cbMarq) AS NBRFAC FROM FACTURES&#13;
]&#13;
SI PAS HExécuteRequête(reqnbfactures,hRequêteDéfaut) ALORS&#13;
	Info("Erreur lors de l'éxécution de la requête "+ErreurInfo())&#13;
SINON&#13;
	HLitPremier(reqnbfactures)&#13;
	POUR TOUT reqnbfactures&#13;
		MonXML.FACTURES.NBRFAC = reqnbfactures.NBRFAC&#13;
		&#13;
	FIN&#13;
FIN&#13;
&#13;
//Récupération du total de la remise&#13;
reqmtremise est une Requête SQL = &#13;
[&#13;
	SELECT SUM(Montant_Facture) AS TOTMTT FROM FACTURES&#13;
]&#13;
SI PAS HExécuteRequête(reqmtremise,hRequêteDéfaut) ALORS&#13;
	Info("Erreur lors de l'éxécution de la requête "+ErreurInfo())&#13;
SINON&#13;
	HLitPremier(reqmtremise)&#13;
	POUR TOUT reqmtremise &#13;
		MonXML.FACTURES.TOTMTT = reqmtremise.TOTMTT&#13;
	&#13;
	FIN&#13;
FIN&#13;
&#13;
&#13;
reqcliregroupement est une Requête SQL = &#13;
[&#13;
	SELECT  TVA, Code_Client, Raison_Sociale, Adresse, Complement, Code_Postal, Ville, Pays &#13;
	FROM   FACTURES&#13;
	GROUP BY TVA, Code_Client, Raison_Sociale, Adresse, Complement, Code_Postal, Ville, Pays&#13;
]&#13;
&#13;
SI PAS HExécuteRequête(reqcliregroupement,hRequêteDéfaut) ALORS&#13;
	Info("Erreur lors de l'éxécution de la requête "+ErreurInfo())&#13;
SINON&#13;
	HLitPremier(reqcliregroupement) &#13;
&#13;
	POUR TOUT reqcliregroupement&#13;
	nIndiceImport++&#13;
	MonImport.IDIMP = reqcliregroupement.TVA&#13;
	MonImport.NOMIP=reqcliregroupement.Raison_Sociale&#13;
	MonImport.CODCLI=reqcliregroupement.Code_Client&#13;
&#13;
	FIN&#13;
	&#13;
	MonXML.FACTURES.IMPORT[nIndiceImport] = MonImport&#13;
	&#13;
FIN&#13;
&#13;
XMLSauve(MonXML,fRepExe()+"\test.xml",XMLMiseEnForme)&#13;
&#13;
Info("Création du fichier terminé")&#13;
[/code]&#13;
&#13;
Quand je le teste, j'ai cette erreur :&#13;
&#13;
"Erreur à la ligne 69 du traitement Clic sur BTN_TEST_CREATION_XML.&#13;
Indice de sous-élément incorrect : vous accédez au sous-élément 2 alors qu'il y a 0 sous-éléments"&#13;
&#13;
Je n'arrive pas à comprendre ce qui ne vas pas (je suis débutant sur windev).&#13;
&#13;
Et pour insérez les noeuds &lt;ADRIMP&gt; du noeud &lt;IMPORT&gt; ainsi que &lt;FACTURE&gt;, je n'y arrive pas.&#13;
&#13;
Merci de votre aide.&#13;
&#13;
--&#13;
Yann LE GOUADEC</description><ttl>30</ttl><generator>WEBDEV</generator><language>fr_FR</language><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/222249-aide-creation-xml/read.awp</link><title>AIDE CREATION XML</title><managingEditor>moderateur@pcsoft.fr (El moderador)</managingEditor><webMaster>webmaster@pcsoft.fr (El webmaster)</webMaster></channel></rss>
