For Each 루프의 값을 사용하여 새 테이블 스크립트를 생성하는 방법기존 데이터 테이블 스크립트를 반복하고 일부 변경 사항을 적용하여 각 스크립트의 복사본을 만들고 있습니다.
생성된 테이블 스크립트에 해당 테이블 스크립트 이름을 삽입하고 싶습니다.
내가 얻은 출력은 scriptList의 실제 문자열 값 대신 생성된 테이블 스크립트에 "script"라는 단어를 삽입합니다.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
scriptList = dt << Get Table Script Names;
For Each({script}, scriptList,
If ((!Contains(scriptList, "Run "||script)),
dt << New Script("Run "||script,dt=Current DataTable();w=eval(dt << get table property((script)));w << set window title((script)));
);
);
자동화 및 스크립팅Re: For Each 루프의 값을 사용하여 새 테이블 스크립트를 생성하는 방법다음과 결합된 일부 표현식 처리 Eval Insert, Eval Expr, Parse 및 Substitute를 사용하여 한 표현식을 다른 표현식에 삽입 작동해야합니다. 다음은 한 가지 예입니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
For Each({script_name}, dt << Get Table Script Names,
If((!Contains(script_name, "Run " || script_name)),
script_expr = dt << Get Script(script_name);
Eval(Substitute(
Expr(
dt << New Script("Run " || _script_name_,
Local({w},
w = _new_script_;
w << set window title(_script_name_)
)
);
),
Expr(_script_name_), script_name,
Expr(_new_script_), Name Expr(script_expr)
))
)
);Re: For Each 루프의 값을 사용하여 새 테이블 스크립트를 생성하는 방법정말 잘 작동합니다 감사합니다
Re: For Each 루프의 값을 사용하여 새 테이블 스크립트를 생성하는 방법안녕하세요, 원래 질문에서 그렇게 지정하지 않은 것 같지만 대상 스크립트 코드를 새 스크립트에 복사하기 때문에 귀하의 솔루션이 내 스크립트의 동작을 변경했습니다. 원본 스크립트에 대한 참조만 유지하고 싶었습니다. 여기에 내가 사용하는 최종 스크립트가 있습니다. 다른 사람들이 유용할 수도 있습니다.
dt = Current Data Table();
scriptList = dt << Get Table Script Names;
For Each( {script_name}, scriptList,
If( (!Contains( script_name, "Run" ) & !Contains( scriptList, "Run " || script_name )),
Eval(
Substitute(
Expr(
dt << New Script(
"Run " || script_name,
dt = Current Data Table();
w = Eval( dt << get table property( script_placeholder ) );
w << set window title( script_placeholder );
)
),
Expr(script_placeholder), Char(script_name)
)
)
)
);Re: For Each 루프의 값을 사용하여 새 테이블 스크립트를 생성하는 방법JMP 14가 작동하지 않습니다.
Re: For Each 루프의 값을 사용하여 새 테이블 스크립트를 생성하는 방법For Each() 함수는 JMP 16의 새로운 기능입니다.