mardi 30 septembre 2008

LinksList 06

.NET


SHAREPOINT

Filtrer un champ recherche dans Sharepoint

Une problématique simple :
Vous avez un champ recherche dans une liste.
Vous voulez, lorsque vous ajoutez ou mettez à jour un élément de cette liste, pouvoir filtrer ce champ recherche (par exemple en n'affichant que des personnes ayant un statut particulier dans la liste liée).

Plusieurs méthodes :
  1. Filtered Lookup Lists in SharePoint : dont le principal inconvénient est d'avoir à mettre les mains dans le javascript à chaque fois, mais ça marche.

  2. Les champs calculés :
    avantage > simple et standard,
    inconvénient > solution incomplète, ne gère pas les mises à jours et suppression, vous êtes donc obligé de complèter avec un custom field (cf. point suivant)

    Allons-y avec un exemple :
    1. vous avez une Liste "Personnes" avec un champ "Statut" (liste de choix, ex : "OK", "PAS OK").
    2. Vous avez une seconde liste "Affectation" avec un champ recherche qui pointe vers votre liste "Personnes". A ce stade, toutes les personnes seront affichées dans votre champ recherche sans distinction de statut.
    3. Vous voulez que ne figure que les personnes ayant le statut "OK". Ajoutez un champ Valeur calculée (calcul basé sur d'autres colonnes) dans votre liste "Personnes" avec la formule =SI(Statut="OK";Titre;"") . En un mot, si le statut de l'élément en cours est "OK", la valeur de ce champ calculé sera le titre de l'élément, sinon il est vide.
    4. Dans votre liste affectation, modifiez votre champ recherche pour qu'il pointe vers votre nouveau champ calculé. Ainsi, quand vous créez une affectation, n'apparaisse dans votre liste de personne que ceux ayant le statut "OK". La moitié du chemin est fait, il faut ensuite compléter avec un custom field qui se chargera de la prise en charge des changements (et oui! si vous modifiez par la suite le statut des personnes )

  3. Un custom Field :
    avantage > fait ce que vous voulez, comme vous voulez.
    inconvénient > compliqué
    Les colonnes personnelles (custom field) avec Sharepoint - Club d'entraide des développeurs francophones
    Développer une colonne lookup personnelle avec de l'AJAX - Club d'entraide des développeurs francophones
    Custom Field Types