스크립트를 사용하여 저널 파일의 버튼 상자에 테이블 스크립트 텍스트를 어떻게 설정합니까?스크립트를 사용하여 데이터 테이블을 재생산하는 버튼 상자가 있는 완전히 독립적인 저널 파일을 구성해야 합니다.프로덕션 응용 프로그램에는 여러 제목(각각 부품을 나타냄)이 있으며 각 제목 아래에는 부품과 관련된 다른 데이터 테이블을 표시하는 여러 버튼 상자가 있습니다.데이터 테이블을 구성하는 데 들어가는 복잡한 계산 때문에 함수를 사용하여 구성하고 있습니다.내 의도는 저널 파일만 사용자에게 배포하는 것입니다.
Baltic.jmp 샘플 데이터 테이블을 사용하여 골격 예제를 구성했습니다. "SmallTables()" 함수는 테이블 스크립트를 텍스트로 반환합니다.하지만 저널 파일의 버튼 상자에 대한 스크립트 상자에 해당 텍스트를 입력하는 방법을 찾을 수 없습니다. 도움을 주시면 대단히 감사하겠습니다.
SmallTables = Function( {k},
dt = Open( "$Sample_Data/Baltic.jmp" );
dt_Small = dt << Subset( Rows(), Columns( Column( k ) ), Output Table Name( "Small" ) );
Close( dt, NoSave );
tblScript = dt_Small << Get Script;
result = Char( Name Expr( tblScript ) );
);
jrn = New Window( "Table Test", Outline Box( "Title" ) );
For( k = 1, k <= 5, k++,
jrn << Append( BB = Button Box( "Small Table " || Char( k ), Set Script( SmallTables( k ) ) ) )
);Re: 스크립트를 사용하여 저널 파일의 버튼 상자에 테이블 스크립트 텍스트를 어떻게 설정합니까?그 기사를 참조해주셔서 정말 감사합니다!좋은 예와 함께 매우 명확한 설명입니다.매우 도움이 됩니다.
Re: 스크립트를 사용하여 저널 파일의 버튼 상자에 테이블 스크립트 텍스트를 어떻게 설정합니까?트릭은 평가되기 전에 하위 표현식이 삽입되었는지 확인하는 것입니다.이 JSL 요리책 문서는 다음과 같은 도움이 될 수 있습니다.
Eval Insert, Eval Expr, Parse 및 Substitute를 사용하여 한 표현식을 다른 표현식에 삽입
Re: 스크립트를 사용하여 저널 파일의 버튼 상자에 테이블 스크립트 텍스트를 어떻게 설정합니까?얼마나 좋은 예입니까!그러나 내 프로젝트에서는 많은 부분 각각에 대해 몇 개씩 수백 개의 데이터 테이블을 구성해야 합니다.이것이 내가 함수를 사용하여 데이터 테이블을 구성하는 이유입니다(초기 사용자가 저것 스크립트!). 귀하의 제안으로 인해 한 번에 너무 많은 창이 열리지 않을까 걱정됩니다. 그러나 관리 가능한 수의 데이터 테이블에 대해 귀하의 개념은 매우 훌륭합니다!사용할 기회가 있을거라 확신합니다.
도와 주셔서 정말 감사합니다.
Re: 스크립트를 사용하여 저널 파일의 버튼 상자에 테이블 스크립트 텍스트를 어떻게 설정합니까?정말 고맙습니다!그것은 내 "큰"스크립트에서 완벽하게 작동합니다.내 함수의 결과는 스크립트의 텍스트 표현이고, 따라서 버튼 상자 스크립트 대화 상자에 입력되어야 한다는 생각에 고정되어 있었습니다. 그것이 작동하지 않는 이유에 대해서는 여전히 확실하지 않지만 시연한 것처럼 Name Expr 기능과 Substitute를 사용하면 완벽하게 작동합니다.
그런데 실제 응용 프로그램에서는 다른 테이블을 구성해야 하기 때문에 루프가 필요합니다.나는 많은 수의 부품을 가지고 있으며 스크립트는 각 부품에 고유한 스크립트와 함께 여러 데이터 테이블을 구성합니다.이 스크립트는 실행하는 데 약간의 시간이 걸리므로 해당 스크립트를 실행하여 자체 포함된 저널 파일을 만들 수 있다는 것이 좋습니다.
저를 올바른 길로 인도해주셔서 다시 한번 감사드립니다!
Re: 스크립트를 사용하여 저널 파일의 버튼 상자에 테이블 스크립트 텍스트를 어떻게 설정합니까?저는 데모와 교육을 위해 자체 포함된 저널 파일을 사용하여 쉽게 공유할 수 있습니다.개별 섹션을 닫고 모든 것을 정리하기 위한 링크가 계속 진행됩니다.아래 스크립트는 기본적인 예제 저널을 생성합니다. 실행하면 링크가 포함된 저널이 표시됩니다.각각을 마우스 오른쪽 버튼으로 클릭하고 편집 > 스크립트 편집을 선택하여 구성 방법을 확인합니다.나는 이것을 채우기 위해 '테이블 스크립트 복사'를 자주 사용합니다.이 코드를 함수에 넣는 것은 좋은 생각이지만 저널을 탐색하려고 하는 초심자에게는 그것이 흑마법처럼 보일 수 있다는 점에 유의하십시오.

나는 보통 이런 스크립트를 사용하지 않고 대화식으로 저널을 만듭니다.
names default to here(1);
//Open data tables temporarily so we can copy their scripts
dtIrisTemp = open("$Sample_Data/Iris.jmp");
dtBigClassTemp = open("$Sample_Data/Big Class.jmp");
//Use Eval(EvalExpr()) so the actual scripts for the data table are saved in
//the journal.
Eval( Eval Expr(
journal = New Window( "A Journal", <<JOURNAL></JOURNAL>
Re: 스크립트를 사용하여 저널 파일의 버튼 상자에 테이블 스크립트 텍스트를 어떻게 설정합니까?하나의 테이블을 사용하는 경우 각 함수 호출에 대해 테이블을 열고 닫지 않을 것입니다. 테이블을 열고 for 루프를 사용하여 창을 만든 다음 테이블을 닫습니다.
이 시도.
SmallTables = Function( {k},
dt = Open( "$Sample_Data/Baltic.jmp" );
dt_Small = dt << Subset( Rows(), Columns( Column( k ) ), Output Table Name( "Small" ), Invisible );
Close( dt, NoSave );
_xx = dt_Small << Get Table Script Names;
dt_Small << Delete Scripts(_xx);
tblScript = dt_Small << Get Script;
wait(0);
Close( dt_Small , NoSave);
NameExpr(tblScript)
);
jrn = New Window( "Table Test", Outline Box( "Title" ) );
For( k = 1, k <= 5, k++,
_xx = SmallTables(k);
Eval(Substitute(Expr(jrn << Append( BB = Button Box( "Small Table " || Char( k ), Set Script( _scr ) ) )),
Expr(_scr), NameExpr(_xx) ) )
);Re: 스크립트를 사용하여 저널 파일의 버튼 상자에 테이블 스크립트 텍스트를 어떻게 설정합니까?