colore righe TableBoxHo una casella di tabella che contiene testo ma anche pulsanti e voglio colorarla più di 1 colore
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" );Il problema è che se rimuovo le ultime 2 righe, colora le ultime 2 righe in rosso, ma se eseguo le ultime 2 righe, rimuove il colore rosso e colora in verde la riga superiore invece di lasciare il colore rosso come BENE
prima di eseguire le ultime 2 righe:

dopo aver eseguito le ultime 2 righe

c'è un modo per colorare la scatola del tavolo in più di 1 colore? (Voglio che abbia entrambi i colori rosso e verde)
Ho provato a lavorare anche con journal, ma poi non sono sicuro di come aggiungere i pulsanti.
Grazie!
Personalizzazione di massaRi: colora le righe della TableBoxPuoi facilmente verificare qual è il problema utilizzando Imposta script su uno dei pulsanti dalla finestra che si apre:

i è l'argomento quando dovrebbe essere il numero. Potresti andare con il modo Eval(Parse()) per risolverlo:
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))))));
);Vuoi che lo script Set assomigli a questo (almeno in questo caso):

Il modo "migliore" per farlo dipenderà molto probabilmente dall'applicazione.
Ri: colora le righe di TableBoxGrazie! questo aiuta molto
ho 1 ultima domanda:
utilizzando questo codice, sto cercando di creare per ogni pulsante un valore diverso nella funzione.
quindi in questo esempio se clicco sul pulsante 1 dovrebbe stampare 1, se clicco 2 dovrebbe stampare 2 e così via..
ma per qualche motivo il valore non "si attacca" e qualsiasi pulsante su cui clicco dice 4. (4 è il numero di i dopo la fine del 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);C'è un modo per risolvere questo problema?
Ri: colora le righe della TableBoxNon sono completamente sicuro di cosa ci sia di sbagliato lì (potrebbe essere che Col Box() non prenderebbe l'elenco come argomento in quanto sembra aver bisogno di caselle di visualizzazione separate da virgole). Ma questo potrebbe essere un modo per farlo:
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);Ri: colora le righe della TableBoxGrazie! questo aiuta molto!
ma cosa succede se voglio creare pulsanti in modo dinamico
bblist = {};
For( i = 1, i <= 3, i++,
bb_expr = Eval Insert( "\[bblist[i] = buttonbox("test")]\" );
Eval( Parse( bb_expr ) );
bb << append( bblist[i] );
);quando provo a fare
rep << append(Col Box("Open Graph", bb));non funziona
qualche suggerimento?
Ri: colora le righe della TableBoxAvevo uno script in cui volevo fare qualcosa di simile (alla fine ci ho rinunciato e sono andato con un approccio diverso per l'applicazione, perché è diventato un po' troppo complicato per i miei gusti senza motivo).
L'ho modificato un po 'e questo ti darà la finestra di base:
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);L'idea era di colorare il datatable, ottenere il datatable come report, aggiungere pulsanti a quel report e infine aggiungerlo a una nuova finestra (e ridimensionare).
Ri: colora le righe della TableBoxanche se non puoi farlo con table box, c'è un altro modo per farlo? il problema è che devo aggiungere anche i pulsanti in qualche modo