Hola comunidad JMP,
Quiero extraer elementos de un Diario existente en función de su estado Contraído/Expandido. Intenté usar el método "La raíz << está colapsada (nodo)", pero devuelve un valor vacío independientemente del estado Colapsado/Expandido (ver JSL trabajo en progreso abajo).
(JMP 16.1, Windows 10 Pro)
Preguntas:
- ¿El método "<< is Collapsed" es aplicable a las estructuras de los diarios?
- Si es así, ¿cuál es su uso correcto, especialmente con respecto a las definiciones de "raíz" y "nodo"?
- Si no es así, ¿qué alternativa podría usar para devolver el estado colapsado de un elemento del diario?
Names Default to Here (1);
winlist = Window () << Get Window Title ();
For( i = N Items( winlist ), i > 0, i--,
If( (Window( winlist[i] ) << Window Class Name) != "Journal",
Remove From( winlist, i )
)
);
If (N items (winlist) == 0, New Window ("ERROR", Text Box ("!!!! NO JOURNAL CURRENTLY OPENED !!!!")); throw (1));
dw = New Window (" PICK A JOURNAL ",
<< MODAL,
V List Box (
Text Box (" SELECT A JOURNAL"),
wl = List Box ( winlist,
Width (500),
Max Selected (1),
nlines (10)
),
Text Box (" Enter number of plots per row"),
nbe = Number Edit Box (5),
Text Box (" REMOVE LEGEND? "),
rb = Radio Box( {"YES", "NO"}),
Text Box (" PLOT ONLY EXPANDED? "),
rb2 = Radio Box( {"YES", "NO"}),
Button Box ("OK", jrn_l = (wl << get selected); npr = nbe << get (); lg_x = rb << get (); ex_x = rb2 << get (); switch = 1),
Button Box ("CANCEL", switch = 0; Throw(1))
),
);
show (jrn_l);
show (npr);
show (lg_x);
show (ex_x);
If (switch == 0, Throw (1));
jrn = Get Window (jrn_l [1]);
show (jrn);
nplot = N Items (jrn << Xpath ("//OutlineBox"));
dummy = Lineup Box(N Col (1));
win = New window ("PLOTS",
mybox = Lineup Box (N Col (npr))
);
For (i = 1, i<= nplot, i++,
collp = jrn << is collapsed (OutlineBox (i));
show (collp);
if (collp == 1,
dummy = Lineup Box(N Col (1));
Plot = jrn [PictureBox (i)];
dummy << Append (Plot);
if(lg_x == 1,
zzz = Dummy << Xpath ("//LegendBox");
zzz << delete
);
mybox << Append (Dummy)
)
);
Gracias.
Mejor,
TS
Is Collapsed()
es la forma adecuada de trabajar con cuadros de contorno para determinar si están abiertos o cerrados (expandidos o contraídos); En otra dimensión, un cuadro de contorno tiene una dimensión de visibilidad, que se ocupa de la visualización real del objeto.El elemento Visibility() se usa para hacer que un objeto sea Visible, Oculto o Contraído.La función Get Visibility() determina el estado de visibilidad de los objetos de visualización.
Names Default To Here( 1 );
//This message applies to all display box objects
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
d = dt << Distribution( Column( :height ) );
r = d << report;
tb = r[Table Box( 1 )];
Show( tb << Get Visibility );
Wait( 2 );
tb << Visibility( "Collapse" );
Show( tb << Get Visibility );
Hola @txnelson ,
También encontré ese ejemplo en la Ayuda de secuencias de comandos, pero no devuelve el estado colapsado de un elemento en un diario. En cambio, devuelve el estado Visible/Oculto de un elemento que, lamentablemente, no es el mismo.
Además, me pregunto si << Obtener visibilidad funciona de manera diferente en un informe activo que en un diario.
Gracias por tus conocimientos.
Mejor,
TS
Hola comunidad JMP y @txnelson ,
Después de revisar todos los métodos aplicables a los objetos de OutlineBox, finalmente encontré la solución a mi propia consulta: << ObtenerAbrir devuelve 1 para elementos expandidos y 0 para elementos contraídos.
Mejor,
TS