Source données secondaire -> source principale - InfoPath Dev
in

InfoPath Dev

Source données secondaire -> source principale

Last post 11-07-2006 07:40 AM by Christian. 4 replies.
Page 1 of 1 (5 items)
Sort Posts: Previous Next
  • 11-04-2006 08:37 AM

    Source données secondaire -> source principale

    Re Bonjour, c'est encore moi (j'ai pris un abonnement depuis quelques jours :) )

    Situation: J'ai une source de données secondaire venant d'une bdd SQL serveur. Je l'importe dans mon formulaire suivant une requête souhaitée. Ensuite j'en fais un tableau extensible afin d'afficher chaque entrée de ma requête. Jusque là, tout est bon.

    Voilà mon problème: lorsque j'enregistre mon formulaire, j'aimerais pouvoir enregistrer toutes les données de mon tableau extensible dans mon fichier XML de la source de données principale.

    J'ai essayé de créer un tableau extensible en mettant des valeurs par défaut de ma source de données secondaire, mais seule la première entrée est affichée. Après avoir parcouru le forum InfoPathDev, il me semble avoir compris qu'il faudrait enregistrer chaque entrée de la source secondaire dans la principale en code managé. Si c'est le cas, je n'ai pas trouvé comment attaquer une source de données secondaire en c#.

    Merci à tous ceux qui pourront m'aider pour ce problème.
    De plus, je suis assez pressé car le temps pour mon projet est presque écoulé, merci infiniment à celui qui pourra me répondre rapidement!

    Amicalement, Christian
  • 11-06-2006 02:01 AM In reply to

    Re: Source données secondaire -> source principale

    Salut,

    Pour connecter une base de données secondaire dans le code il faut faire comme ca:

    IXMLDOMDocument2 oDomSearchHRG = (IXMLDOMDocument2)thisXDocument.GetDOM("lenomdebdd(attention c'est case Sensitive)");
    oDomSearchHRG.setProperty("SelectionNamespaces", "xmlns:dfs=\"http://schemas.microsoft.com/office/infopath/2003/dataFormSolution\" xmlns:tns=\"lenamespspacedeton xml de retour"");


    et pour naviguer:
                    IXMLDOMNode oNode = oDomSearchHRG.selectSingleNode("/dfs:myFields/dfs:dataFields/tns:getFunctionResponse/tns:getFunctionResult/TabEigZb/EigZb[text='" + function + "']");


    Tu as surement remarqué que infopath rajoute toujours des étages quand tu le lies a une bdd secondaire (tu peux le voir dans l'interface graphique quand tu affiche ta bbd secondaire dans le volet de droite).

    Et il te génére un namespace par défaut (soit il le crée lui-même (tempuri.org) soit il prend celui que tu as défini).

    Bonne chance

    Thierry

    P.S. Moi je suis sur Neuchâtel.
    Infopath 2007, Langage: C#2.0 (Modèle Objet 2003)
    merci de lire ceci
  • 11-06-2006 05:33 AM In reply to

    Re: Source données secondaire -> source principale

    ok merci bcp, je vais tester!!
  • 11-06-2006 12:56 PM In reply to

    Re: Source données secondaire -> source principale

    Au faite j'oubliais, pour voir ton namespace tu choisi un champ de la bbd secondaire (dans le volet droit).

    Puis, clique droit dans les propriétés et sur le dernier onglet du menu tu le touveras inscrit.
    Infopath 2007, Langage: C#2.0 (Modèle Objet 2003)
    merci de lire ceci
  • 11-07-2006 07:40 AM In reply to

    Re: Source données secondaire -> source principale

    Ok alors pour faire suite à ce poste voilà à quoi j'en suis arrivé:

    //Connexion à la source de donnée secondaire
    IXMLDOMDocument2 oDomSearchHRG = (IXMLDOMDocument2)thisXDocument.GetDOM("le nom de la source secondaire");

    //Load des données secondaires dans un XMLDOcument
    XmlDocument docXMLSecondaire = new XmlDocument();
    docXMLSecondaire.LoadXml(oDomSearchHRG.documentElement.xml);

    //Ajout des namespaces appropriés
    XmlNamespaceManager oNsm = new XmlNamespaceManager(docXMLSecondaire.NameTable);
    oNsm.AddNamespace("dfs", "http://schemas.microsoft.com/office/infopath/2003/dataFormSolution");
    oNsm.AddNamespace("d", "http://schemas.microsoft.com/office/infopath/2003/ado/dataFields");

    //Recherche et création d'une list de noeud de tous les éléments utils de la source secondaire
    XmlNodeList oNoms = docXMLSecondaire.SelectNodes("expression XPATH pour chercher le bon element/attribut", oNsm);


    En faite je trouvais plus simple de passer par un XMLDOcument!
    Mais en tout cas merci beaucoup Virgul, tes infos mon bien servie.
Page 1 of 1 (5 items)
Copyright © 2003-2019 Qdabra Software. All rights reserved.
View our Terms of Use.