Gracias al ejemplo que proporcionó en detalle, TODOS LOS PROBLEMAS (Q1, Q2) se han resuelto.
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];
Como arriba, en el script que me diste, pude hacer que el resultado fuera completamente lo que quería al agregar 0 delante de N elementos.
¡Gracias de nuevo Jim por las respuestas siempre amables!
¡Cuidado con el COVID19!
Puede generar la parte dinámica de la Posición de Leyenda y construir la lista requerida
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);
y luego conéctelo al mensaje de Posición de leyenda como se muestra en el siguiente ejemplo simplificado
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)||" );"));El código JSL que está intentando modificar se puede manejar más fácilmente usando mensajes enviados a los mensajes de Legend Box().A continuación se muestra la entrada del índice de secuencias de comandos que ofrece un ejemplo de cómo modificar la posición de la leyenda.Usando este método, la estructura de su declaración IF() funcionará como supuso que lo haría en su ejemplo.

Ir
Ayuda=>Índice de secuencias de comandos
para acceder a la pantalla anterior