![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| InfoPath Forum d'entraide sur InfoPath (concevoir des formulaires basés sur XML) |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre du Club
![]() Date d'inscription: avril 2008
Âge: 19
Messages: 83
|
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 (permalink) |
|
Expert Confirmé
![]() |
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." Microsoft Office InfoPath MVP - Mon blog |
|
|
|
|
|
#4 (permalink) | |
|
Expert Confirmé
![]() |
Citation:
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." Microsoft Office InfoPath MVP - Mon blog |
|
|
|
|
|
|
#5 (permalink) |
|
Membre du Club
![]() Date d'inscription: avril 2008
Âge: 19
Messages: 83
|
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 :
CS0122: 'System.Xml.XmlTextReader.XmlTextReader(System.Xml.XmlNameTable)' est inaccessible en raison de son niveau de protection
|
|
|
|
|
|
#6 (permalink) |
|
Expert Confirmé
![]() |
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." Microsoft Office InfoPath MVP - Mon blog |
|
|
|
|
|
#7 (permalink) |
|
Membre du Club
![]() Date d'inscription: avril 2008
Âge: 19
Messages: 83
|
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 (permalink) |
|
Expert Confirmé
![]() |
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#): Code :
thisXDocument.DOM.xml Pour bdd secondaire c'est: Code :
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; 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." Microsoft Office InfoPath MVP - Mon blog |
|
|
|
|
|
#9 (permalink) |
|
Membre du Club
![]() Date d'inscription: avril 2008
Âge: 19
Messages: 83
|
Donc le code de mon webservice ca va etre en gros :
Code :
[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 !
|
|
|
|
|
|
#11 (permalink) |
|
Expert Confirmé
![]() |
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." Microsoft Office InfoPath MVP - Mon blog |
|
|
|
![]() |
![]() |
||
Envoi de plusieurs données a la fois
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|