IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

InfoPath .NET Discussion :

Envoi de plusieurs données a la fois


Sujet :

InfoPath .NET

  1. #1
    Membre du Club Avatar de cocosql
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 82
    Points : 59
    Points
    59
    Par défaut Envoi de plusieurs données a la fois
    Bonjour à tous ; )

    encore un problème :

    Je souhaiterais envoyer tout un tableau extensible à un webservice qui insérera le tableau dans une base de données, champ par champ.

    Est-ce possible ? Si oui comment, car étant donné que c'est un tableau extensible, je ne peux savoir combien il va y avoir de paramètres dans le webservice d'envoi. L'idéal serait de lui passer un ArrayList directement.

    Ce type existe t-il pour InfoPath ?

    Merci d'avance

  2. #2
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    Ban c'est tout simple tu passe un le xml dans ton webservice via un paramètre.

    Et après tu boucle sur ton élément répétitif de ton xml dans ton ws. Puis tu fais tes insert comme tu veux dans ta bdd.

    ++
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  3. #3
    Membre du Club Avatar de cocosql
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 82
    Points : 59
    Points
    59
    Par défaut
    oula, je m'y connais pas trop en xml, mais je pense que c'est le moment de m'y mettre ^^

    Quand tu dis que je passe en paramètre le xml, je passe le tableau extensible en temps qu'xml c'est ca ?

  4. #4
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Citation Envoyé par cocosql Voir le message
    oula, je m'y connais pas trop en xml, mais je pense que c'est le moment de m'y mettre ^^

    Quand tu dis que je passe en paramètre le xml, je passe le tableau extensible en temps qu'xml c'est ca ?
    Effectivement Infopath travaille que avec du XML. Donc c'est le bon moment pour s'y mettre.

    Ton tableau répétitif c'est déjà du XML t'as cas le sélectionner et l'envoyer.
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  5. #5
    Membre du Club Avatar de cocosql
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 82
    Points : 59
    Points
    59
    Par défaut
    hmmmm

    t'as pas un ptit tuto du genre C# et la classe xml ?

    J'ai cherché, j'ai pas trop trouvé :

    Il faut utiliser un XmlTextReader pour lire dans le fichier xml passé en paramètre ?

    J'ai une erreur vraiment bizarre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CS0122: 'System.Xml.XmlTextReader.XmlTextReader(System.Xml.XmlNameTable)' est inaccessible en raison de son niveau de protection
    Pour utiliser un XmlTextReader, j'ai besoin d'un XmlNameTable en paramètre ...



  6. #6
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Moi je passe toujours du XMLDocument c'est plus simple mais certe c'est une vieille classe.

    Faudrait que je m'arrange pour optimiser ca une fois

    Essaye déjà avec XMLDocument et si ca marche ben tu lis comment faire pour le faire avec les nouveau objet du framework. Et si t'es toujours motivé tu nous faire un petit compte rendu quand tu as fini.

    Y a un début d'explication ici: http://faqcsharp.developpez.com/?page=file_xml

    Sinon y a pas mal de contenu sur csharp.fr

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  7. #7
    Membre du Club Avatar de cocosql
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 82
    Points : 59
    Points
    59
    Par défaut
    Bon alors question bête mais qui me bloque :

    Ou on doit mettre le fichier xml pour que C# puisse le prendre en paramètre ?

    Lorsque j'appelle doc.LoadXml(), en paramètre je dois passer le chemin du fichier ? J'ai essayé, il ne veut pas le prendre.

    Et même si c'est le cas, je ne connaitrais pas a l'avance le chemin du formulaire InfoPath, je ne pourrais donc acceder au xml de mon formulaire en "live".

    Vraiment Xml me blaze lol

  8. #8
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Ben c'est peut-être bête comme réponse mais Infopath a aussi ces objet et méthode qui permette de l'atteindre.

    Modèle Object 2003 (C#):

    te renvois ta base de données principale en string et ca tu peux le charger dans XMLDocument.

    Pour bdd secondaire c'est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IXMLDOMDocument2 oDomgetSignExtra = (IXMLDOMDocument2)thisXDocument.GetDOM("tabddsecondaire");
                oDomgetSignExtra.setProperty("SelectionNamespaces", "xmlns:dfs=\"http://schemas.microsoft.com/office/infopath/2003/dataFormSolution\" xmlns:tns=\"ton namespace"");
                oDomgetSignExtra.selectsinglenode("/dfs:myFields/dfs:dataFields/ns2:getSignExtraResponse/ns2:getSignExtraResult/TabEigZb/EigZb/nr").xml;
    tns est le namespace généré par défaut par Infopath si tu as d'autre webservices qui n'appartienne pas au même namespace il va te créer des ns1, ns2,...

    J'espère que ca sera plus claire.
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  9. #9
    Membre du Club Avatar de cocosql
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 82
    Points : 59
    Points
    59
    Par défaut
    Donc le code de mon webservice ca va etre en gros :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    [WebMethod]
        public ArrayList InsertAttitudesPositives(XmlDocument TabPP, int NumFiche)
        {
             XmlDocument doc = new XmlDocument();
             doc.LoadXml(thisXDocument.DOM.xml);
             XmlNamespaceManager nsmgr = new XmlNamespaceManager       (doc.NameTable);
            nsmgr.AddNamespace("my", doc.DocumentElement.NamespaceURI);
            ArrayList TabLibellesPositifs = new ArrayList();
            XPathDocument XPathDocu = new XPathDocument (doc);
            XPathNavigator Navigator;
            XPathNodeIterator Nodes;
            Navigator = XPathDocu.CreateNavigator();
            string ExpXPath = "//my:groupe9[my:AttitudesPositives]";
            Nodes = Navigator.Select(Navigator.Compile(ExpXPath));
            if (Nodes.Count != 0)
            {
                while (Nodes.MoveNext())
                {
                    TabLibellesPositifs.Add(Nodes.Current.Value);
                }
                return TabLibellesPositifs;
            }
     
            else
            {
                ArrayList NoDF = new ArrayList();
                NoDF[0] = "No Data found";
                return NoDF;
            }

    J'utilise Xml.Xpath car je n'ai pas trouvé de tuto concluant sur XMLDocument, si vous avez du code avec XMLDocument je suis preneur

    Si quelqu'un a un webservice tout simple qui utilise XMLDocument avec un fichier Xml en paramètre, ca serait Noel pour moi !


  10. #10
    Membre du Club Avatar de cocosql
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 82
    Points : 59
    Points
    59
    Par défaut
    C'est bon, j'oublie XML


    La solution alternative au problème


  11. #11
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Ca convient aussi bien comme solution.


    P.S. Tu peux corriger ton lien car il est faux. Merci
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  12. #12
    Membre du Club Avatar de cocosql
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 82
    Points : 59
    Points
    59
    Par défaut
    Lien corrigé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/03/2013, 15h01
  2. envoie de plusieurs données sur une seule entrée
    Par boubouboy dans le forum LabVIEW
    Réponses: 2
    Dernier message: 09/05/2011, 14h06
  3. Traitements de données après l'envoie de plusieurs commandes
    Par Milamber51 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 17/07/2009, 16h00
  4. Réponses: 13
    Dernier message: 21/12/2005, 12h04
  5. [MYSQL] sortir des résultats de plusieurs table en 1 fois
    Par LE NEINDRE dans le forum Requêtes
    Réponses: 4
    Dernier message: 13/10/2005, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo