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

Lotus Notes Discussion :

Filtrer une vue avec une liste d'argument


Sujet :

Lotus Notes

  1. #1
    Nouveau Candidat au Club
    Filtrer une vue avec une liste d'argument
    Bonjour,

    Je dispose d'un formulaire avec un champs utilisateur (supérieur hiérarchique) ainsi qu'un autre champs qui liste toutes les personnes qui sont sous sa responsabilité (de 1 à n personnes et à pour nom PERSONNEL).

    Dans ce formulaire, il y a une vue intégrée qui liste tous les utilisateurs. cela est fonctionnel.

    Je souhaiterais filtrer cette vue avec la liste des personnes du champs PERSONNEL du formulaire.

    la requête de sélection de ma vue est la suivante:
    SELECT (Form= "msqCONGES" | Form= "msqCONGESCF" | Form= "msqMODULATION" | Form= "msqMISSIONS") & ARCHIVE != "1" (ce qui me liste actuellement tous les utilisateurs)
    La première colonne est catégorisée avec le champs utilisateur (Demandeur)

    lorsque je modifie la cette requête en dur comme ci-dessous, cela fonctionne:
    Code SQL :Sélectionner tout -Visualiser dans une fenêtre à part
    SELECT  (Form= "msqCONGES" | Form= "msqCONGESCF" |  Form= "msqMODULATION" | Form= "msqMISSIONS") & ARCHIVE != "1" & Demandeur = "CN=Patrice DUPONT/O=XXX":"CN=Maurice DUPONT/O=XXX"


    J'ai bien un filtrage actif sur les 2 utilisateurs, mais lorsque je veux passer en paramètre la valeur du champs, rien ne se passe.
    Code SQL :Sélectionner tout -Visualiser dans une fenêtre à part
    SELECT  (Form= "msqCONGES" | Form= "msqCONGESCF" |  Form= "msqMODULATION" | Form= "msqMISSIONS") & ARCHIVE != "1" & Demandeur = PERSONNEL


    Je me suis donc tourner vers la fonction @SetViewInfo mais elle ne semble pas prendre en compte la liste et ne prend que le premier utilisateur:
    @SetViewInfo([SetViewFilter];PERSONNEL;"Demandeur";1) => insérée dans l'objet PostOpen

    Quelqu'un aurait il une solution?

  2. #2
    Membre expérimenté
    de mémoire le paramètre de recherche de @setviewinfo est de type chaine hors si le champ contient une liste, c'est le premier élément du champ qui est recherché.

  3. #3
    Membre averti
    Un index de vue, c'est comme un index SQL : il est tenu à jour par le serveur dans son coin, indépendamment de l'interface utilisateur / formulaires. Donc modifier la requête à la volée, niet.

    Pour affiner l'affichage de cet index, tu as effectivement tes deux solutions :
    - dans une vue intégrée, lui demander de n'afficher qu'une catégorie dépendant de ton paramètre
    - dans une vue avec une colonne triée, avec le SetViewFilter (le vrai "filtre" au sens Domino), cela permet de cacher les lignes de la vue qui ne correspondent pas à UN paramètre (et non une liste).
    Mais ton problème reste le même dans les deux cas.

    Pour filtrer/catégoriser selon ton idée, il faudrait faire en dur des catégorie/colonnes qui concatènent "Patrice DUPONT_Maurice DUPONT_etc.." (tous les collabs du manager). C'est vilain, mais ça peut marcher si tu as peu de collabs.

    La façon de filtrer de la logique informatique, ce serait de filtrer selon un seul paramètre : le nom du manager. Mais cela implique que ce nom soit inscrit dans chaque doc.. ce n'est pas passionnant, mais ça reste un bon moyen. Sinon mettre le nom de l'équipe au lieu du manager.

###raw>template_hook.ano_emploi###