couleur des lignes TableBoxJ'ai une boîte de table qui contient du texte mais aussi des boutons et je veux la colorer de plus d'une couleur
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" );Le problème est que si je supprime les 2 dernières lignes, il colore les 2 dernières lignes en rouge, mais si je lance les 2 dernières lignes, il supprime la couleur rouge et colore en vert la ligne du haut au lieu de laisser la couleur rouge comme Bien
avant d'exécuter les 2 dernières lignes :

après avoir exécuté les 2 dernières lignes

existe-t-il un moyen de colorer la boîte de table en plus d'une couleur ? (Je veux qu'il ait à la fois des couleurs rouges et vertes)
J'ai également essayé de travailler avec le journal, mais je ne sais pas comment ajouter les boutons.
merci!
Personnalisation de masseRe: colorer les lignes TableBoxVous pouvez facilement vérifier quel est le problème en utilisant Set Script sur l'un des boutons de la fenêtre qui s'ouvre :

i est l'argument alors qu'il devrait être le nombre. Vous pouvez utiliser la méthode Eval(Parse()) pour résoudre ce problème :
For( i = 1, i <= 3, i++,
Insert Into(bblist, Eval(Parse("buttonbox(\!"test"||char(i)||"\!",newFunc("||char(i)||"))")));
);Ou Eval(Eval Expr()):
For( i = 1, i <= 3, i++,
Eval(EvalExpr(Insert Into(bblist, buttonbox("test"||char(expr(i)),newFunc(expr(i))))));
);Vous voulez que le Set Script ressemble à ceci (au moins dans ce cas):

La "meilleure" façon de procéder dépendra très probablement de l'application.
Re: colorer les lignes TableBoxmerci! cela aide beaucoup
J'ai 1 dernière question :
en utilisant ce code, j'essaie de créer pour chaque bouton une valeur différente dans la fonction.
donc dans cet exemple, si je clique sur le bouton 1, il devrait imprimer 1, si je clique sur 2, il devrait imprimer 2 et ainsi de suite.
mais pour une raison quelconque, la valeur ne "colle" pas et tout bouton sur lequel je clique indique 4. (4 est le nombre de i après la fin de la boucle)
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);Y'a t'il un moyen d'arranger cela?
Re: colorer les lignes TableBoxPas tout à fait sûr de ce qui ne va pas là-bas (il se peut que Col Box() ne prenne pas la liste comme argument car il semble avoir besoin de zones d'affichage séparées par des virgules). Mais cela pourrait être une façon de le faire :
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: colorer les lignes TableBoxmerci! cela aide beaucoup !
mais que se passe-t-il si je veux créer des boutons dynamiquement
bblist = {};
For( i = 1, i <= 3, i++,
bb_expr = Eval Insert( "\[bblist[i] = buttonbox("test")]\" );
Eval( Parse( bb_expr ) );
bb << append( bblist[i] );
);quand j'essaie de faire
rep << append(Col Box("Open Graph", bb));ça ne marche pas
toute suggestion?
Re: colorer les lignes TableBoxJ'avais un script où je voulais faire quelque chose de similaire (à la fin, j'ai abandonné et j'ai opté pour une approche différente pour l'application, car c'était un peu trop compliqué à mon goût sans raison).
Je l'ai un peu modifié et cela vous donnera la fenêtre de 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'idée était de colorer la table de données, d'obtenir la table de données sous forme de rapport, d'ajouter des boutons à ce rapport et enfin de l'ajouter à une nouvelle fenêtre (et de la redimensionner).
Re: colorer les lignes TableBoxmême si vous ne pouvez pas le faire avec la boîte de table, y a-t-il un autre moyen de le faire ? le problème est que je dois aussi ajouter les boutons d'une manière ou d'une autre