모달 창에서 이전 선택을 기반으로 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?다음 스크립트에서는 다음을 수행하고 싶습니다.
TestTech 선택에 따라 적절한 TestStage 확인란 목록이 나타나기를 원합니다( 나타나다 바람직하지 않다면 활발해지다 모든 옵션을 표시해야 하는 경우).그래서,
- Tech1을 선택한 경우 _Tech1이 포함된 모든 TestSage를 사용자가 선택할 수 있어야 합니다.
- Tech2를 선택한 경우 _Tech2가 포함된 모든 TestSage를 사용자가 선택할 수 있어야 합니다. 이 목록은 아래에 설명되어 있습니다.
- Tech3을 선택한 경우 _Tech3이 포함된 모든 TestSages를 사용자가 선택할 수 있어야 합니다. 이 목록은 아래에 설명되어 있습니다.
또한 각 목록 아래에서 "모두 선택" 옵션을 사용할 수 있기를 바랍니다.
어떻게 해야 하나요?
Names Default To Here( 1 );
Clear Log ();
listInd = {};
returned2 = {};
win = New Window( "Select Tech & TestStage", << modal,
V List Box (
tb1=Text Box("Select Tech", << set font style("bold")),
cb1 = List Box(
{"Tech1", "Tech2", "Tech3"},
returned1 = (cb1 << Get Selected());
listInd= cb1 << Get Selected Indices;
),
tb1=Text Box("Select one or more TestStage", << set font style("bold")),
cb2 = Check Box(
{"Sage1_Tech1", "Sage2_Tech1", "Sage3_Tech1", "Sage4_Tech1", "Sage5_Tech1", "Sage6_Tech1"},
//{"Sage1_Tech2", "Sage2_Tech2", "Sage3_Tech2", "Sage4_Tech2", "Sage5_Tech2", "Sage6_Tech2"},
//{"Sage1_Tech3", "Sage2_Tech3", "Sage3_Tech3", "Sage4_Tech3", "Sage5_Tech3", "Sage6_Tech3"},
returned2 = (cb2 << Get Selected());
),
tb3=Text Box("Query TestDate (last 6 months selected by default)", << set font style("bold")),
end_date = Today();
start_date = Date Increment(end_date, "month", -6, "actual");
cb3 = H List Box(
Text Box("From:"),
scal = Number Edit Box(
start_date,
<<SET format=""></SET>
자동화 및 스크립팅윈도우Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?이것은 당신이 무엇을 할 수 있는지에 대한 몇 가지 아이디어를 줄 수 있습니다
Names Default To Here(1);
lb_values = {"Tech1", "Tech2", "Tech3"};
cb_values = {"Sage1_Tech1", "Sage2_Tech1", "Sage3_Tech1", "Sage4_Tech1", "Sage5_Tech1", "Sage6_Tech1",
"Sage1_Tech2", "Sage2_Tech2", "Sage3_Tech2", "Sage4_Tech2", "Sage5_Tech2", "Sage6_Tech2",
"Sage1_Tech3", "Sage2_Tech3", "Sage3_Tech3", "Sage4_Tech3", "Sage5_Tech3", "Sage6_Tech3"
};
expr_update_cb = Expr(
cur_sel = lb << get selected;
If(N Items(cur_sel),
cur_cb_values = Filter Each({val}, cb_values,
cur_tech = Word(2, val, "_");
Contains(cur_sel, cur_tech);
);
,
cur_cb_values = cb_values;
);
cb2 << Set items(cur_cb_values);
);
win = New Window("Select Tech & TestStage", <<MODAL></MODAL>Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?@jthi 감사해요. 스크립트 실행은 모든 항목을 표시하여 시작됩니다. 테스트스테이지 아래에 테스트스테이지 기본적으로(아래에 붙여넣음) 그런 다음 기술 선택하면 필요에 따라 작동합니다.
먼저 아무것도 표시하지 않도록 스크립트를 수정할 수 있습니까? 테스트스테이지 선택 텍스트를 선택한 다음 기술 선택되면 적절하고 사용 가능한 TestStages를 표시하시겠습니까?

Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?cb_values 대신 빈 목록을 사용하여 확인란을 초기화할 수 있습니다.
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?@jthi 나는 이미 시도했다
cb_values = {};하지만 내 생각에는 이것을 올바르게 배치하지 않은 것 같습니다. 이 진술은 어디로 가야 합니까?
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?이곳은 처음으로 해당 값을 설정하는 곳입니다.

또한 선택이 완료되지 않은 경우 항상 비어 있도록 하려면 expr_update_cb를 약간 수정해야 합니다.
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?@jthi . 그 경우에 나는
cb_values = {};정확했지만 약간의 수정은 하지 않았습니다. expr_update_cb.cb2= Check Box(... 앞에 위 줄을 배치하면 필요한 작업이 한 번 수행되지 않습니다. 기술 선택되었습니다. 생각.......
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?cb_values가 아닌 빈 목록으로 확인란을 초기화합니다(이들은 서로 다릅니다).
표현 내에서 고려해야 할(그리고 이해해야 할) 부분입니다.

여기서 if 문이 사용되는 이유는 무엇입니까? 우리가 다른 곳으로 가면 어떻게 될까요? 그것이 없으면 빈 목록이 있고 Filter Each로 이동하면 어떻게 될까요?
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?@jthi 조언해 주셔서 감사합니다. 어젯밤에 시도했지만 지금까지는 성공하지 못했습니다.
아래에서 항목을 선택하지 않은 경우 요구 사항을 이해하는 방법은 다음과 같습니다. 파운드 그 다음에 cb2 보여서는 안 됩니다. cb2는 N개 항목(cur_sel)이 있는 경우에만 표시되어야 합니다. ≥1.
하지만, expr_update_cb 하나 이상의 항목이 선택된 경우에만 실행됩니다. 파운드
수정하는 방법이 명확하지 않습니다. expr_update_cb 아무것도 선택되지 않은 경우 실행됩니다. 파운드
아래에 아무것도 표시하지 않아야 한다는 요구 사항이 있는 경우 cb2 if/else 문으로 처리해야 합니다. 파운드 즉, lb에서 아무것도 선택하지 않은 경우 표시되지 않습니다. cb2?
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?Names Default To Here(1);
lb_values = {"Tech1", "Tech2", "Tech3"};
cb_values = {"Sage1_Tech1", "Sage2_Tech1", "Sage3_Tech1", "Sage4_Tech1", "Sage5_Tech1", "Sage6_Tech1",
"Sage1_Tech2", "Sage2_Tech2", "Sage3_Tech2", "Sage4_Tech2", "Sage5_Tech2", "Sage6_Tech2",
"Sage1_Tech3", "Sage2_Tech3", "Sage3_Tech3", "Sage4_Tech3", "Sage5_Tech3", "Sage6_Tech3"
};
expr_update_cb = Expr(
cur_sel = lb << get selected;
If(N Items(cur_sel),
cur_cb_values = Filter Each({val}, cb_values,
cur_tech = Word(2, val, "_");
Contains(cur_sel, cur_tech);
);
,
cur_cb_values = cb_values;
);
cb2 << Set items(cur_cb_values);
);
win = New Window("Select Tech & TestStage", <<MODAL></MODAL>Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?@jthi 원래 스크립트를 반복해서 게시한 이유가 무엇인지 잘 모르겠지만, 여기가 내가 해야 할 일이고 여전히 필요에 따라 작동하지 않으며 아마도 끝이 가까워 보일 것입니다.
?
Names Default To Here(1);
clear log ();
listInd = {}; p = N Items (listInd);
lb_values = {"Tech1", "Tech2", "Tech3"};
cb_values = {"Sage1_Tech1", "Sage2_Tech1", "Sage3_Tech1", "Sage4_Tech1", "Sage5_Tech1", "Sage6_Tech1",
"Sage1_Tech2", "Sage2_Tech2", "Sage3_Tech2", "Sage4_Tech2", "Sage5_Tech2", "Sage6_Tech2",
"Sage1_Tech3", "Sage2_Tech3", "Sage3_Tech3", "Sage4_Tech3", "Sage5_Tech3", "Sage6_Tech3"
};
expr_update_cb = Expr(
cur_sel = lb << get selected;
If(N Items(cur_sel), cur_cb_values = Filter Each({val}, cb_values, cur_tech = Word(2, val, "_"); Contains(cur_sel, cur_tech))
,
cur_cb_values = cb_values;
);
p = N Items(cur_sel);
cb2 << Set items(cur_cb_values); show (cur_cb_values);
);
win = New Window("Select Tech & TestStage", <<MODAL></MODAL>
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?내 깨진 ctrl로 인해 올바른 스크립트를 복사할 수 없었고 너무 빨리 게시했을 가능성이 높습니다. 지금 고쳐야 합니다.
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?@jthi 감사해요. 오늘 업데이트된 스크립트가 작동 중입니다. 오늘 내가 한 방식(오늘의 스크립트)이 잘못된 접근 방식인지 알고 싶습니다.
또한 날짜 쿼리를 입력하면 왜 표시되지 않습니까? TB3 그리고 cb3 상단, 즉 위의 섹션 tb1?
(아이디어는 사용자가 다른 것보다 먼저 날짜를 선택하도록 하는 것입니다)
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?내 생각엔 ","가 없거나 ";"가 있는 것 같습니다. 잘못된 장소에
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?@jthi 나의 "," 배치는 올바른 것 같지만 맨 위에 배치하면 날짜 쿼리가 작동하지 않습니다.
또한 "에서 선택한 값을 반환하는 방법도 있습니다. 모두 선택 "? 내 원래 배치 반환됨2 수동 선택에만 작동하는 것 같습니다.
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?사용자가 선택 항목을 변경할 때가 아니라 확인을 누를 때 모든 값을 변수로 가져옵니다.
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?@jthi 감사합니다. 하지만 수동 선택은 내 배치로만 다시 조정할 수 있습니다. 반환됨2 안에 cb2=체크박스(.. .
위치를 알려주세요. cb2 << 선택 가져오기(); 사용자가 누를 때만 실행되도록 좋아요.
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?스크립팅 가이드 > 표시 트리 > JSL의 모달 창 > 모달 창 구성 모달을 사용한 새 창에 대한 설명을 제공합니다. 그리고 이것은 변수에 값을 가져오기 위해 명령을 배치하는 위치에 대한 예를 제공해야 합니다.
Names Default To Here(1);
nw = New Window("Example", <<MODAL></MODAL>
<< On Validate 또는 << On Close(예제 및 일부 설명은 스크립팅 인덱스 참조)에 배치할 수도 있지만 일반적으로 확인 버튼 안에 배치합니다.
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?@jthi , 감사해요.
show(cb_sel);
공장.
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?@jthi 이 주제를 다루는 동안(새롭지만 관련된 질문을 묻는 새 스레드를 생성하지 않고) 사용자가 각 테스트 단계를 선택할 때 수행한 작업을 보여주는 텍스트를 표시할 수 있는지 궁금합니다. 아래에 예시를 붙여넣었습니다.텍스트는 선택이 이루어진 경우에만 표시되며 선택을 취소할 때까지 유지됩니다.

Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?확실히 가능하지만 강력하고 사용하기 쉽게 만드는 방법은 다를 수 있습니다. 다음은 내 마음에 떠오른 빠른 옵션 중 하나입니다(더 나은 옵션이 있을 가능성이 높습니다).
Names Default To Here(1);
cb_sel = {};
nw = New Window("Example", <<MODAL></MODAL>Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?@jthi 감사해요. 이것이 바로 필요한 것이지만 이 스레드의 원래 예(Tech 및 TestStage 스크립트를 사용한 첫 번째 게시물)에 이를 적용하는 데 어려움을 겪을 것입니다. 한두 가지 선택 사항에 대해 보여주시면 나머지는 제가 할 수 있을 것입니다.
각 테스트 단계의 텍스트를 미리 정의해야 한다는 것을 알 수 있습니다.
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?하나 또는 두 개의 선택 항목에 대해 작성하는 경우 고려해야 할 사항이 상당히 많기 때문에 기본적으로 전체 스크립트를 다시 작성하게 됩니다. 또한 다른 방법으로 무엇인지 결정할 수 있다면 미리 정의할 필요가 없습니다.
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?@jthi 괜찮아요. 이 주제에 대해 지금까지 도움을 주셔서 감사합니다. 데모에 사용한 스크립트에서는 추가 텍스트를 위해 각 확인란을 개별적으로 처리해야 하는 것으로 나타납니다. 반면 제 원래 경우에는 모든 옵션이 단일 목록으로 제공됩니다.
이 게시물에서 원본/첫 번째 스크립트를 시작할 수 있도록 몇 가지 조언을 해주실 수 있나요?
제가 직접 해보고 구체적인 질문을 가지고 돌아오겠습니다.
또한 내 경우에는 선택한 각 테스트 단계의 텍스트가 사전 정의된 테스트 매개변수 목록이 됩니다. 예를 들어 첫 번째 테스트 단계에서는 {A, B}, 두 번째 테스트 단계에서는 {A, B, C, L, M}입니다.
Re: 모달 창에서 이전 선택에 따라 확인란을 변경(또는 표시 또는 활성화)하는 방법은 무엇입니까?연관 배열을 사용하여 다양한 목록을 저장하고 표현식/함수를 생성하여 체크박스 및 ifbox에 대한 수집기를 생성합니다.
이것은 모달 창을 사용하지 않습니다. 스크립트 편집기에서 다양한 가져오기 등을 쉽게 테스트할 수 있으므로 모달 창을 사용하지 않을 때 개발하기가 훨씬 쉽기 때문입니다.
Names Default To Here(1);
tech_options = {"Tech1", "Tech2"};
stages_tech1 = {"Sage1_Tech1", "Sage2_Tech1"};
stages_tech1_text = {"First Level Tech1", "Second Level Tech1"};
stages_tech2 = {"Sage1_Tech2", "Sage2_Tech2"};
stages_tech2_text = {"First Level Tech2", "Second Level Tech2"};
aa_tech = Associative Array();
aa_tech["Tech1"] = Associative Array(stages_tech1, stages_tech1_text);
aa_tech["Tech2"] = Associative Array(stages_tech2, stages_tech2_text);
get_cbs = Expr(
cbs = cb_lub << XPath("//CheckBoxBox");
);
update_checkboxes = Expr(
tech_selections = lb << get selected;
cb_lub = Lineup Box(N Col(2));
For Each({tech_selection}, tech_selections,
For Each({{stage, text}}, aa_tech[tech_selection],
cb_lub << Append(Check Box(stage, << Set Function(function({this},
(this << sib) << Set(this << get);
))));
cb_lub << Append(IfBox(0, Text Box(text)))
);
);
Try((cb_collector << child) << Delete Box());
cb_collector << Append(cb_lub);
);
win = New Window("Select Tech & TestStage",
V List Box(
H List Box(
Spacer Box(Size(0, 300)), // to force height
V List Box(
Spacer Box(Size(300, 0)), // to force width
tb1 = Text Box("Select Tech", <<SET font="" style=""></SET>
