Tengo una trama superpuesta por cientos de valores categóricos. Cuando el usuario trabaja con él, solo tiene sentido comparar 2, 3, máximo 5 categorías y la identificación del usuario haciéndolo a través del filtro de datos.
Pero nada impide que el usuario seleccione las más de 150 categorías. En este caso, todos se muestran en forma de leyenda, rompiendo totalmente las ventanas. Como de todos modos no podrías ver nada en la trama en este caso, estoy de acuerdo con simplemente limitar el número de elementos de leyenda a, digamos, 20, para que no rompa el diseño y siga cumpliendo su propósito. ¿Alguna forma de especificar el límite a través de JSL?
Ok, lo tengo.
Calcule el número de categorías:
Categories = NItems(Associative Array (dt:CategoriesColumn));
Configure cuántos elementos de leyenda desea:
LegendLevels = 3;
Construya una lista que tenga la misma cantidad de elementos que la cantidad de categorías que tiene, llénela con números consecutivos para los niveles que desea mostrar y "-1" para el resto:
p = {};
For(i=0, i < Categories, i+=1,
if(i <= (LegendLevels-1), p = Insert(p, i), p = Insert(p, -1))
);Utilice esta lista cuando cree un script en su Graph Builder, dentro de SendToReport ():
Dispatch(
{},
"400",
LegendBox,
{Set Title( "Category" ), Legend Position( {5, Matrix(p)} ),
Position( Matrix(p) )}
)