Forum des développeurs  

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é.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > InfoPath

InfoPath Forum d'entraide sur InfoPath (concevoir des formulaires basés sur XML)

Réponse
 
Outils de la discussion
Vieux 18/04/2008, 08h59   #1 (permalink)
Membre du Club
 
Avatar de cocosql
 
Date d'inscription: avril 2008
Âge: 19
Messages: 83
Par défaut Listbox, champ texte et WebServices

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.
cocosql est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/04/2008, 14h45   #2 (permalink)
Membre Confirmé
 
Date d'inscription: avril 2008
Localisation: Nord
Âge: 24
Messages: 275
Par défaut

Ben c'est le même principe donc je ne vois pas trop ce que tu veux savoir.
glucas59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/04/2008, 14h56   #3 (permalink)
Membre du Club
 
Avatar de cocosql
 
Date d'inscription: avril 2008
Âge: 19
Messages: 83
Par défaut

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 ?
cocosql est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/04/2008, 15h13   #4 (permalink)
Expert Confirmé
 
Avatar de virgul
 
Date d'inscription: novembre 2004
Localisation: I Love Techno me voila!!!
Âge: 24
Messages: 1 603
Envoyer un message via MSN à virgul Envoyer un message via Skype™ à virgul
Par défaut

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
virgul est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/04/2008, 16h29   #5 (permalink)
Membre du Club
 
Avatar de cocosql
 
Date d'inscription: avril 2008
Âge: 19
Messages: 83
Par défaut

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
cocosql est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 07h58   #6 (permalink)
Expert Confirmé
 
Avatar de virgul
 
Date d'inscription: novembre 2004
Localisation: I Love Techno me voila!!!
Âge: 24
Messages: 1 603
Envoyer un message via MSN à virgul Envoyer un message via Skype™ à virgul
Par défaut

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
virgul est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 08h37   #7 (permalink)
Membre du Club
 
Avatar de cocosql
 
Date d'inscription: avril 2008
Âge: 19
Messages: 83
Par défaut

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
cocosql est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 09h24   #8 (permalink)
Expert Confirmé
 
Avatar de virgul
 
Date d'inscription: novembre 2004
Localisation: I Love Techno me voila!!!
Âge: 24
Messages: 1 603
Envoyer un message via MSN à virgul Envoyer un message via Skype™ à virgul
Par défaut

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.
Fichiers attachés
Type de fichier : zip cocosql.zip (6,2 Ko, 5 affichages)
__________________
"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
virgul est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 09h40   #9 (permalink)
Membre du Club
 
Avatar de cocosql
 
Date d'inscription: avril 2008
Âge: 19
Messages: 83
Par défaut

Merci beaucoup mais il me signale que j'ai une version plus ancienne d'infopath
et je ne peux pas ouvrir ton exemple :s

tu utilise quel infopath ?

merci encore virgul
cocosql est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 09h44   #10 (permalink)
Expert Confirmé
 
Avatar de virgul
 
Date d'inscription: novembre 2004
Localisation: I Love Techno me voila!!!
Âge: 24
Messages: 1 603
Envoyer un message via MSN à virgul Envoyer un message via Skype™ à virgul
Par défaut

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
virgul est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 09h50   #11 (permalink)
Membre du Club
 
Avatar de cocosql
 
Date d'inscription: avril 2008
Âge: 19
Messages: 83
Par défaut

lol merci mais y'a encore un souci de sécurité ^^




excuse moi ^^ mais merci beaucoup
cocosql est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 09h55   #12 (permalink)
Expert Confirmé
 
Avatar de virgul
 
Date d'inscription: novembre 2004
Localisation: I Love Techno me voila!!!
Âge: 24
Messages: 1 603
Envoyer un message via MSN à virgul Envoyer un message via Skype™ à virgul
Par défaut

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
virgul est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 10h00   #13 (permalink)
Membre du Club
 
Avatar de cocosql
 
Date d'inscription: avril 2008
Âge: 19
Messages: 83
Par défaut

super, merci, je vais regarder
cocosql est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 11h21   #14 (permalink)
Membre du Club
 
Avatar de cocosql
 
Date d'inscription: avril 2008
Âge: 19
Messages: 83
Par défaut

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
cocosql est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/04/2008, 08h35   #15 (permalink)
Membre du Club
 
Avatar de cocosql
 
Date d'inscription: avril 2008
Âge: 19
Messages: 83
Par défaut

Problème résolu ...


MERCI VIRGUL
cocosql est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > InfoPath

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide