여보세요,
나는 "Model for Select PQA and 열".
이 모델은 열 이름의 철자가 모든 데이터 세트에 대해 선택된 각 PQA에 대한 사용자 지정 출력을 생성해야 합니다. 스크립트가 실행되면 사용자에게 특정 열을 선택하라는 팝업이 나타납니다. 이 창은 아래 그림과 같습니다.

다음 창은 사용자에게 PQA, 저장 조건을 설정하도록 요청하고 사용자가 각 PQA(저장 조건)에 대한 하위 집합 데이터 세트를 볼 것인지 묻습니다. 즉, 선택한 각 PQA에 대해 하위 집합 데이터 집합이 백그라운드에서 생성됩니다. 그런 다음 모델 및 그래프 결과가 생성된 다음 for 루프를 반복할 때마다 사용자 지정되고 형식이 지정된 데이터(LSL 및 USL y축 선과 측정값이 있는 y축 레이블 포함)가 있는 창에 추가됩니다.

다음은 위에서 언급한 창에서 사용자 입력이 주어지면 출력을 생성하는 JSL 스크립트 코드입니다.
//select the data in the original data table
Names Default To Here( 1 );
dt = Current Data Table();
//get the unique PQAs
col9 = Column(dt, "PQA");
unique_pqa = Associative Array( col9 ) << get keys;
/////////////////////////////////////////////////////////////
//User Selection Menu(s)
/////////////////////////////////////////////////////////////
//Part 1: ask user for column names in a new window nw1
//possible Group column name (should be character)
character_col_names = dt << Get Column names(character, String);
//possible result column name (should be numeric)
numeric_col_names = dt << Get Column names(Numeric, String);
nw1 = New Window("Column names",
<<MODAL></MODAL>
내 출력 창을 만든 상태에서 스크립트를 원본 데이터 테이블에 모든 데이터(하위 집합 데이터가 종속됨)와 함께 저장할 수 있기를 원합니다. 그러나 모든 출력에 대한 스크립트를 스크립트 창에 저장하면 다음과 같은 결과가 나타납니다.
주의
Where ( :PQA == pqa_val & column(listDT, set_storage_condition_col) == selected_stor_cond )
문은 스크립트가 작동하도록 허용하지 않습니다.
이 스크립트의 이 명령문이 특정 출력을 갖기를 원합니다. 예를 들어 내가 첨부한 장난감 데이터세트에서
column(listDT, set_storage_condition_col)
와 동등하다 :보관상태
또한 A를 선택하면 pqa_val ( 하도록 하다 :PQA == "A" ) 및 5C selected_stor_cond (하도록 하다 :보관 상태 == "5C" ).
그러나 생성 된 출력 스크립트는 사용자 입력을 참조하더라도 존재하지 않습니다. JMP가 위의 예에서와 같이 루프의 각 특정 인스턴스에 대한 스크립트에 이러한 값을 기록하지 않는 이유는 무엇입니까?
Eval Insert, Eval Expr, Parse 및 Substitute를 사용하여 한 표현식을 다른 표현식에 삽입 당신을 도와야합니다. 또한 << 창 닫기는 모달 창을 사용하므로 버튼을 누를 때 필요하지 않습니다.
Where 문 주변과 내부에 Eval(EvalExpr()) 하나와 Expr() 몇 개를 추가했습니다.
더보기...
//select the data in the original data table
Names Default To Here(1);
dt = Current Data Table();
//get the unique PQAs
col9 = Column(dt, "PQA");
unique_pqa = Associative Array(col9) << get keys;
/////////////////////////////////////////////////////////////
//User Selection Menu(s)
/////////////////////////////////////////////////////////////
//Part 1: ask user for column names in a new window nw1
//possible Group column name (should be character)
character_col_names = dt << Get Column names(character, String);
//possible result column name (should be numeric)
numeric_col_names = dt << Get Column names(Numeric, String);
nw1 = New Window("Column names",
<<MODAL></MODAL>
정말 감사합니다. Eval() 및 관련 사용에 대해 생각조차하지 않았습니다. 나는 확실히 이것에 대해 더 많이 읽고 당신이 제공한 링크를 살펴볼 것입니다.