filas de TableBox de colorTengo un cuadro de tabla que tiene texto pero también botones y quiero colorearlo más de 1 color
col1 = {1, 2, 3};
col2 = {1, 2, 3};
col3 = {1, 2, 3};
myPlatform = New Window( "test",
tb = Table Box(
Number Col Box( "a", col1 ),
Number Col Box( "b", col2 ),
Number Col Box( "c", col3 ),
bb = Col Box( "Open Graph" )
)
);
bblist = {};
For( i = 1, i <= 3, i++,
bb_expr = Eval Insert( "\[bblist[i] = buttonbox("ok")]\" );
Eval( Parse( bb_expr ) );
bb << append( bblist[i] );
);
tb << Set Selectable Rows(1);
dt = tb << Make into Data Table( invisible );
rs = dt << Get Rows Where( :a > 1 );
tb << Set Selected Rows( rs );
tb << Set Selected Row Color( "red" );
rs = dt << Get Rows Where( :a == 1 );
tb << Set Selected Rows( rs );
tb << Set Selected Row Color( "green" );El problema es que si elimino las últimas 2 líneas, colorea las últimas 2 líneas en rojo, pero si ejecuto las últimas 2 líneas, elimina el color rojo y colorea en verde la línea superior en lugar de dejar el color rojo como Bueno
antes de ejecutar las últimas 2 líneas:

después de ejecutar las últimas 2 líneas

¿Hay alguna manera de colorear el cuadro de la mesa en más de 1 color? (Quiero que tenga colores rojo y verde)
También intenté trabajar con el diario, pero no estoy seguro de cómo agregar los botones.
¡gracias!
La personalización en masaRe: colorear filas de TableBoxPuede verificar fácilmente cuál es el problema usando Establecer secuencia de comandos en uno de los botones de la ventana que se abre:

i es el argumento cuando debería ser el número. Podrías ir con Eval (Parse ()) para solucionarlo:
For( i = 1, i <= 3, i++,
Insert Into(bblist, Eval(Parse("buttonbox(\!"test"||char(i)||"\!",newFunc("||char(i)||"))")));
);O Eval(Eval Expr()):
For( i = 1, i <= 3, i++,
Eval(EvalExpr(Insert Into(bblist, buttonbox("test"||char(expr(i)),newFunc(expr(i))))));
);Desea que Set Script se vea así (al menos en este caso):

Lo más probable es que la "mejor" forma de hacer esto dependa en gran medida de la aplicación.
Re: colorear filas de TableBox¡gracias! esto ayuda mucho
Tengo 1 última pregunta:
usando este código, estoy tratando de crear para cada botón un valor diferente en la función.
entonces, en este ejemplo, si hago clic en el botón 1, debería imprimir 1, si hago clic en 2, debería imprimir 2 y así sucesivamente.
pero por alguna razón, el valor no se "pega" y cualquier botón en el que haga clic dice 4. (4 es el número de i después de que finaliza el ciclo)
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(3),
Compress File When Saved(1),
New Column("a",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 2, 3])
),
New Column("b",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([2, 2, 3])
),
New Column("c",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([2, 2, 3])
),
invisible
);
newFunc = function({i},
print(i);
);
dt << Select Where(:a > 1);
For(i = 1, i <= N Cols(dt), i++,
Column(dt, i) << Color Cells("Red");
);
dt << Clear Select;
dt << Select Where(:a == 1);
For(i = 1, i <= N Cols(dt), i++,
Column(dt, i) << Color Cells("Green");
);
dt << Clear Select;
rep = dt << get as report;
Close(dt, no save);
nw = New Window("Example",
hlb = h list box()
);
bblist = Expr(col box("Open Graph"));
For( i = 1, i <= 3, i++,
Insert Into(bblist, buttonbox("test"||char(i),newFunc(i)));
);
rep << append(bblist);
hlb << append(rep);
tb = (hlb << XPath("//TableBox"))[1];
tb << Set Scrollable(5,5);¿Hay alguna manera de arreglar esto?
Re: colorear filas de TableBoxNo estoy completamente seguro de qué está mal allí (podría ser que Col Box() no tomaría la lista como argumento, ya que parece necesitar cuadros de visualización separados por comas). Pero esta podría ser una forma de hacerlo:
bblist = Expr(col box("Open Graph"));
For( i = 1, i <= 3, i++,
Insert Into(bblist, buttonbox("test"||char(i)));
);
rep << append(bblist);
hlb << append(rep);Re: colorear filas de TableBox¡gracias! esto ayuda mucho!
pero que pasa si quiero crear botones dinamicamente
bblist = {};
For( i = 1, i <= 3, i++,
bb_expr = Eval Insert( "\[bblist[i] = buttonbox("test")]\" );
Eval( Parse( bb_expr ) );
bb << append( bblist[i] );
);cuando trato de hacer
rep << append(Col Box("Open Graph", bb));no funciona
¿cualquier sugerencia?
Re: colorear filas de TableBoxTenía un guión en el que quería hacer algo similar (al final me di por vencido y opté por un enfoque diferente para la aplicación, porque se volvió demasiado complicado para mi gusto sin ninguna razón).
Lo modifiqué un poco y esto te dará la ventana básica:
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(3),
Compress File When Saved(1),
New Column("a",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 2, 3])
),
New Column("b",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([2, 2, 3])
),
New Column("c",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([2, 2, 3])
),
invisible
);
dt << Select Where(:a > 1);
For(i = 1, i <= N Cols(dt), i++,
Column(dt, i) << Color Cells("Red");
);
dt << Clear Select;
dt << Select Where(:a == 1);
For(i = 1, i <= N Cols(dt), i++,
Column(dt, i) << Color Cells("Green");
);
dt << Clear Select;
rep = dt << get as report;
Close(dt, no save);
nw = New Window("Example",
hlb = h list box()
);
rep << append(Col Box("Open Graph", Button Box("ok"),Button Box("ok"),Button Box("ok")));
hlb << append(rep);
tb = (hlb << XPath("//TableBox"))[1];
tb << Set Scrollable(5,5);La idea era colorear la tabla de datos, obtener la tabla de datos como informe, agregar botones a ese informe y finalmente agregarlo a una nueva ventana (y cambiar el tamaño).
Re: colorear filas de TableBoxincluso si no puede hacerlo con la caja de la mesa, ¿hay otra forma de hacerlo? el problema es que también necesito agregarle los botones de alguna manera