# Dotnet > Gnral Dotnet > Dveloppement Office System > InfoPath > [IP-2010] filtre infopath (affichage d'un d'une valeur d'un champ suite  au choix d'une valeur)

## nisrin

Bonjour , j'ai un problme concernant filtre sur infopath.

j'ai 2 listes marque et model .et j'ai une 3 eme liste personne la j'ai 3 colonne :  Nom , choixmarque,choix model . quand je slectionne marque automatiquement les model de cette marque s'affiche .jusque maintenant tous marche bien.

j'ai une 4 eme liste la ce que je veux c'est quand je slectionne une personne automatiquement la marque q'il a ou bien le model s'affiche  .je me suis bloqu la .qu'il est le filtre  suivre pour raliser a .Merci d'avance .

----------


## billout rm

Bonjour,

Il faut que votre 3me liste ait la structure suivante:
Nom : Texte,Marque : Recherche vers la liste des marques,Modles : Recherche vers la liste des modles.

Dans InfoPath, il faut ramener dans votre connexion de donnes les champs de cette liste.
Lors de l'affectation du nom de la personne (qui d'aprs ce que j'ai compris est une dropdownlist), il faut ajouter 2 rgles:

Rgle de type Action pour affecter les marques :
Affecter le champ "Marque"Valeur : Slectionner la source de donnes secondaire de votre 3me liste, slectionner la colonne marqueAppuyer sur le bouton filtrerSlectionnez sur la colonne "Personne" (dans la zone de liste droulante de gauche) : colonne "Non" de votre source de donnes secondaire base sur la liste 3,Slectionnez l'oprateur "est gal " (dans la zone de liste droulante centrale),Slectionnez le champ personne dans la source de donnes principale (dans votre source de donnes principale).Puis la mme chose avec une rgle de type action pour affecter les modles.


A priori, cela devrait fonctionner.
Il suffit de comprendre la logique une premire fois et aprs a droulera tout seul.

Cordialement,

----------


## jff42

Bonjour,
Pour rcuprer l'info d'une deuxime colonne de la connexion de donnes, soit dans un champ (valeur par dfaut, *recalcule* automatiquement) soit dans un contrle de *valeur calcule*, il faut construire la formule _Fx_ ainsi :
- Insrer une valeur ou un *champ*
- slectionner la *connexion secondaire* (Liste Personnes) et non pas *Principale*
- choisir la colonne (Marque)
- cliquer sur *Filtrer* (sinon on rcupre la valeur de la colonne mais pour le premier lment de la liste Personne)
- dfinir la condition de filtre pour rcuprer la ligne qui correspond  la personne slectionne :
* insrer un champ... dans *connexion secondaire Liste Personnes*: Identifiant_Personne* est gal * insrer un champ... dans *Principale* : Personnepuis validez toutes les fentres.

----------


## nisrin

Bonjour,
Merci bcp Mr billout rm et Mr  jff42 pour vos  rponse .je vais essay a et je vais vous faire part du rsultat   ::): 
 bonne journe .
Cordialement

----------


## nisrin

Bonjour , je reviens en vous encore une fois. j'ai essay d'appliquer vos solutions mais sans  resulat .je selctionne la personne mais sa marque ne s'affiche pas.portant le filtre me parait logique .est ce que je dois faire autre chose.
note  : le champ marque et model sont de type valeur calcul dans ma 4 me liste.

Merci d'avance .
cordialement

----------


## billout rm

Bonjour,

Avant tout il faut tre sr que vous rcuprez les bonnes informations depuis la connexion de donnes.
Pour se faire je vous conseille d'afficher toutes les valeurs renvoyes dans votre formulaire de test. Faire un drag and drop de votre source de donnes secondaire (depuis la racine) dans la vue courante de votre formulaire.

Cela permettra de vrifier que vous comparez bien les bonnes valeurs de champs.

Cordialement,

----------


## nisrin

Bonjour merci pour votre rponse.
si vous permettez Mr billout rm de m'expliquer ce que vous voulez dire avec (afficher toutes les valeurs renvoyes dans votre formulaire de test).
j'ai bien suivi vos instruction concernant le filtre.
-j'ai appliquer une regle de type action sur la liste deroulante qui m'affiche les personnes
-apres (definir la valeur d'un champ ) c'est le champ model (liste pricipale)
-valeur: insrer un champ la je selctionne choixmarque(liste secondaire "personne") filtrer les donnes  gauche je selctionne nom (liste secondaire "personne"). egale   droite je selctionne Personne (liste pricipale)
je sais pas si je me suis trompe quelque part .
petite qst: on va pas se servir de la liste source de model ou marque !!

Cordialement

----------


## nisrin

maintenant il m'affiche ID du model de la personne et non pas le nom Model .a peut etre quoi le problme!.

----------


## billout rm

A quel moment vous affiche-t'il l'ID : lors de la rouverture du formulaire? lors de la modification des valeurs d'un champ?
Dans votre liste de droulante, vous pouvez voir la valeur displayname + le ID de l'lment slectionn.

Cela provient surement du paramtrage de votre zone de liste droulante par rapport  votre rgle d'affectation.
Lors du paramtrage de la source de donnes, vous avez mettre le "Title" en valeur affich et non complet ("display name" et "internal name" des zones de liste droulante).

Dans le mme temps, vous avez surement paramtr la rgle d'affectation comprenant le filtre sur votre source de donnes en slectionnant l'ID.
Du coup, l'ID est dfini comme valeur interne dans la zone de liste droulante mais vu que vous avez paramtr la valeur interne sur le champ "Titre", InfoPath ne sait pas faire le mappage.

Il s'agit surement de votre rgle d'affectation qui affecte le champ ID dans votre champ mapp sur la zone de liste droulante au lieu d'utiliser le champ "Title".
Il faut donc vrifier dans le paramtre de la zone de liste droulante.

----------


## nisrin

Bonjour .Ok  merci bcp je vais refaire tous.
bien cordialement

----------


## nisrin

voila ID s'affiche au niveau de liste sharepoint .
j'ai pu afficher le nom au niveau de formulaire infopath mais ds la liste c'est ID qui est enregsit

----------


## billout rm

Bonjour,

Cela est normal car la liste affiche la valeur stocke dans le champ : Qui en l'occurrence est l'ID chez vous (vous avez du mettre "ID"' dans la valeur)
Si ce n'est pas le comportement souhait, vous devez aller dans les proprits de votre zone de liste droulante et slectionner "Titre" pour votre valeur et le nom complet.

Si vous souhaitez malgr tout conserver l'ID et le libell. Il faut crer une rgle qui ira peupler un nouveau champ avec le libell associ  l'ID que vous stockez.

----------

