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 :

Listbox, champ texte et WebServices


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 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.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 519
    Points : 1 663
    Points
    1 663
    Par défaut
    Ben c'est le même principe donc je ne vois pas trop ce que tu veux savoir.

  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
    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. #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
    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."

  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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      <?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. #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
    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."

  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
    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 ^^

  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
    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 Fichiers attachés
    "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
    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

  10. #10
    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
    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."

  11. #11
    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
    lol merci mais y'a encore un souci de sécurité ^^




    excuse moi ^^ mais merci beaucoup

  12. #12
    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
    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."

  13. #13
    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
    super, merci, je vais regarder

  14. #14
    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 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 : 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
    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

  15. #15
    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
    Problème résolu ...


    MERCI VIRGUL

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

Discussions similaires

  1. [AC-2002] Texte riche dans un ListBox / champ d'une table?
    Par CrashLemon dans le forum IHM
    Réponses: 1
    Dernier message: 14/06/2012, 17h02
  2. Réponses: 2
    Dernier message: 12/01/2010, 11h57
  3. Que privilégier : %like% dans champs texte, ou plain text ?
    Par Dimitri01 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/01/2004, 11h45
  4. [MSDE 2000] Récup champ text depuis proc stockée
    Par Air'V dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/12/2003, 19h47
  5. [Pb : champ Text = pas de valeur par defaut ?]
    Par mat_dum dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 18/08/2003, 12h57

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