Ho una trama a cui sono sovrapposti centinaia di valori categorici. Quando l'utente ci lavora, ha senso confrontare solo 2, 3, massimo 5 categorie e l'ID utente tramite il filtro dei dati.
Ma nulla impedisce all'utente di selezionare tutte le oltre 150 categorie. In questo caso vengono tutti visualizzati nella legenda, rompendo completamente le finestre. Dato che in questo caso non saresti comunque in grado di vedere nulla sulla trama, mi va bene limitare il numero di elementi della leggenda a, diciamo, 20, quindi non interrompe il design e serve comunque allo scopo. Un modo per specificare il limite tramite JSL?
Ok ho capito.
Calcola il numero di categorie:
Categories = NItems(Associative Array (dt:CategoriesColumn));
Imposta quanti elementi della legenda vuoi:
LegendLevels = 3;
Costruisci un elenco che abbia lo stesso numero di elementi quante categorie hai, riempilo con numeri consecutivi per i livelli che vuoi mostrare e "-1" per il resto:
p = {};
For(i=0, i < Categories, i+=1,
if(i <= (LegendLevels-1), p = Insert(p, i), p = Insert(p, -1))
);Utilizzare questo elenco durante lo script del Generatore di grafici, all'interno di SendToReport():
Dispatch(
{},
"400",
LegendBox,
{Set Title( "Category" ), Legend Position( {5, Matrix(p)} ),
Position( Matrix(p) )}
)