Re : Possible de modifier une seule valeur dans une liste de chaînes col box() ?Il existe des options Supprimer une ligne et Insérer une ligne disponibles pour la zone de tableau, qui pourraient vous aider.S'il y a plus d'une colonne dans la zone de table, cela peut devenir complexe, en gardant une trace de toutes les colonnes de la zone de table
Names Default To Here( 1 );
New Window( "test",
tb = Table Box(
String Col Box( "string col", {"a", "b", "c", "d"} )
)
);
Wait( 5 );
tb << delete row( 2 );
tb << insert row( 2, {"x"} );Re : Possible de modifier une seule valeur dans une liste de chaînes col box() ?Je ne pense pas que vous puissiez définir des valeurs uniques dans String Col Box (du moins pas facilement).
Selon votre application, l'utilisation de Data Table Box peut être une option
Names Default To Here(1);
Names Default To Here(1);
dt = New Table("BOX",
New Column("SCB_VALS", Character, Nominal, Values({"A","B","C"}))
, private
);
nw = New Window("Example",
window:dt = dt,
dtb = Data Table Box(dt)
);
nw << On Close(function({this},
Close(this:dt, no save);
));
wait(1);
dt[1,1] = "D";
Vous pouvez également créer une boîte de col de chaîne à l'aide de Col Box et de zones de texte.
Re : Possible de modifier une seule valeur dans une liste de chaînes col box() ?Voici un exemple complet de modification de valeurs uniques dans une String Col Box() et dans une Number Col Box()

Names Default To Here( 1 );
dtData = Open( "$SAMPLE_DATA/big class.jmp", private );
dt = New Table( "hidden", private, New Column( "theRow", set values( Index( 1, N Rows( dtData ) ) ) ) );
dt << update( with( dtData ) );
Close( dtData, nosave );
numberList = As List( Column( dt, 1 ) << get values );
For Each( {value, i}, numberList, numberList[i] = Char( value ) );
nw = New Window( "Example",
H List Box(
myTable = Table Box(
c0 = Number Col Box( "", Column( dt, 1 ) << get values ),
c1 = String Col Box( Column( dt, 2 ) << get name, Column( dt, 2 ) << get values ),
c2 = Number Col Box( Column( dt, 3 ) << get name, Column( dt, 3 ) << get values ),
c3 = String Col Box( Column( dt, 4 ) << get name, Column( dt, 4 ) << get values ),
c4 = Number Col Box( Column( dt, 5 ) << get name, Column( dt, 5 ) << get values ),
c5 = Number Col Box( Column( dt, 6 ) << get name, Column( dt, 6 ) << get values )
),
Panel Box( "Change Values",
H List Box(
cb1 = Combo Box( {"Name", "Age", "Sex", "Height", "Weight"} ),
cb2 = Combo Box( numberList ),
teb = Text Edit Box( "", <<SET width=""></SET>
Re : Possible de modifier une seule valeur dans une liste de chaînes col box() ?Merci @jthi .C'est super. Je n'ai jamais vu la fonction Data Table Box() auparavant. Il semble qu'au lieu d'écrire des données dans des boîtes d'affichage, vous les écrivez simplement dans une table de données et la fenêtre se met à jour automatiquement. Cela m'ouvre beaucoup de portes. Excellent.
-nikles
Re : Possible de modifier une seule valeur dans une liste de chaînes col box() ?Merci @txnelson . J'aime aussi ton idée. Cela montre juste qu'il y a plus d'une façon d'écorcher un chat.
-nikles
Possible de changer une seule valeur dans une liste de chaînes col box() ?Salut. Je me demande s'il existe un moyen de mettre à jour un seul élément dans une chaîne col box()? Par exemple, y a-t-il une commande comme :
scb = StringColBox("title", mylist);
scb << Set Item(i, "newvalue"); //is there a cmd like this?J'ai une fenêtre avec une chaîne de caractères col et j'aimerais que mon script mette à jour une seule valeur. Ma méthode actuelle :
1. Obtenez la liste complète à partir de la boîte de dialogue de la chaîne
2. Modifier la liste
3. Réécrivez la liste dans la boîte de caractères col de la chaîne.
Cela fonctionne, mais peut être lent pour les grandes listes.
L'objet d'affichage string col box() a à la fois une commande "Set" et "Set Values", mais les deux semblent définir la liste entière. Peut-être y a-t-il une autre astuce que l'on peut utiliser pour changer des éléments individuels ?
JMP Pro 17.0.0
MacOS Ventura 13.1
Merci.
Ingénierie de la qualité et des procédés