1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

WD lit un doc xml et récupère les données du tableau

Discussion dans 'Résolution problème & conseils' créé par saad27, Mar 21, 2019.

  1. saad27

    saad27 Active Member
    MEMBRE WX

    Inscrit:
    Mar 24, 2018
    Messages:
    154
    J'aime reçus:
    66
    Bonjour Fekwx,

    j'ai besoin de votre aide, j'ai besoin de lire un fichier XML et d'obtenir les données du tableau, j'ai joint le fichier XML.

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!





    Merci de votre aide

    Cdt,
    Saad
     

    Fichiers attachés:

    • new.txt
      Taille de fichier:
      7.6 KB
      Affichages:
      9
    Tags:
  2. khaliassas

    khaliassas Active Member

    Inscrit:
    Mar 4, 2019
    Messages:
    446
    J'aime reçus:
    142
    avec un

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ca marche pas ?
    ca oblige de déclarer la structure avant.

    j'avais fait avant un truc ou j'ouvrait le document xml et je parcourait les différent noeud.
    mais la j'ai l’impression que tu as plus un problème de wml non valide non ?
     
    #2 khaliassas, Mar 21, 2019
    Dernière édition: Mar 21, 2019
  3. khaliassas

    khaliassas Active Member

    Inscrit:
    Mar 4, 2019
    Messages:
    446
    J'aime reçus:
    142
    Code (Windev):

    gvTest est un xmlNoeud
    gtabInvoice est tableau <agrandissement> de xmlNoeuds

    cmdwml est un xmlDocument , description="new"
    cmdwml=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("C:\......new.xml",depuisFichier)

    SI

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    = Vrai ALORS
       

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Erreur lors de la création du document XML"+RC+

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (errMessage))
        RETOUR
    FIN

    POUR i=1 À cmdwml.Envelope.Body.InvoiceResponse.Invoice..

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


        gvTest=cmdwml.Envelope.Body.InvoiceResponse.Invoice[i]
       

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (gtabInvoice,gvTest)
    FIN
     
    avec ca j'ai tester tu ouvre bien le xml et tu peux le parcourir.
    donc tu devrais pouvoir lire toute tes données.

    après y a des fonction de navigation dans le documents xml aussi mais j'ai pas regardé
     
    #3 khaliassas, Mar 21, 2019
    Dernière édition: Mar 21, 2019
    suenodesign apprécie ceci.
  4. saad27

    saad27 Active Member
    MEMBRE WX

    Inscrit:
    Mar 24, 2018
    Messages:
    154
    J'aime reçus:
    66

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Merci je vais tester cela je te fais savoir dans quel que mins.

    Cdt,
    Saad
     
  5. saad27

    saad27 Active Member
    MEMBRE WX

    Inscrit:
    Mar 24, 2018
    Messages:
    154
    J'aime reçus:
    66

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    J'essaye ceci mais cela ne me renvoie rien.

    En fait, je veux obtenir tous les détails pour les Billitems



    gvTest is a xmlNode
    gtabInvoice is array <growth> of xmlNode

    cmdwml is a xmlDocument, Description="new.xml"
    cmdwml= XMLOpen("new.xml",fromFile)

    IF ErrorOccurred = True THEN
    Error("Erreur lors de la création du document XML"+CR+ErrorInfo(errMessage))
    RETURN
    END

    FOR i=1 TO cmdwml.Envelope.Body.InvoiceResponse.Invoice..Occurrence
    gvTest=cmdwml.Envelope.Body.InvoiceResponse.Invoice

    ArrayAdd(gtabInvoice,gvTest)
    END


    FOR EACH Act OF gtabInvoice
    Trace(Act)
    END
     
  6. khaliassas

    khaliassas Active Member

    Inscrit:
    Mar 4, 2019
    Messages:
    446
    J'aime reçus:
    142

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    J'essaye ceci mais cela ne me renvoie rien.

    En fait, je veux obtenir tous les détails pour les Billitems



    gvTest is a xmlNode
    gtabInvoice is array <growth> of xmlNode

    cmdwml is a xmlDocument, Description="new.xml"
    cmdwml= XMLOpen("new.xml",fromFile)

    IF ErrorOccurred = True THEN
    Error("Erreur lors de la création du document XML"+CR+ErrorInfo(errMessage))
    RETURN
    END

    FOR i=1 TO cmdwml.Envelope.Body.InvoiceResponse.Invoice..Occurrence
    gvTest=cmdwml.Envelope.Body.InvoiceResponse.Invoice

    ArrayAdd(gtabInvoice,gvTest)
    END


    FOR EACH Act OF gtabInvoice
    Trace(Act)
    END
    Cliquez pour agrandir...
    Ben je suis plus au bureaux mais moi ça me remplissais un tableau avec tous tes invoice avec le détails cad tous les adresses par invoice toutes les faxtures.

    Ça viendrais pas du fait que tu met pas le chemin complet du New XML?
     
  • khaliassas

    khaliassas Active Member

    Inscrit:
    Mar 4, 2019
    Messages:
    446
    J'aime reçus:
    142
    Code (Windev):

    POUR i=1 À cmdwml.Envelope.Body.InvoiceResponse.Invoice..

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


       

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (cmdwml.Envelope.Body.InvoiceResponse.Invoice[i].ProfileIDs.UniqueID)
    POUR j=1 À cmdwml.Envelope.Body.InvoiceResponse.Invoice[i].BillItems..

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


     

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (cmdwml.Envelope.Body.InvoiceResponse.Invoice[i].BillItems[j]:Description)
    FIN
    gvTest=cmdwml.Envelope.Body.InvoiceResponse.Invoice[i]
       

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (gtabInvoice,gvTest)
    FIN
     
    J'ai bien le tableau avec 4 noeuds.
    Et avec le code civil dessus j'ai bien les trace des numéro ID de chaque invoice suivie de chaque description des billings
     

    Fichiers attachés:

    saad27 apprécie ceci.
  • khaliassas

    khaliassas Active Member

    Inscrit:
    Mar 4, 2019
    Messages:
    446
    J'aime reçus:
    142

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    J'essaye ceci mais cela ne me renvoie rien.

    En fait, je veux obtenir tous les détails pour les Billitems



    gvTest is a xmlNode
    gtabInvoice is array <growth> of xmlNode

    cmdwml is a xmlDocument, Description="new.xml"
    cmdwml= XMLOpen("new.xml",fromFile)

    IF ErrorOccurred = True THEN
    Error("Erreur lors de la création du document XML"+CR+ErrorInfo(errMessage))
    RETURN
    END

    FOR i=1 TO cmdwml.Envelope.Body.InvoiceResponse.Invoice..Occurrence
    gvTest=cmdwml.Envelope.Body.InvoiceResponse.Invoice

    ArrayAdd(gtabInvoice,gvTest)
    END


    FOR EACH Act OF gtabInvoice
    Trace(Act)
    END
    Cliquez pour agrandir...
    Par contre avec ça :
    Code (Windev):

    FOR EACH Act OF gtabInvoice

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (Act)
    END
     
    Tu traceras jamais rien le act t'envoie un noeud XML. Donc il faut préciser quelle valeur afficher.
    Trace(Act.ProfileIDs.UniqueID) par exmple.
     
    Man apprécie ceci.
  • saad27

    saad27 Active Member
    MEMBRE WX

    Inscrit:
    Mar 24, 2018
    Messages:
    154
    J'aime reçus:
    66

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    oui cela fonctionne parfaitement .. merci boss? y a-t-il un moyen plus rapide?

    Cdt,
    SAAD
     
  • khaliassas

    khaliassas Active Member

    Inscrit:
    Mar 4, 2019
    Messages:
    446
    J'aime reçus:
    142

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    oui cela fonctionne parfaitement .. merci boss? y a-t-il un moyen plus rapide?

    Cdt,
    SAAD
    Cliquez pour agrandir...
    Ben je dirais de déclarer une structure
    Avec les même nom et la fonction deserialise.
    Quoique je sais pas si plus rapide. Faudrait tester

    Mais dans tout les cas en lespecel tu est obliger de parcourir soit le document XML soit la structure pour lire toutes les données.
    Après selon ce que tu fait des données tu dois des pouvoir utiliser des fonctions de types verschaine pour remplire des listes par exemples. .
    C'est pour ça que dans l'exemple j'ai créer un tableau de tes invoice pour des accès direct si tu connais l'indice du billings.

    Après y a des meilleurs que moi ici je débute.
     
    #10 khaliassas, Mar 21, 2019
    Dernière édition: Mar 21, 2019
    saad27 apprécie ceci.
  • saad27

    saad27 Active Member
    MEMBRE WX

    Inscrit:
    Mar 24, 2018
    Messages:
    154
    J'aime reçus:
    66

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Merci beaucoup pour ton aide . Je vais utiliser la méthode actuelle pour l'instant :) cest plus facile.

    Cdt,

    mERCI
    saad
     
  • Partager cette page

    Chargement...