# Dotnet > Gnral Dotnet > Dveloppement Office System > InfoPath > [IP-2010] Activer/Dsactiver un champ en fonction d'un autre

## debdev

Bonjour  tous,

On vient de m'installer Infopath et je crois que c'est un outil qui va m'tre utile pour crer des formulaires sur Sharepoint. Je suis donc en train de le dcouvrir, il semble intuitif  1re vue et pourtant je n'arrive pas  obtenir ce que je veux  ::roll:: 

J'ai une liste cr sur sharepoint avec diffrents champs.
J'ai choisi "Personnaliser la liste / Personnaliser le formulaire" => a m'ouvre Infopath.
J'ajoute une zone de liste droulante 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 rgle de mise en forme et je dis:
- condition: zone de liste droulante contient "le mot 3 de ma liste sharepoint"
- dsactiver ce contrle

Je voudrai que:
- si l'utilisateur choisit le mot 1 ou 2 dans le menu droulant, alors la zone de texte soit dispo.
- si l'utilisateur choisit le mot 3 dans le menu droulant, alors la zone de texte soit grise.

Et bien non, quel que soit le mot slectionn dans mon menu droulant, la zone de texte est dispo.
Qu'ai-je mal fait ?

Merci pour votre aide !

----------


## jff42

Bonjour,
Quand vous saisissez le texte dans l'assistant condition de rgle, il ne faut pas le mettre entre guillemets, l'assistant les rajoute.
Pour vrifier, passez en affichage xpath, et copiez-nous la rgle.

----------


## debdev

Salut !

Merci pour ta rponse.




> il ne faut pas le mettre entre guillemets, l'assistant les rajoute.


oui oui, c'est dj le cas, je ne saisis que le mot sans les guillemets.
je n'ai pas accs  mon ordi aujourd'hui pour faire des tests.

est-ce que je fais la bonne dmarche ?

----------


## billout rm

Bonjour,

Lorsque vous peuplez votre zone de liste droulante, utilisez vous la mme 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 ncessaire que votre rgle de mise en forme conditionnelle s'appuie sur la valeur associe  votre paramtrage"valeur" de votre zone de liste droulante.

Pour faire, plus simple et vrifier que vous ne faites pas d'erreur, slectionnez le champ associ  votre zone de liste droulante dans la section "Source de donnes" et faites un drag and drop dans la vue (vous aurez ainsi 2 fois le mme champ affich sous 2 formes diffrentes  : un affich en zone de liste droulante et un en zone de texte). Esnuite passez en mode affichage, et vrifier la valeur renseigne dans le champ texte lors de la slection de votre item 3 dans la zone de liste droulante).
Ce sera sur cette valeur que vous devrez baser votre mise en forme conditionnelle.

En esprant avoir t assez clair dans les explications.

Cordialement,

----------


## debdev

Hello,

Merci pour tes explications. J'ai russi  raliser ton test  ::ccool:: 

Quand je slectionne Titre_ABC dans le menu droulant n2, 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 rgles de mise en forme. J'ai donc fait le test avec les valeurs d'ID et effectivement c'est bon, mon controle est bien dsactiv selon ce que je slectionne dans le menu.

Mais est-il possible de me baser sur les Titres plutt que sur les ID ? car ce serait plus simple de m'y retrouver parmi les diffrentes rgles que je vais crer  ::roll:: 

Merci ++

----------


## billout rm

Bonjour,

Oui bien-sr cela est possible.
Il faut pour raliser un clic droit sur votre contrle zone de liste droulante dans la vue puis slectionner "Proprits".
Ensuite, dans les valeurs et nom complet (en bas de l'interface), il faudra positionner votre champ "Titre" de la source de donnes secondaire. Actuellement vous devez avoir ID et Title.

Cordialement,

----------


## debdev

Hello,

Merci pour tes explications.

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

Comment faire pour dire "je veux entrer du texte et pas un nombre" ?
Je n'ai pas trouv dans les proprits  ::oops:: 

Merci

----------


## billout rm

Alors pour se faire, il faut que vous vrifiez au niveau de la structure de la source de donnes du formulaire (visible dans la panneau "Champs"  droite d'InfoPath).
Il faut vrifier que vous n'ayez pas positionn entier dans le champ de la structure mapp sur la zone de liste droulante (faire un clic droit puis proprit sur la champ dans le panneau droit).

Cordialement,

----------


## debdev

Hello !

Merci pour tes explications.

Le type du champ menu droulant est indiqu Champ (lment).
Le type de donnes contenues dans le menu droulant est indiqu LookupType (je suppose que a signifie qu'il va chercher dans ma liste intitule ListeKeywordsBiblio).
Je ne peux pas modifier les types.
J'ai mis une copie d'cran en pice jointe.

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

Merci

----------


## billout rm

Ok, si c'est un lookup, il faudra qu'il soit mapp sur le champ ID...
Donc vous pouvez revenir en arrire pour stocker l'ID dans la zone de liste droulante et afficher la nom complet.
Il vous faudra par consquent crer un nouveau champ : txtDDL par exemple qui stockera le nom complet dans le XML du formulaire.
Ce nouveau champ aura une valeur par dfaut calcule de la manire suivante : Source de donnes secondaire / Titre puis rajouter filtr sur "ID dans la source de donnes secondaire = champ2 dans la source de donnes principale".

Cordialement,

----------


## debdev

Bonjour,

Dsl, je ne reviens qu'aujourd'hui sur ce forum, j'avais reu la notification mais je n'ai pas eu la possibilit de tester depuis.
Merci billout rm pour toutes tes explications.
Je m'aperois 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 !

----------

