J'ai un tracé recouvert de centaines de valeurs catégorielles. Lorsque l'utilisateur travaille avec, il est logique de comparer 2, 3, 5 catégories maximum et l'identifiant de l'utilisateur en le faisant via un filtre de données.
Mais rien n’empêche l’utilisateur de sélectionner les plus de 150 catégories. Dans ce cas, ils sont tous affichés dans la légende, brisant totalement les fenêtres. Puisque vous ne pourrez de toute façon rien voir sur l'intrigue dans ce cas, je suis d'accord avec la simple limitation du nombre d'éléments de légende à, disons, 20, afin que cela ne brise pas la conception et continue de remplir son objectif. Un moyen de spécifier la limite via JSL ?
OK j'ai compris.
Calculez le nombre de catégories :
Categories = NItems(Associative Array (dt:CategoriesColumn));
Configurez le nombre d'éléments de légende souhaités :
LegendLevels = 3;
Construisez une liste qui a le même nombre d'éléments que le nombre de catégories que vous avez, remplissez-la avec des numéros consécutifs pour les niveaux que vous souhaitez afficher et "-1" pour le reste :
p = {};
For(i=0, i < Categories, i+=1,
if(i <= (LegendLevels-1), p = Insert(p, i), p = Insert(p, -1))
);L'utilisation de cette liste lors du script de votre Graph Builder, à l'intérieur de SendToReport() :
Dispatch(
{},
"400",
LegendBox,
{Set Title( "Category" ), Legend Position( {5, Matrix(p)} ),
Position( Matrix(p) )}
)