FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV Mobile 2024
→
Windev Mobile - XML - XSD - Windows Mobile
Windev Mobile - XML - XSD - Windows Mobile
Débuté par Kerinec Nicolas, 23 oct. 2014 14:17 - 1 réponse
Connectez-vous…
Kerinec Nicolas
#1
Posté le 23 octobre 2014 - 14:17
Bonjour,
Je souhaite effectuer un export simple d'une liste(requête) sous la forme xml.
J'ai fait un programme de la manière suivante:
1 - Création d'un fichier XSD:
<
?
xml version
=
"1.0"
encoding
=
"UTF-8"
?
>
<
xsd
:
schema
xmlns
:
xsd
=
"http://www.w3.org/2001/XMLSchema"
>
<
xsd
:
element
name
=
"achat_veau"
>
<
xsd
:
complexType
>
<
xsd
:
sequence
>
<
xsd
:
element
name
=
"acv_id"
type
=
"xsd:integer"
/
>
<
xsd
:
element
name
=
"frn_id"
type
=
"xsd:integer"
/
>
<
xsd
:
element
name
=
"ach_id"
type
=
"xsd:integer"
/
>
<
xsd
:
element
name
=
"acv_date"
type
=
"xsd:date"
/
>
<
xsd
:
element
name
=
"acv_ligne"
type
=
"xsd:integer"
/
>
<
xsd
:
element
name
=
"acv_boucle_traduit"
type
=
"xsd:string"
/
>
<
xsd
:
element
name
=
"acv_prix"
type
=
"xsd:double"
/
>
<
/
xsd
:
sequence
>
<
/
xsd
:
complexType
>
<
/
xsd
:
element
>
<
/
xsd
:
schema
>
2 - Création d'un requête SQL pour l'alimentation du XML
3 - Parcours de la requête SQL avec création du XML
// BOUCLE DE PARCOURS DE L'ENSEMBLE DES ACHAT VEAUX A TRANSFERER
HExécuteRequête
(
REQ_
SELECT_Achat_veau_A_Envoyer
,
hRequêteDéfaut
)
HLitPremier
(
REQ_
SELECT_Achat_veau_A_Envoyer
)
TANTQUE
HTrouve
(
REQ_
SELECT_Achat_veau_A_Envoyer
)
c
MonDoc.achat_veau.acv_id
[i] =
REQ_
SELECT_Achat_veau_A_Envoyer.acv_id
c
MonDoc.achat_veau.frn_id
[i] =
REQ_
SELECT_Achat_veau_A_Envoyer.frn_id
c
MonDoc.achat_veau.ach_id
[i] =
REQ_
SELECT_Achat_veau_A_Envoyer.ach_id
c
MonDoc.achat_veau.acv_date
[i] =
REQ_
SELECT_Achat_veau_A_Envoyer.acv_date
c
MonDoc.achat_veau.acv_ligne
[i] =
REQ_
SELECT_Achat_veau_A_Envoyer.acv_ligne
c
MonDoc.achat_veau.acv_boucle_traduit
[i] =
REQ_
SELECT_Achat_veau_A_Envoyer.acv_boucle_traduit
c
MonDoc.achat_veau.acv_prix
[i] =
REQ_
SELECT_Achat_veau_A_Envoyer.acv_prix
i
+
+
HLitSuivant
(
REQ_
SELECT_Achat_veau_A_Envoyer
)
FIN
HLibèreRequête
(
REQ_
SELECT_Achat_veau_A_Envoyer
)
Mon problème est que ça ne fonctionne pas.
J'utilise mal les fonctions XML Windev je pense.
La solution ci-dessous fonctionne si j'ai une seul ligne mais pas plusieurs lignes dans le résultat de la requête.
Merci d'avance de votre aide.
Signaler
0
0
Kerinec Nicolas
#2
Posté le 27 octobre 2014 - 09:49
Après plusieurs remarques, j'ai effectué les changements suivants, mais malheureusement ça ne fonctionne pas dans le cas de plus de 2 nœuds:
1 - Nouveau XSD:
<
?
xml version
=
"1.0"
encoding
=
"UTF-8"
?
>
<
xsd
:
schema
xmlns
:
xsd
=
"http://www.w3.org/2001/XMLSchema"
>
<
xsd
:
element
name
=
"achat_veaux"
>
<
xsd
:
complexType
>
<
xsd
:
sequence
>
<
xsd
:
element
name
=
"achat_veau"
>
<
xsd
:
complexType
>
<
xsd
:
sequence
>
<
xsd
:
element
name
=
"acv_id"
type
=
"xsd:integer"
/
>
<
xsd
:
element
name
=
"frn_id"
type
=
"xsd:integer"
/
>
<
xsd
:
element
name
=
"ach_id"
type
=
"xsd:integer"
/
>
<
xsd
:
element
name
=
"acv_date"
type
=
"xsd:date"
/
>
<
xsd
:
element
name
=
"acv_ligne"
type
=
"xsd:integer"
/
>
<
xsd
:
element
name
=
"acv_boucle_traduit"
type
=
"xsd:string"
/
>
<
xsd
:
element
name
=
"acv_boucle_inter"
type
=
"xsd:string"
/
>
<
xsd
:
element
name
=
"acv_prix"
type
=
"xsd:double"
/
>
<
xsd
:
element
name
=
"acv_date_scan"
type
=
"xsd:date"
/
>
<
xsd
:
element
name
=
"acv_heure_scan"
type
=
"xsd:time"
/
>
<
xsd
:
element
name
=
"acv_date_envoi"
type
=
"xsd:date"
/
>
<
xsd
:
element
name
=
"acv_heure_envoi"
type
=
"xsd:time"
/
>
<
xsd
:
element
name
=
"acv_envoi"
type
=
"xsd:string"
/
>
<
/
xsd
:
sequence
>
<
/
xsd
:
complexType
>
<
/
xsd
:
element
>
<
/
xsd
:
sequence
>
<
/
xsd
:
complexType
>
<
/
xsd
:
element
>
<
/
xsd
:
schema
>
2 - Création du XML avec parcours de la requête:
// DECLARATION DES VARIABLES
c
MonDoc est un
XMLDocument
<
Description
=
"achat_veau.xsd"
>
s
MonNomFichierXML est une
chaîne
xmlUnNoeud est un
xmlNoeud
i est un
entier
// INITIALISATION DES VARIABLES
s
MonNomFichierXML
=
"achat_veau_"
+
DateVersChaîne
(
DateSys
(
)
,
"AAAAMMJJ"
) +
HeureVersChaîne
(
HeureSys
(
)
,
"HHMMSS"
) +
".xml"
i
=
1
// BOUCLE DE PARCOURS DE L'ENSEMBLE DES ACHAT VEAUX A TRANSFERER
HExécuteRequête
(
REQ_
SELECT_Achat_veau_A_Envoyer
,
hRequêteDéfaut
)
SI
HNbEnr
(
REQ_
SELECT_Achat_veau_A_Envoyer
) >
0
ALORS
// INITIALISATION DU 1ER NOEUD XML
xmlUnNoeud
..
Nom
=
"achat_veaux"
Ajoute
(
c
MonDoc
,
xmlUnNoeud
)
// LECTURE ET PARCOURS
HLitPremier
(
REQ_
SELECT_Achat_veau_A_Envoyer
)
TANTQUE
HTrouve
(
REQ_
SELECT_Achat_veau_A_Envoyer
)
// TODO
xmlUnNoeud
..
Nom
=
"achat_veau"
Ajoute
(
c
MonDoc.achat_veaux
,
xmlUnNoeud
)
c
MonDoc.achat_veaux.achat_veau
[i]
.
acv_id
=
REQ_
SELECT_Achat_veau_A_Envoyer.acv_id
c
MonDoc.achat_veaux.achat_veau
[i]
.
frn_id
=
REQ_
SELECT_Achat_veau_A_Envoyer.frn_id
c
MonDoc.achat_veaux.achat_veau
[i]
.
ach_id
=
REQ_
SELECT_Achat_veau_A_Envoyer.ach_id
c
MonDoc.achat_veaux.achat_veau
[i]
.
acv_date
=
REQ_
SELECT_Achat_veau_A_Envoyer.acv_date
c
MonDoc.achat_veaux.achat_veau
[i]
.
acv_ligne
=
REQ_
SELECT_Achat_veau_A_Envoyer.acv_ligne
c
MonDoc.achat_veaux.achat_veau
[i]
.
acv_boucle_traduit
=
REQ_
SELECT_Achat_veau_A_Envoyer.acv_boucle_traduit
c
MonDoc.achat_veaux.achat_veau
[i]
.
acv_boucle_inter
=
REQ_
SELECT_Achat_veau_A_Envoyer.acv_boucle_inter
c
MonDoc.achat_veaux.achat_veau
[i]
.
acv_prix
=
REQ_
SELECT_Achat_veau_A_Envoyer.acv_prix
c
MonDoc.achat_veaux.achat_veau
[i]
.
acv_date_scan
=
REQ_
SELECT_Achat_veau_A_Envoyer.acv_date_scan
c
MonDoc.achat_veaux.achat_veau
[i]
.
acv_heure_scan
=
REQ_
SELECT_Achat_veau_A_Envoyer.acv_heure_scan
c
MonDoc.achat_veaux.achat_veau
[i]
.
acv_date_envoi
=
DateSys
(
)
c
MonDoc.achat_veaux.achat_veau
[i]
.
acv_heure_envoi
=
HeureSys
(
)
c
MonDoc.achat_veaux.achat_veau
[i]
.
acv_envoi
=
"T"
//
cMonDoc.achat_veau.acv_id = REQ_SELECT_Achat_veau_A_Envoyer.acv_id
//
cMonDoc.achat_veau.frn_id = REQ_SELECT_Achat_veau_A_Envoyer.frn_id
//
cMonDoc.achat_veau.ach_id = REQ_SELECT_Achat_veau_A_Envoyer.ach_id
//
cMonDoc.achat_veau.acv_date = REQ_SELECT_Achat_veau_A_Envoyer.acv_date
//
cMonDoc.achat_veau.acv_ligne = REQ_SELECT_Achat_veau_A_Envoyer.acv_ligne
//
cMonDoc.achat_veau.acv_boucle_traduit = REQ_SELECT_Achat_veau_A_Envoyer.acv_boucle_traduit
//
cMonDoc.achat_veau.acv_boucle_inter = REQ_SELECT_Achat_veau_A_Envoyer.acv_boucle_inter
//
cMonDoc.achat_veau.acv_prix = REQ_SELECT_Achat_veau_A_Envoyer.acv_prix
//
cMonDoc.achat_veau.acv_date_scan = REQ_SELECT_Achat_veau_A_Envoyer.acv_date_scan
//
cMonDoc.achat_veau.acv_heure_scan = REQ_SELECT_Achat_veau_A_Envoyer.acv_heure_scan
//
cMonDoc.achat_veau.acv_date_envoi = DateSys()
//
cMonDoc.achat_veau.acv_heure_envoi = HeureSys()
//
cMonDoc.achat_veau.acv_envoi = REQ_SELECT_Achat_veau_A_Envoyer.acv_envoi
i
+
+
HLitSuivant
(
REQ_
SELECT_Achat_veau_A_Envoyer
)
FIN
Info
(
XMLConstruitChaîne
(
c
MonDoc
)
)
// VERIFICATION DOCUMENT XML VALIDE
SI
XMLDocumentValide
(
c
MonDoc
) =
Vrai
ALORS
XMLSauve
(
c
MonDoc
,
fRepExe
(
) + [
"\"
] +
s
MonNomFichierXML
)
SI
ErreurDétectée
=
Vrai
ALORS
Erreur
(
"Impossible de sauvegarder le document XML"
,
ErreurInfo
(
)
)
SINON
Info
(
"OK"
,
fRepExe
(
) + [
"\"
] +
s
MonNomFichierXML
)
FIN
SINON
Erreur
(
"Le document XML est invalide"
,
ErreurInfo
(
)
)
FIN
FIN
Signaler
0
0
→ Revenir à WINDEV Mobile 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte