產生可選複選框矩陣全部,
想知道產生可選複選框矩陣的最簡單方法是什麼。 所以我希望能夠做的是 - 產生一個非方矩陣並將其彈出以供用戶選擇用戶想要的矩陣中的任何位置。 只要使用者可以在一列中選擇多行,反之亦然 - 就可以很好地滿足需求。 任何幫助表示讚賞。
回覆:產生可選複選框矩陣我意識到我遲到了,希望你已經明白了這一點。主要問題是您從未在程式碼中顯示表格框。我相信下一個問題是您在建立表後立即對其進行分析。我想您想在用戶有機會選中這些框後執行此操作。希望下面的程式碼更接近您正在尋找的內容。
Names Default To Here( 1 );
InputsLoadBasic = Expr(
LB1 = Lineup Box( N Col( 2 ) );
LB1 << Append(
Panel Box( "Test",
V List Box( V List Box( Text Box( "Arg1" ), NEB_arg1 = Number Edit Box( 2 ), Text Box( "Arg2" ), NEB_arg2 = Number Edit Box( 3 ), ) )
)
);
LB1 << Append(
Panel Box( "Selectable Matrix Test",
V List Box(
Button Box( "Enter Target Matrix",
nR = 12;
nC = 24;
SCB1 = String Col Box( "", {} );
if(!isempty(TB1),
TB1 << Delete Box;
);
For( i = 1, i <= nR, i++,
SCB1 << Add Element( Char( i ) )
);
TB1 = Table Box( SCB1 );
For( i = 1, i <= nC, i++,
Insert Into( TB1, Check Box( Repeat( {" "}, nR ), <<SET heading=""></SET>回覆:產生可選複選框矩陣@Justin_Chilton / @tx尼爾森/ @托馬斯
我有一個後續問題,想知道你們中是否有人能想出一個方法來做到這一點。 我正在嘗試在面板框中生成可選框的矩陣。 這是我的腳本,想知道你是否可以指導我為什麼失敗?
InputsLoadBasic =
Expr(
LB1 = Lineup Box( N Col( 2 ) );
LB1 << Append(Panel Box( "Test",
V List Box(
V List Box(
Text Box( "Arg1" ),
NEB_arg1 = Number Edit Box( 2 ),
Text Box( "Arg2" ),
NEB_arg2 = Number Edit Box( 3 ),
)
)
)
);
LB1 << Append(Panel Box( "Selectable Matrix Test",
V List Box(
Button Box("Enter Target Matrix",
nR = 12;
nC = 24;
SCB1 = String Col Box( "", {} );
For( i = 1, i <= nR, i++,
SCB1 << Add Element( Char( i ) )
);
TB1 = Table Box( SCB1 );
For( i = 1, i <= nC, i++,
Insert Into( TB1, Check Box( Repeat( {" "}, nR ), <<SET heading=""></SET>
生成的 UI 看起來像我想要的,但是,當我單擊上面顯示的“輸入目標矩陣”按鈕時,它並沒有執行我想要的操作。 你能幫忙嗎
回覆:產生可選複選框矩陣您可以使用 <
nRow = 5;
nCol = 6;
// string col box for row labels
scb = String Col Box( "", {} );
// add labels to rows
For( i = 1, i <= nRow, i++,
scb << Add Element( "row" || Char( i ) )
);
// create a table box to contain everything
tbl = Table Box( scb );
// add all columns with the given number of rows
For( i = 1, i <= nCol, i++,
Insert Into(
tbl,
Check Box(
Repeat( {" "}, nRow ),
<<SET heading=""></SET>
窗戶:

回覆:產生可選複選框矩陣@Justin_Chilton ,
我的 1 個後續問題是 - 是否可以在每列頂部和每行開頭新增文字?
如果是這樣,那麼有效的方法是什麼? 它們中的每一個都應該包含在文字方塊中嗎?
回覆:產生可選複選框矩陣@uday_guntupalli ,
您可以在表格方塊中使用 CheckBox() 建立複選框表。
nRow = 5;
nCol = 6;
// create a table box to contain everything
tbl = Table Box();
// add all columns with the given number of rows
For( i = 1, i <= nCol, i++,
Insert Into( tbl, Check Box( Repeat( {" "}, nRow ) ) )
);
New Window( "Check Box Example",
tbl,
Button Box( "Show results",
// initialize the result
result = {};
// loop through each row
For( i = 1, i <= nRow, i++,
// initialize the row list
result[i] = {};
// loop through each column getting values
For( j = 1, j <= nCol, j++,
result[i][j] = tbl[CheckBoxBox( j )] << get( i )
);
);
// convert the list to a 2-d matrix
result = Matrix( result );
Show( result );
)
);
視窗如下圖所示:

這是日誌中包含上述選定複選框的結果:
result =
[ 1 0 0 0 0 0,
0 1 0 0 0 0,
0 0 1 0 0 0,
0 0 0 1 0 0,
0 0 0 0 1 0];
回覆:產生可選複選框矩陣@托馬斯,
我認為適合我的需求 - 看起來不錯。 但是,如果可以的話,我有幾個後續問題:
1. 所選職位可以恢復嗎? - 如果是 - 您能否提供一個如何檢索該資料的範例?
2. 是否可以在此視窗周圍添加更多文字? 更像是 X 軸標籤和 Y 軸標籤
回覆:產生可選複選框矩陣這不是一個非常優雅的解決方案,但類似這樣的解決方案可能會起作用:
lv={};
for(i=1,i<=4,i++, insert into(lv,""));
tCB="";
for(j=1,j<6,j++,tCB||="check box( (lv)),");
tCB=substr(tcB,1,length(tCB)-1);
eval(parse(eval insert("wind=new window( \!"Check boxes\!",
H List Box(
^tCB^))")));