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 :

Activer/Désactiver un champ en fonction d'un autre [IP-2010]


Sujet :

InfoPath .NET

  1. #1
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut Activer/Désactiver un champ en fonction d'un autre
    Bonjour à tous,

    On vient de m'installer Infopath et je crois que c'est un outil qui va m'être utile pour créer des formulaires sur Sharepoint. Je suis donc en train de le découvrir, il semble intuitif à 1ère vue et pourtant je n'arrive pas à obtenir ce que je veux

    J'ai une liste créé sur sharepoint avec différents champs.
    J'ai choisi "Personnaliser la liste / Personnaliser le formulaire" => ça m'ouvre Infopath.
    J'ajoute une zone de liste déroulante que je renseigne à partir des informations de ma liste sharepoint.
    J'ajoute une zone de texte libre.
    Sur cette zone de texte, j'ajoute une règle de mise en forme et je dis:
    - condition: zone de liste déroulante contient "le mot 3 de ma liste sharepoint"
    - désactiver ce contrôle

    Je voudrai que:
    - si l'utilisateur choisit le mot 1 ou 2 dans le menu déroulant, alors la zone de texte soit dispo.
    - si l'utilisateur choisit le mot 3 dans le menu déroulant, alors la zone de texte soit grisée.

    Et bien non, quel que soit le mot sélectionné dans mon menu déroulant, la zone de texte est dispo.
    Qu'ai-je mal fait ?

    Merci pour votre aide !

  2. #2
    Membre éclairé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mai 2007
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 724
    Points : 787
    Points
    787
    Par défaut
    Bonjour,
    Quand vous saisissez le texte dans l'assistant condition de règle, il ne faut pas le mettre entre guillemets, l'assistant les rajoute.
    Pour vérifier, passez en affichage xpath, et copiez-nous la règle.
    Jean-François Fustec - Consultant Formateur - SharePoint - Office 365 - Infopath Lotus

  3. #3
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut
    Salut !

    Merci pour ta réponse.

    il ne faut pas le mettre entre guillemets, l'assistant les rajoute.
    oui oui, c'est déjà le cas, je ne saisis que le mot sans les guillemets.
    je n'ai pas accès à mon ordi aujourd'hui pour faire des tests.

    est-ce que je fais la bonne démarche ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Lorsque vous peuplez votre zone de liste déroulante, utilisez vous la même valeur pour le champ "Valeur" et le champ "Nom complet"? C'est une sorte de gestion à la "value" et "displayed value". Par conception, InfoPath stocke dans le champ XML associé la "Valeur" et nom le "Nom complet".

    Il est donc nécessaire que votre règle de mise en forme conditionnelle s'appuie sur la valeur associée à votre paramètrage"valeur" de votre zone de liste déroulante.

    Pour faire, plus simple et vérifier que vous ne faites pas d'erreur, sélectionnez le champ associé à votre zone de liste déroulante dans la section "Source de données" et faites un drag and drop dans la vue (vous aurez ainsi 2 fois le même champ affiché sous 2 formes différentes : un affiché en zone de liste déroulante et un en zone de texte). Esnuite passez en mode affichage, et vérifier la valeur renseignée dans le champ texte lors de la sélection de votre item 3 dans la zone de liste déroulante).
    Ce sera sur cette valeur que vous devrez baser votre mise en forme conditionnelle.

    En espérant avoir été assez clair dans les explications.

    Cordialement,
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  5. #5
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut
    Hello,

    Merci pour tes explications. J'ai réussi à réaliser ton test

    Quand je sélectionne Titre_ABC dans le menu déroulant n°2, alors dans la zone de texte correspondant au champ 2, je vois inscrit ID1 et non Titre_ABC
    => j'en conclus qu'il faut que je me base sur les valeurs d'ID pour mes régles de mise en forme. J'ai donc fait le test avec les valeurs d'ID et effectivement c'est bon, mon controle est bien désactivé selon ce que je sélectionne dans le menu.

    Mais est-il possible de me baser sur les Titres plutôt que sur les ID ? car ce serait plus simple de m'y retrouver parmi les différentes règles que je vais créer

    Merci ++

  6. #6
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Oui bien-sûr cela est possible.
    Il faut pour réaliser un clic droit sur votre contrôle zone de liste déroulante dans la vue puis sélectionner "Propriétés".
    Ensuite, dans les valeurs et nom complet (en bas de l'interface), il faudra positionner votre champ "Titre" de la source de données secondaire. Actuellement vous devez avoir ID et Title.

    Cordialement,
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  7. #7
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut
    Hello,

    Merci pour tes explications.

    J'ai modifié les propriés de mon menu déroulant et j'ai mis "Titre" à la fois dans la zone "Valeur" et dans la zone "Nom complet".
    J'ai modifié ma règle de mise en forme en mettant dans ma zone de texte: désactive-toi si mon menu déroulant contient Titre_ABC et non plus ID1.
    Quand je publie mon formulaire, la règle de mise en forme fonctionne mais je ne peux pas sauvegarder l'enregistrement car ça me met un message d'erreur pour mon menu déroulant: entier positif uniquement

    Comment faire pour dire "je veux entrer du texte et pas un nombre" ?
    Je n'ai pas trouvé dans les propriétés

    Merci

  8. #8
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Alors pour se faire, il faut que vous vérifiez au niveau de la structure de la source de données du formulaire (visible dans la panneau "Champs" à droite d'InfoPath).
    Il faut vérifier que vous n'ayez pas positionné entier dans le champ de la structure mappé sur la zone de liste déroulante (faire un clic droit puis propriété sur la champ dans le panneau droit).

    Cordialement,
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  9. #9
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut
    Hello !

    Merci pour tes explications.

    Le type du champ menu déroulant est indiqué Champ (élément).
    Le type de données contenues dans le menu déroulant est indiqué LookupType (je suppose que ça signifie qu'il va chercher dans ma liste intitulée ListeKeywordsBiblio).
    Je ne peux pas modifier les types.
    J'ai mis une copie d'écran en pièce jointe.

    Est-ce un problème de droit que je n'aurai pas pour modifier le type autorisé dans le champ ?

    Merci
    Images attachées Images attachées  

  10. #10
    Membre éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    Par défaut
    Ok, si c'est un lookup, il faudra qu'il soit mappé sur le champ ID...
    Donc vous pouvez revenir en arrière pour stocker l'ID dans la zone de liste déroulante et afficher la nom complet.
    Il vous faudra par conséquent créer un nouveau champ : txtDDL par exemple qui stockera le nom complet dans le XML du formulaire.
    Ce nouveau champ aura une valeur par défaut calculée de la manière suivante : Source de données secondaire / Titre puis rajouter filtré sur "ID dans la source de données secondaire = champ2 dans la source de données principale".

    Cordialement,
    Rémi MATAYRON
    N'hésitez pas à visiter mon blog dédié à InfoPath et SharePoint : http://rmatayron.blogspot.com/

    Pour plus de visibilité sur le forum, marquer la question en [Résolu] lorsque la réponse fournie vous convient.

  11. #11
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut
    Bonjour,

    Dsl, je ne reviens qu'aujourd'hui sur ce forum, j'avais reçu la notification mais je n'ai pas eu la possibilité de tester depuis.
    Merci billout rm pour toutes tes explications.
    Je m'aperçois qu'infopath va m'être utile en l'associant à Sharepoint. Du coup, je vais surement avoir l'occasion de poster de nouvelles questions ;-)

    Bon week end à tous !

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/02/2017, 13h39
  2. [IP-2010] Activer /désactiver un champ
    Par smthg.bzr dans le forum InfoPath
    Réponses: 2
    Dernier message: 24/01/2011, 16h31
  3. Réponses: 2
    Dernier message: 03/12/2008, 07h32
  4. Modifier la valeur d'un champ en fonction d'une autre...
    Par venividivici dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 25/08/2005, 14h28
  5. Activation d'un champ en fonction d'une réponse
    Par soso78 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 30/05/2005, 09h59

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