可以更改字串 col box() 清單中的單一值嗎?你好。 我想知道是否有辦法更新字串 col box() 中的單一項目? 例如,是否有這樣的命令:
scb = StringColBox("title", mylist);
scb << Set Item(i, "newvalue"); //is there a cmd like this?我有一個帶有字串 col 框的窗口,我希望我的腳本更新單個值。 我目前的方法:
1.從字串col框中取得整個列表
2.修改列表
3. 將清單寫回字串 col 框。
這可行,但對於大型清單可能會很慢。
字串 col box() 顯示物件具有「設定」和「設定值」命令,但兩者似乎都設定整個清單。 也許還有另一種技巧可以用來更改單一項目?
JMP Pro 17.0.0
Mac 作業系統文圖拉 13.1
謝謝。
品質和工藝工程回覆:可以更改字串 col box() 清單中的單一值嗎?謝謝@tx尼爾森。 我也喜歡你的想法。 只是為了表明剝貓皮的方法不只一種。
-尼克爾斯
回覆:可以更改字串 col box() 清單中的單一值嗎?謝謝@jthi 。這很酷。 我以前從未見過 Data Table Box() 函數。 看起來,您只需將資料寫入資料表,視窗就會自動更新,而不是將資料寫入顯示框。 這為我打開了很多門。 出色的。
-尼克爾斯
回覆:可以更改字串 col box() 清單中的單一值嗎?以下是更改 String Col Box() 和 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>
回覆:可以更改字串 col box() 清單中的單一值嗎?我認為您不能在 String Col Box 中設定單一值(至少不容易)。
根據您的應用程序,可以選擇使用資料錶框
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";
您也可以使用列框和文字方塊建立字串列框。
回覆:可以更改字串 col box() 清單中的單一值嗎?錶框有可用的「刪除行」和「插入行」選項,這可能會對您有所幫助。如果錶框中的列多於一列,則追蹤錶框中的所有列可能會變得複雜
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"} );