Grâce à l'exemple que vous avez fourni en détail, TOUS LES PROBLÈMES (Q1, Q2) ont été résolus.
theList = {9, 10, [-1, -1, -1, -1]}; <BR />mat = Shape( Matrix( Index(<FONT color="#FF0000"> 0,</FONT> N Items( uni_bat ) - 1 ) ), <BR />N Items( uni_bat ) ) |/ [-1, -1, -1, -1, -1, -1, -1, -1];
Comme ci-dessus, dans le script que vous m'avez donné, j'ai pu rendre le résultat complètement ce que je voulais en ajoutant 0 devant N éléments.
Merci encore Jim pour les réponses toujours aimables !!!
S'il vous plaît soyez prudent COVID19!
Vous pouvez générer la partie dynamique de la position de la légende et créer la liste requise
Names Default To Here( 1 );
uni_bat = {a, b, c, d};
theList = {9, 10, [-1, -1, -1, -1]};
mat = Shape( Matrix( Index( 1, N Items( uni_bat ) - 1 ) ), N Items( uni_bat ) - 1 ) |/
[-1, -1, -1, -1, -1, -1, -1, -1, -1,-1, -1];
insert into(theList, mat, 2);
show(theList);
puis branchez-le dans le message Legend Position comme illustré dans l'exemple simplifié ci-dessous
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Show Control Panel( 0 ),
Variables(
X( :height ),
Y( :weight ),
Overlay( :sex )
),
Elements(
Points( X, Y, Legend( 3 ) ),
Smoother( X, Y, Legend( 4 ) )
)
);
theList = {3, 4, [2, 1]};
mat = [4,3];
insert into(theList,mat,2);
eval(parse("Report( gb )[LegendBox( 1 )] << Legend Position( "||char(theList)||" );"));Le code JSL que vous tentez de modifier peut être plus facilement géré à l'aide de messages envoyés aux messages Legend Box().Ci-dessous se trouve l'entrée de l'index de script qui donne un exemple de modification de la position de la légende.En utilisant cette méthode, la structure de votre instruction IF() fonctionnera comme vous l'avez supposé dans votre exemple.

Aller à
Aide=>Index des scripts
pour accéder à l'affichage ci-dessus