Ich habe eine Handlung, die von Hunderten von Catergor-Werten überlagert ist. Wenn der Benutzer damit arbeitet, ist es nur sinnvoll, 2, 3, maximal 5 Kategorien und die Benutzer-ID über den Datenfilter zu vergleichen.
Nichts hindert den Benutzer jedoch daran, alle über 150 Kategorien auszuwählen. In diesem Fall werden sie alle in einer Legende angezeigt, wodurch Fenster völlig zerbrochen werden. Da Sie in diesem Fall sowieso nichts auf dem Plot sehen können, kann ich nur die Anzahl der Legendenelemente auf beispielsweise 20 beschränken, damit das Design nicht beschädigt wird und dennoch der Zweck erfüllt wird. Gibt es eine Möglichkeit, das Limit über JSL festzulegen?
OK ich habe es.
Berechnen Sie die Anzahl der Kategorien:
Categories = NItems(Associative Array (dt:CategoriesColumn));
Legen Sie fest, wie viele Legendenelemente Sie möchten:
LegendLevels = 3;
Erstellen Sie eine Liste mit der gleichen Anzahl von Elementen wie die Anzahl Ihrer Kategorien, füllen Sie sie mit fortlaufenden Nummern für die Ebenen, die Sie anzeigen möchten, und "-1" für den Rest:
p = {};
For(i=0, i < Categories, i+=1,
if(i <= (LegendLevels-1), p = Insert(p, i), p = Insert(p, -1))
);Verwenden Sie diese Liste beim Erstellen von Skripten für Ihren Graph Builder in SendToReport ():
Dispatch(
{},
"400",
LegendBox,
{Set Title( "Category" ), Legend Position( {5, Matrix(p)} ),
Position( Matrix(p) )}
)