![]() |
| 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
encore un petit problème. Je souhaiterais faire l'équivalent de ce post mais en utilisant des webservices comme source de données secondaires. Je renvoie une liste déroulante contenant les valeurs des mes tables, et j'aimerais remplir le champ texte d'en dessous en fonction de la valeur sélectionnée dans la listbox. |
|
|
|
|
|
#3 (permalink) |
|
Membre du Club
![]() Date d'inscription: avril 2008
Âge: 19
Messages: 83
|
bah ca se remplit pas, je fais pourtant la même chose.
parceque en fait mon webservice ne renvoit qu'une colonne de la table. Et je souhaiterais récuperer une autre colonne de cette table. Dans ma listbox il n'y a que la colonne (unique) qui est renvoyée par le webservice. Comment je fais pour remplir la case texte avec l'autre colonne de la table ? |
|
|
|
|
|
#4 (permalink) |
|
Expert Confirmé
![]() |
Salut,
Tu as surement une erreur dans le current() soit tu ne reviens pas assez ou trop (../../) dnas ton arbre XML. Si tu ne trouve pas poste ton xml et ton Expression XPath ++ 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 |
|
|
|
|
|
#5 (permalink) |
|
Membre du Club
![]() Date d'inscription: avril 2008
Âge: 19
Messages: 83
|
voila l'expression xpath : )
xdXDocument:GetDOM("AgeEtudSelect")/dfs:myFields/dfs:queryFields/tns:AgeEtudSelect/tns:NumEtudSelect[xdXDocument:GetDOM("ListeNumEtud")/dfs:myFields/dfs:dataFields/tns:ListeNumEtudResponse/tns:ListeNumEtudResult/tns:anyType = current()] et le xml contient simplement la liste des Id etudiants, à savoir Code :
<?xml version="1.0" encoding="utf-8" ?> - <ArrayOfAnyType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/"> <anyType xsi:type="xsd:int">1</anyType> <anyType xsi:type="xsd:int">2</anyType> <anyType xsi:type="xsd:int">3</anyType> <anyType xsi:type="xsd:int">4</anyType> <anyType xsi:type="xsd:int">5</anyType> <anyType xsi:type="xsd:int">6</anyType> </ArrayOfAnyType> merci beaucoup, bon week end |
|
|
|
|
|
#6 (permalink) |
|
Expert Confirmé
![]() |
Salut,
désolé pour le retard... Donc la je comprend pas bien, T'as fait une règle sur ta liste déroulante avec ton expr. XPath? peux-tu poster ou est lié ta liste déroulante? et ou doit-on recopier la valeur? Franchement un XML ca aiderait car ton énum ne me sert a rien. Moi ce que je doit comprendre c'est la structure de ton XML.
__________________
"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
|
Donc, mon formulaire est composé de 2 champs :
-Une listbox, qui récupère d'un webservice la liste des numéros d'étudiants (ca marche). -Une case texte, qui doit afficher l'age de l'étudiant précédement sélectionné. Pour cela, j'ai créé un deuxième webservice qui renvoie l'age de l'étudiant dont le numéro est passé en paramètre. J'avais fais au départ une règle sur la listbox pour récuperer l'age comme s'il y avait une base de données, mais ca ne marche pas puisque, le premier webservice (celui qui renvoie les numéros), ne renvoie qu'une colonne de la BD : les numéros étudiants, et non l'âge. J'ai donc essayé d'utiliser le webservice paramétré qui doit renvoyer un age en fonction du numéro étudiant passé en paramètre, mais je ne sais pas comment procéder (j'ai cru comprendre qu'il faut lui indiquer ou prendre le paramètre, seulement, c'est une listbox donc pas de valeure "fixe", faut-il faire un bouton qui sera le "déclancheur" du webservice?) Merci d'avance EDIT: je créé un bouton qui envoye le paramètre au webservice, mais comment récuperer ce que renvoie ce webservice pour ensuite l'insérer dans mon champ texte, c'est ca ma question ^^ Dernière modification par cocosql ; 23/04/2008 à 09h10 |
|
|
|
|
|
#8 (permalink) |
|
Expert Confirmé
![]() |
ok je crois que j'ai compris.
Il faut que tu fasse une régle en plusieurs étape sur ta liste déroulante: 1. copier la valeur de ta liste déroulante dans le param du ws. 2. exécuter un query du Web services 3. affecter la valeur a ta Textbox. voici ci-joint un exemple simple de ce que tu veux faire.
__________________
"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 Dernière modification par virgul ; 23/04/2008 à 09h44 |
|
|
|
|
|
#10 (permalink) |
|
Expert Confirmé
![]() |
OK désolé j'avais plus pensé moi j'ai le 2007.
J'ai mis à jour le zip dans mon autre post
__________________
"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 |
|
|
|
|
|
#12 (permalink) |
|
Expert Confirmé
![]() |
Clique droit sur le fichier xsn et sélectionne concevoir (Valide l'avertissement) puis clique sur apercu. Après quand tu vas choisir la première fois dans la liste déroulante il va te faire un warning de sécurité répond oui.
++ 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 |
|
|
|
|
|
#14 (permalink) |
|
Membre du Club
![]() Date d'inscription: avril 2008
Âge: 19
Messages: 83
|
Bon j'ai essayé d'appliquer ce que tu m'a envoyé, j'ai une erreur, je pense que ca vient du passage de paramètre mais je n'en suis pas sûr, peux-tu confirmer stp ?
Code :
La réponse SOAP indique qu'une erreur s'est produite sur le serveur*: System.Web.Services.Protocols.SoapException: Le serveur n'a pas pu traiter la demande. ---> System.Data.SqlClient.SqlException: Syntaxe incorrecte vers ';'. à System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) à System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) à System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) à System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) à System.Data.SqlClient.SqlDataReader.ConsumeMetaData() à System.Data.SqlClient.SqlDataReader.get_MetaData() à System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) à System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) à System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) à System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) à System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) à System.Data.SqlClient.SqlCommand.ExecuteReader() à Service.AgeEtudSelect(String NumEtudSelect) dans c:\Documents and Settings\xxxxxx\Mes documents\Visual Studio 2008\WebSites\TestRequetesWS\App_Code\Service.cs:ligne 140 --- Fin de la trace de la pile d'exception interne --- merci encore une fois de ton aide |
|
|
|
![]() |
![]() |
||
Listbox, champ texte et WebServices
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|