PROFESSIONAL NEWSGROUPS
WINDEV
,
WEBDEV
and
WINDEV Mobile
Home
|
Recent messages
|
Connect
|
Sign out
|
English
Home
→
WINDEV (earlier versions)
→
Boucle dans un fichier xml
Boucle dans un fichier xml
Started by Alain G., Sep., 02 2024 12:14 PM - 3 replies
Connect yourself…
Alain G.
#1
Registered member
10 messages
Posted on September, 02 2024 - 12:14 PM
Bonjour,
Je dois coder une boucle dans un fichier xml afin de lister les différents taux de tva dans une facture. Pour ce faire j'ai créé un fichier avec les lignes de la facture totalisées par pourcentage de tva. J'ai donc procédé à la lecture du fichier.
Voici le résultat de ma programmation
<
cac
:
TaxTotal
>
<
cbc
:
TaxAmount
currencyID
=
"EUR"
>
9.92
<
/
cbc
:
TaxAmount
>
<
cac
:
TaxSubtotal
>
<
cbc
:
TaxableAmount
currencyID
=
"EUR"
>
47.23
<
/
cbc
:
TaxableAmount
>
<
cbc
:
TaxAmount
currencyID
=
"EUR"
>
9.92
<
/
cbc
:
TaxAmount
>
<
cac
:
TaxCategory
>
<
cbc
:
ID
/
>
<
cbc
:
Percent
>
21
<
/
cbc
:
Percent
>
<
cbc
:
TaxExemptionReasonCode
/
>
<
cbc
:
TaxExemptionReason
/
>
<
cac
:
TaxScheme
>
<
cbc
:
ID
>
VAT
<
/
cbc
:
ID
>
<
/
cac
:
TaxScheme
>
<
/
cac
:
TaxCategory
>
<
/
cac
:
TaxSubtotal
>
<
/
cac
:
TaxTotal
>
Voici le bout de code créé
HLitPremier
(
TEMPTAUXLIGNEFAC
,
TAUXTVAFACTURE
)
TANTQUE PAS
HEnDehors
(
TEMPTAUXLIGNEFAC
)
el_invoice
.
'
cac
:
TaxTotal
'
.
'
cac
:
TaxSubtotal
'
.
'
cbc
:
TaxableAmount
' =
TEMPTAUXLIGNEFAC.BASETVAFACTURE
//MONTANT BASE TVA POUR CE TAUX
x
Attribut.Nom
=
"currencyID"
x
Attribut
..
Valeur
=
"EUR"
Ajoute
(
el_invoice
.
'
cac
:
TaxTotal
'
.
'
cac
:
TaxSubtotal
'
.
'
cbc
:
TaxableAmount
'
..
Attribut
,
x
Attribut
)
gmo
Calcpartauxtva
=
Arrondi
(
TEMPTAUXLIGNEFAC.BASETVAFACTURE
* (
TEMPTAUXLIGNEFAC.TAUXTVAFACTURE
/
100
)
,
2
)
el_invoice
.
'
cac
:
TaxTotal
'
.
'
cac
:
TaxSubtotal
'
.
'
cbc
:
TaxAmount
'
=
gmo
Calcpartauxtva
// MONTANT TVA POUR CE TAUX
x
Attribut.Nom
=
"currencyID"
x
Attribut
..
Valeur
=
"EUR"
Ajoute
(
el_invoice
.
'
cac
:
TaxTotal
'
.
'
cac
:
TaxSubtotal
'
.
'
cbc
:
TaxAmount
'
..
Attribut
,
x
Attribut
)
el_invoice
.
'
cac
:
TaxTotal
'
.
'
cac
:
TaxSubtotal
'
.
'
cac
:
TaxCategory
'
.
'
cbc
:
ID
' =
""
//CODE DE LA TVA POUR CE TAUX
el_invoice
.
'
cac
:
TaxTotal
'
.
'
cac
:
TaxSubtotal
'
.
'
cac
:
TaxCategory
'
.
'
cbc
:
Percent
'
=
TEMPTAUXLIGNEFAC.TAUXTVAFACTURE
//POURCENTAGE DE TVA POUR CE TAUX
el_invoice
.
'
cac
:
TaxTotal
'
.
'
cac
:
TaxSubtotal
'
.
'
cac
:
TaxCategory
'
.
'
cbc
:
TaxExemptionReasonCode
' =
""
//CODE POUR EXEMPTION POUR CE TAUX
el_invoice
.
'
cac
:
TaxTotal
'
.
'
cac
:
TaxSubtotal
'
.
'
cac
:
TaxCategory
'
.
'
cbc
:
TaxExemptionReason
'
=
""
//MOTIF POUR EXEMPTION POUR CE TAUX
el_invoice
.
'
cac
:
TaxTotal
'
.
'
cac
:
TaxSubtotal
'
.
'
cac
:
TaxCategory
'
.
'
cac
:
TaxScheme
'
.
'
cbc
:
ID
'
=
"VAT"
HLitSuivant
(
TEMPTAUXLIGNEFAC
,
TAUXTVAFACTURE
)
FIN
Voici le message d'erreur que j'obtiens
L'attribut 'currencyID' existe déjà dans le noeud.
Deux attributs portant le même nom et le même namespace ne peuvent exister au sein d'un même noeud.
Pile des appels :
Procédure locale Facture_électronique (FEN_TEST_FACTURATION_ELECTRONIQUE.PROCEDURE.Facture_électronique), ligne 243
Clic sur BTN_TEST (FEN_TEST_FACTURATION_ELECTRONIQUE.BTN_TEST), ligne 1
Date : 02/09/2024 11:01:28
Projet : facture2 (26.011)
Informations supplémentaires :
Code erreur : 40034
Module : wd260xml.dll (01F260101d - 26.0.276.2)
Informations de débogage :
Fonction (0,191)
EIT_TYPE_WDFILE : <2>
EIT_IDCODE : <458752>
Pouvez-vous m'aider à créer cette boucle ?
Merci d'avance.
Alain
Report
0
0
Voroltinquo
#2
Registered member
4,065 messages
Popularité : +227 (347 votes)
Posted on September, 02 2024 - 10:02 PM
Bonjour,
As-tu pensé à la sérialisation pour obtenir ton XML ?
--
Il y a peut être plus simple, mais, ça tourne
Report
0
0
Alain G.
#3
Registered member
10 messages
Posted on September, 03 2024 - 10:33 AM
Bonjour et merci pour la réponse.
Je n'ai jamais utilisé la sérialisation.
J'ai un peu regardé la fonction mais je ne vois pas comment l'appliquer dans ce cas.
J'ai déjà presque pu résoudre mes problèmes de fichier xml avec l'aide d'un membre du groupe et je ne désire pas tout recommencer à zéro sauf si c'est très facile (ce dont je doute).
Je suis donc à la recherche d'une solution s'intégrant dans mon code actuel.
Bonne journée,
Alain
Report
0
0
Alain G.
#4
Registered member
10 messages
Posted on September, 04 2024 - 1:00 PM
Bonjour à tous,
Mon problème est réglé. Merci de m'avoir répondu.
Alain
Report
0
0
→ Go back to WINDEV (earlier versions)
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (earlier versions)
WEBDEV (earlier versions)
WINDEV Mobile (earlier versions)
Reports & Queries
Off-topic
Tools
Français
English
Español
Portuguesa
Close this window
Search type
Only topics
All the messages
Search period
Any time
Past hour
Past 24 hours
Past week
Past month
Past year
Cancel
Preview of your message
Adding an image
Import an image from a URL
Send an image from a file of your disk
Drop a file or click "Browse..."
or
Cancel
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Text