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

QlikView Discussion :

Afficher/Masquer boutons, feuilles


Sujet :

QlikView

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Points : 451
    Points
    451
    Par défaut Afficher/Masquer boutons, feuilles
    Bonjour,
    Je dois masquer/afficher des feuilles(-+ 50) suivant les droits des utilisateurs(+-50).
    Voici un extrait de la table.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    NomFeuille      UtilA     UtilB     UtilC     Util D     …+-50Utilisateurs
    Feuille1          0         1          1        1              …
    Feuille2	  0         0          0        0              …
    Feuille3          1         1          0        1             …
    …
    J’ai créé une « section access » avec les utilisateurs.
    Une feuille avec des boutons correspondant aux feuilles.
    Je compte masquer/afficher les boutons suivant l’utilisateur.
    Comment dans la propriété Layout déterminer si l’utilisateur(QVUser()) courant peut accéder ou non au rapport ??
    Merci pour vos idées.
    Jean

  2. #2
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Supposons que vous ayez ce script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Section Access;
    Access:
    LOAD * INLINE [
        ACCESS, USERID
        ADMIN, ADMIN
        ADMIN, UtilA
        ADMIN, UtilB
        ADMIN, UtilC
        ADMIN, UtilD
    ];
    Section Application;
     
     
     
    Feuilles:
    LOAD * INLINE [
    NomFeuille, UTILA, UTILB, UTILC, UTILD
    Feuille1, 0, 1, 1, 1
    Feuille2, 0, 0, 0, 0
    Feuille3, 1, 1, 0, 1
    ];


    Sur votre "Feuille 1", vous mettez comme condition d'affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    only(if(NomFeuille = 'Feuille1', $(=qvuser())))
    ainsi que sur les boutons qui permettent d'aller à la feuille.

    Si un utilisateur n'a pas le droit de voir la feuille, il ne pourra pas s'y rendre.


    Attention, dans la section d'accès, les champs sont automatiquement mis en majuscule.

    Donc si vous vous identifiez avec "UtilA", le résultat de "qvuser()" sera "UTILA". C'est pour cette raison que j'ai chargé la table avec des noms de colonnes en majuscule.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Points : 451
    Points
    451
    Par défaut Afficher/Masquer boutons, feuilles
    Merci pour votre réponse rapide.
    Mais
    Afin de simplifier la gestion des accès j'envisage d'utiliser cette table.(cela m'évite d'avoir des colonnes à n'en plus finir)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Test1:
    LOAD * INLINE [
    NomF, UTIL
    Feuil1, 'UTILA,'
    Feuil2, 'UTILA,UTILB,'UTILC'
    Feuil3, 'UTILB'
    ];
    Et utiliser un match sur QVUser <-->UTIL.
    Mais je ne vois pas comment filtrer les résultats sur une feuille spécifique.
    Avez-vous une autre idée géniale??
    Merci

  4. #4
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Avec votre script, vous pouvez utiliser la fonction "SubStringCount".

    Par contre, je vous conseille d'entourer vos chaines par un séparateur. Ainsi, si le nom d'un utilisateur est contenu dans le nom d'un autre, il n'y aura pas d'accès non souhaité.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Test1:
    LOAD * INLINE [
    NomF, UTIL
    Feuil1, ';UTILA;'
    Feuil2, ';UTILA;UTILB;UTILC;'
    Feuil3, ';UTILB;'
    ];

    Vous utiliserez pour la feuille 1, la condition d'affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SubStringCount(only(if(NomF = 'Feuil1', UTIL)), ';' & qvuser() & ';')
    Si la sous chaine n'est pas trouvée, cela renvoie "0", sinon ça retourne la position.




    Vous pouvez aussi faire une table qui contient le nom de la feuille et le nom de l'utilisateur, et faire autant de lignes qu'il y a d'utilisateur.
    Il suffira de faire un "count" sur le bon nom de la feuille et sur le bon nom de l'utilisateur pour savoir s'il doit avoir accès.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    LOAD * INLINE [
    NomF2, UTIL2
    Feuil1, UTILA
    Feuil2, UTILA
    Feuil2, UTILB
    Feuil2, UTILC
    Feuil3, UTILB
    ];
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Count(if(NomF2 = 'Feuil1' and UTIL2 = qvuser(), UTIL2))

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Points : 451
    Points
    451
    Par défaut Afficher/Masquer boutons, feuilles
    Bonjour,
    Encore merci pour vos solutions, cela résout mon problème.
    Jean

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

Discussions similaires

  1. Afficher / Masquer boutons dans classeur
    Par Un Internaute dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/04/2013, 12h46
  2. Afficher ou masquer bouton commande
    Par wachoo31 dans le forum IHM
    Réponses: 3
    Dernier message: 10/01/2008, 16h18
  3. Afficher et masquer des feuilles
    Par LaPanic dans le forum Excel
    Réponses: 10
    Dernier message: 05/09/2007, 11h27
  4. Afficher / Masquer un bouton dans un formulaire
    Par Alpha31 dans le forum IHM
    Réponses: 10
    Dernier message: 30/05/2006, 12h08
  5. Afficher/Masquer un bouton comme IE 6
    Par benj63 dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/07/2002, 13h12

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