|
| Iniciado por Yann LE GOUADEC, 27,nov. 2018 17:47 - No hay respuesta |
| |
| | | |
|
| |
Miembro registrado 1 mensaje |
|
| Publicado el 27,noviembre 2018 - 17:47 |
Bonjour à tous,
je vous sollicite pour un aide sur la création d'un xml.
A partir d'une table alimentée par une requete (acces natif sql) j'ai besoin de créer un xml. Je me suis inspiré du code présent dans un sujet par Philippe SB.
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.
Je m'explique, à partir de la requête 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 :
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 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 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
Je dois obtenir le fichier xml :
<?xml version="1.0" encoding="UTF-8"?> <FACTURES> <VERS>2</VERS> <TVAEUR>IT12345678901</TVAEUR> <NBRFAC>3</NBRFAC> <TOTMTT>4285.94</TOTMTT> <IMPORT> <IDIMP>TVACLIENT1</IDIMP> <NOMIMP>CLIENT1</NOMIMP> <CODCLI>CODECLIENT1</CODCLI> <ADRIMP> <ADR1>ADRESSE 1 CLIENT1</ADR1> <ADR2>COMPLEMENT1 CLIENT1</ADR2> <CP>CP1 CLIENT1</CP> <VILLE>VILLE 1 CLIENT1</VILLE> <PAYS>PAYS 1 CLIENT1</PAYS> </ADRIMP> <EMAIL>mail CLIENT1</EMAIL> <IBANIMP>iban CLIENT1</IBANIMP> <RIBIMP></RIBIMP> <MODREGIMP>SDD</MODREGIMP> <SDDRUM></SDDRUM> <SDDPAI></SDDPAI> <DATERUM></DATERUM> <BIC></BIC> <FACTURE> <NUMFAC>FA036584</NUMFAC> <DATEFACT>181126</DATEFACT> <DATEECH>190125</DATEECH> <PAYSRGT>PAYS 1 CLIENT1</PAYSRGT> <MODREG>CHQ</MODREG> <DEVISE>EUR</DEVISE> <MTFACT>643.76</MTFACT> <IBANCRED>iban CLIENT1</IBANCRED> </FACTURE> <FACTURE> <NUMFAC>FA036583</NUMFAC> <DATEFACT>181126</DATEFACT> <DATEECH>190125</DATEECH> <PAYSRGT>PAYS 1 CLIENT1</PAYSRGT> <MODREG>LSA</MODREG> <DEVISE>EUR</DEVISE> <MTFACT>500.00</MTFACT> <IBANCRED>iban CLIENT1</IBANCRED> </FACTURE> </IMPORT> <IMPORT> <IDIMP>TVACLIENT2</IDIMP> <NOMIMP>CLIENT2</NOMIMP> <CODCLI>CODECLIENT2</CODCLI> <ADRIMP> <ADR1>ADRESSE 1 CLIENT2</ADR1> <ADR2>COMPLEMENT1 CLIENT2</ADR2> <CP>CP1 CLIENT2</CP> <VILLE>VILLE 1 CLIENT2</VILLE> <PAYS>PAYS 1 CLIENT2</PAYS> </ADRIMP> <RIBIMP>iban CLIENT2</RIBIMP> <MODREGIMP>VIR</MODREGIMP> <FACTURE> <NUMFAC>FA036582</NUMFAC> <DATEFACT>181126</DATEFACT> <DATEECH>190125</DATEECH> <PAYSRGT>PAYS 1 CLIENT2</PAYSRGT> <MODREG>VIR</MODREG> <DEVISE>EUR</DEVISE> <MTFACT>3142.18</MTFACT> <IBANCRED>iban CLIENT2</IBANCRED> </FACTURE> </IMPORT> </FACTURES>
pour cela, j'utilise ce fichier modele.xml après l'avoir importé dans la Description :

Le code que j'ai commencé à faire :
nIndiceImport est entier
MonXML est un xmlDocument <Description="MODELE"> MonImport est un xmlNoeud,Description="MODELE.IMPORT"
MonXML.FACTURES.VERS = "2" MonXML.FACTURES.TVAEUR = "FR"
reqnbfactures est une Requête SQL = [ SELECT COUNT(cbMarq) AS NBRFAC FROM FACTURES ] SI PAS HExécuteRequête(reqnbfactures,hRequêteDéfaut) ALORS Info("Erreur lors de l'éxécution de la requête "+ErreurInfo()) SINON HLitPremier(reqnbfactures) POUR TOUT reqnbfactures MonXML.FACTURES.NBRFAC = reqnbfactures.NBRFAC FIN FIN
reqmtremise est une Requête SQL = [ SELECT SUM(Montant_Facture) AS TOTMTT FROM FACTURES ] SI PAS HExécuteRequête(reqmtremise,hRequêteDéfaut) ALORS Info("Erreur lors de l'éxécution de la requête "+ErreurInfo()) SINON HLitPremier(reqmtremise) POUR TOUT reqmtremise MonXML.FACTURES.TOTMTT = reqmtremise.TOTMTT FIN FIN
reqcliregroupement est une Requête SQL = [ SELECT TVA, Code_Client, Raison_Sociale, Adresse, Complement, Code_Postal, Ville, Pays FROM FACTURES GROUP BY TVA, Code_Client, Raison_Sociale, Adresse, Complement, Code_Postal, Ville, Pays ]
SI PAS HExécuteRequête(reqcliregroupement,hRequêteDéfaut) ALORS Info("Erreur lors de l'éxécution de la requête "+ErreurInfo()) SINON HLitPremier(reqcliregroupement)
POUR TOUT reqcliregroupement nIndiceImport++ MonImport.IDIMP = reqcliregroupement.TVA MonImport.NOMIP=reqcliregroupement.Raison_Sociale MonImport.CODCLI=reqcliregroupement.Code_Client
FIN MonXML.FACTURES.IMPORT[nIndiceImport] = MonImport FIN
XMLSauve(MonXML,fRepExe()+"\test.xml",XMLMiseEnForme)
Info("Création du fichier terminé")
Quand je le teste, j'ai cette erreur :
"Erreur à la ligne 69 du traitement Clic sur BTN_TEST_CREATION_XML. Indice de sous-élément incorrect : vous accédez au sous-élément 2 alors qu'il y a 0 sous-éléments"
Je n'arrive pas à comprendre ce qui ne vas pas (je suis débutant sur windev).
Et pour insérez les noeuds <ADRIMP> du noeud <IMPORT> ainsi que <FACTURE>, je n'y arrive pas.
Merci de votre aide.
-- Yann LE GOUADECMensaje modificado, 27,noviembre 2018 - 17:48 |
| |
| |
| | | |
|
| | | | |
| | |
|