확인란의 테이블 상자에 색인을 생성하는 방법모두,
나는 확인란의 n 테이블 상자를 가지고 있습니다. 그 중 일부를 선택하도록 어떻게 설정할 수 있는지 궁금합니다.
LB_b = Lineup Box(N Col(1));
nR = 10;
nC = 10;
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>트리 구조를 보면 왜 요소에 접근할 수 없는지 궁금합니다. 나는 운없이 다음과 같은 것을 시도했습니다. 또한 목표는 확인란 열을 선택할 수 있는 것이 아니라 매트릭스에서 단일 확인란을 선택하는 것입니다.
</CODE></PRE><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-108906" slang="en-US" mode="NONE">Re: 체크박스의 테이블 상자에 색인을 생성하는 방법</LINGO-SUB><LINGO-BODY id="lingo-body-108906" slang="en-US" mode="NONE"><P>이 코드는 저장된 1과 0 행렬에서 확인란을 설정합니다.</P>
<PRE><CODE class=" language-jsl">// Set some random values in this matrix
saved_cbmat =
[ 1 0 0 1 0 0 0 0 0 0,
0 0 0 0 0 0 0 0 0 0,
0 1 0 0 0 0 0 0 0 0,
0 1 0 0 0 0 1 0 0 0,
0 1 0 1 0 0 1 0 1 0,
0 0 0 0 0 0 0 0 0 1,
0 0 0 0 0 0 0 0 1 1,
0 0 0 0 0 0 0 0 1 0,
0 0 0 0 0 0 0 0 1 0,
0 0 0 0 0 0 0 0 0 0];
n = 10; // # rows
m = 10; // # cols
a = 1::n;
// Create a list of empty text fields as checkbox labels
cb_list = {};
for (i = 1, i <= n, i++,
cb_list[i] = "";
);
cbmat = j(n, m, 0);
// Create the window
nw = new window("Test",
tb = table box(
ncb = number col box("", a),
),
okb = button box("OK",
for (i = 1, i <= m, i++,
for (k = 1, k <= n, k++,
cbmat[k, i] = cb[i] << get(k);
),
);
show(cbmat);
nw << close window;
),
);
// Create an array of checkbox columns
cb = {};
// Add the checkboxes
for (i = 1, i <= m, i++,
cb[i] = checkbox(cb_list);
cb[i] << set heading(char(i));
tb << append(cb[i]);
);
// Preload the checkboxes from the saved matrix
for (i = 1, i <= m, i++,
for (k = 1, k <= n, k++,
on_off = saved_cbmat[k, i];
cb[i] << set(k, on_off);
),
);
TB1["CheckBoxBox(1)"] << select ; <BR />
Re: 체크박스의 테이블 상자에 색인을 생성하는 방법@pmroz 그리고 @txnelson ,
귀하의 응답에 감사드립니다. 그러나 가능하다면 내 질문의 주요 부분, 즉 어떻게 선택하도록 설정합니까(나의 나쁜 점 - 확인하도록 요청해야 함)가 해결되지 않은 것 같습니다. 확인란을 선택하는 방법을 안내해 주시겠습니까?
제 생각에는 @pmroz 님의 응답은 확인란에 대한 색인을 생성하는 방법을 제공하지만 각 개별 확인란이 아닌 열별로 참조하는 것 같습니다. 나는 내가 추구하는 것을 좀 더 자세히 설명하려고 노력할 것입니다.
내가 게시한 스니펫은 다음과 같이 선택 가능한 확인란의 매트릭스를 제공합니다.

이제 사용자가 선택을 하면 다음을 사용하여 선택 항목을 언로드할 수 있습니다.
NW = New Window("Test",
VLB0 = V List Box(Align(center),
LB_b
)
);
VLB0 << Append(
H List Box(
BB_TargetMatrix = Button Box( "OK",
ResMat = {};
// loop through each row
For( i = 1, i <= nR, i++,
ResMat[i] = {};
// loop through each column getting values
For( r = 1, r <= nC, r++,
ResMat[i][r] = TB1[CheckBoxBox( r )] << get( i )
);
);
ResMat = Matrix( ResMat );
)// end of button box
)// end of H List Box
);
그러나 일부 확인란이 미리 선택된 상태로 테이블 상자를 표시할 수 있는 방법을 알고 싶습니다. 체크박스를 설정하는 데 사용하고 싶은 테이블 상자와 같은 크기의 행렬이 있습니다.
Re: 체크박스의 테이블 상자에 색인을 생성하는 방법필요한 작업을 수행하는 방법은 다음과 같습니다.
n = 10; // # rows
m = 10; // # cols
a = 1::n;
// Create a list of empty text fields as checkbox labels
cb_list = {};
for (i = 1, i <= n, i++,
cb_list[i] = "";
);
cbmat = j(n, m, 0);
// Create the window
nw = new window("Test",
tb = table box(
ncb = number col box("", a),
),
okb = button box("OK",
for (i = 1, i <= m, i++,
for (k = 1, k <= n, k++,
cbmat[k, i] = cb[i] << get(k);
),
);
show(cbmat);
nw << close window;
),
);
// Create an array of checkbox columns
cb = {};
// Add the checkboxes
for (i = 1, i <= m, i++,
cb[i] = checkbox(cb_list);
cb[i] << set heading(char(i));
tb << append(cb[i]);
);

cbmat =
[ 1 0 0 0 0 0 0 0 0 0,
1 0 0 0 0 0 0 0 0 0,
1 0 1 0 0 0 0 0 0 0,
0 0 1 0 0 0 0 0 0 0,
0 0 1 0 1 0 0 0 0 0,
0 0 0 0 1 0 1 0 0 0,
0 0 0 0 0 0 1 0 0 0,
0 0 0 0 0 0 1 0 0 0,
0 0 0 0 0 0 0 0 0 0,
0 0 0 0 0 0 0 0 0 0];
Re: 체크박스의 테이블 상자에 색인을 생성하는 방법2개의 참조 문제가 있습니다.
TB1["CheckBoxBox(1)"] << select ;
첫 번째는
TB1["CheckBoxBox(1)"]
"CheckBoxBox()"라는 제목의 개요 상자를 찾고 있습니다.즉, "CheckBoxBox()"를 따옴표로 묶어서 CheckBoxBox() 개체를 찾는 것이 아니라 제목이 "CheckBoxBox(1)"인 개체를 찾고 있는 것입니다.
둘째,
<< Select
CheckBoxBox()를 사용할 수 있다는 메시지가 아닙니다.
TB1[CheckBoxBox(1)] << get selected ;
<< get selected가 선택된 각 확인란의 문자열 값을 반환한다는 사실과 확인란의 모든 문자열 값이 " "로 설정되어 있다는 사실을 제외하고는 원하는 것입니다. 그게 전부입니다. 반환됩니다. 따라서 해야 할 일은 각 확인란을 반복하면서 값을 찾는 것입니다. 다음은 간단한 예입니다.
For( c = 1, c <= 10, c++,
For( r = 1, r <= 10, r++,
If( T[CheckBoxBox( c )] << get( r ) == 1,
Show( c, r )
)
)
)