Navigation

    Communauté Digdash

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    UNSOLVED Interdiction de l'affichage d'une mesure Live Security: Première mesure ignorée

    Discussion Générale
    2
    2
    294
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      Boubekeur last edited by

      Bonjour,

      J'aimerais interdire l'affichage de certaines mesures (taux de marge réelle et taux de marge standard) pour certains utilisateurs à l'aide des paramètres utilisateurs.

      J'ai donc créé deux paramètres utilisateurs VisionTauxMargeBrut et VisionTauxMargeReelle.
      J'ai ensuite créé un utilisateur "test" pour tester cette interdiction.

      Voici ma fonction de Live Security:

      // Code Société
      
      var codeSociete = getUserAttribute("CodeSociete");
      
      if (codeSociete != null && codeSociete != "") {
          var tabSociete = codeSociete.split("|");
          var dim = selection.dm.getDimensionById("Initiales Société");
          var filt = new FilterSelection(dim, -1, -1, [], tabSociete);
          selection.setFilter(filt);
      }
      
      // Vision taux de marge brut
      
      var visionTauxMrgBrut = getUserAttribute("VisionTauxMargeBrut");
      
      if (visionTauxMrgBrut !== "" && visionTauxMrgBrut != null) {
          if (visionTauxMrgBrut == 0) {
              var indexBrut = selection.indexOfMeasure("Taux de marge brut");
              if (indexBrut > 0)
                  selection.removeMeasure(indexBrut);
                  
              var indexBrutN = selection.indexOfMeasure("Taux de marge brut (Année)");
              if (indexBrutN > 0)
                  selection.removeMeasure(indexBrutN);
                  
              var indexBrutNm1 = selection.indexOfMeasure("Taux de marge brut (Année - 1)");
              if (indexBrutNm1 > 0)
                  selection.removeMeasure(indexBrutNm1);
          }
      }
      
      // Vision taux de marge standard
      
      var visionTauxMrgStandard = getUserAttribute("VisionTauxMargeStandard");
      
      if (visionTauxMrgStandard !== "" && visionTauxMrgStandard != null) {
          if (visionTauxMrgStandard == 0) {
              var indexStd = selection.indexOfMeasure("Taux de marge standard");
              if (indexStd > 0)
                  selection.removeMeasure(indexStd);
                  
              var indexStdN = selection.indexOfMeasure("Taux de marge standard (Année)");
              if (indexStdN > 0)
                  selection.removeMeasure(indexStdN);
                  
              var indexStdNm1 = selection.indexOfMeasure("Taux de marge standard (Année - 1)");
              if (indexStdNm1 > 0)
                  selection.removeMeasure(indexStdNm1);
          }
      }
      

      Pour tester cette fonction, j'ai créé un flux de type tableau et j'ai déposé toutes les mesures concernées. Voici les entêtes de ce tableau:
      a69f559c-41f0-4e46-9277-0d8b78a8c20a-image.png

      L'utilisateur "test" a pour paramètres les valeurs VisionTauxMargeBrut = 1 et VisionTauxMargeBrut = 0 (1 = oui, 0 = non)

      Voici ce que tout cela donne dans la Dashboard:
      40e95d34-fd95-4237-bd2a-ffe0a4fc0ebf-image.png

      Pour une raison que j'ignore, la première colonne de type mesure n'est pas filtrée. On peut voir le Taux de marge standard (Année) qui est la première colonne mesure, et pas tout le reste. On voit tous les taux de marge bruts donc il n'y a pas de problème de ce côté là.

      Si je change l'emplacement des colonnes en mettant une mesure taux de marge brut en premier, par exemple comme cela:
      74bbdeb4-9845-4078-855c-141a0f5f0093-image.png

      On obtient ceci dans la Dashboard:
      02bee2c3-199b-4283-aad5-f37b3c3d36f4-image.png

      Comme on peut le constater toutes les mesures taux de marge standard ont été filtrées.

      J'aimerais que la première colonne mesure ne soit pas ignorée si on doit la filtrer.

      Cordialement,

      BOUBEKEUR

      1 Reply Last reply Reply Quote 0
      • A
        Alexandre CAMPOS Mod last edited by

        Bonjour @Boubekeur,

        @boubekeur a dit dans Interdiction de l'affichage d'une mesure Live Security: Première mesure ignorée :

        if (indexStd > 0)

        Les indexes commence à 0 donc la condition ci-dessus explique le comportement observé.

        il faut remplacer les conditions "> 0" par "!= -1"

        1 Reply Last reply Reply Quote 0
        • 1 / 1
        • First post
          Last post
        • Accueil
        • Webinaires
        • Documentation
        • Interviews
        • Vidéos tutos