NON RÉSOLU Interdiction de l'affichage d'une mesure Live Security: Première mesure ignorée
-
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:
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:
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:
On obtient ceci dans la Dashboard:
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
-
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"