모두들 안녕,
슬라이더(연속 레벨 허용)를 사용하여 세 개의 변수 A,B,C를 변경할 수 있는 작은 대시보드/애플리케이션을 작성하고 라디오 버튼을 사용하여 네 번째 변수 Faktor(4개 레벨만 허용됨)를 변경할 수 있습니다.

그런 다음 내 데이터 테이블 G1, G2, G3의 열에 A,B,C 및 Faktor를 곱하고 그래프 빌더를 사용하여 세 개의 새 열의 합계와 함께 표시합니다.
Clear Log();
Delete Symbols();
Names Default To Here( 1 );
// default parameter values.
A = 1;
B = 2;
C = 3;
Faktor = 2;
dt = Current Data Table();
dt << New Column( "G1scale", Numeric, Continuous, Formula( (:G1 * Here( 1 ):A) * Here( 1 ):Faktor ) );
dt << New Column( "G2scale", Numeric, Continuous, Formula( (:G2 * Here( 1 ):B) * Here( 1 ):Faktor ) );
dt << New Column( "G3scale", Numeric, Continuous, Formula( (:G1 * Here( 1 ):C) * Here( 1 ):Faktor ) );
dt << New Column( "SumColumn", Numeric, Continuous, Formula( :G1scale + :G2scale + :G3scale ) );
슬라이더를 끌면 데이터 테이블의 수식 열이 업데이트되도록 스크립트가 작동했지만 라디오 버튼으로 동일한 작업을 수행하는 데 문제가 있습니다.
update = Expr(
Here( 1 ):A = p;
Here( 1 ):B = r;
Here( 1 ):C = t;
Here( 1 ):Faktor = Choose( nw1["cat"], 1, 2, 3, 4 );
dt << rerun formulas;
Wait( 0 );
);
nw1 = New Window( "Faktor",
Outline Box( "Select Faktor", cat = Radio Box( {"1", "2", "3", "4"} ),update )
);
nw2=New Window( "Sliding",
Outline Box( "A",
Slider Box(
1,
10,
p,
update
)
),
Outline Box( "B",
Slider Box(
1,
10,
r,
update
)
),
Outline Box( "C",
Slider Box(
1,
10,
t,
update
)
)
);
g1=Graph Builder(
Size( 529, 456 ),
Show Control Panel( 0 ),
Variables(
X( :WL ),
Y( :G1scale ),
Y( :G2scale, Position( 1 ) ),
Y( :G3scale, Position( 1 ) ),
Y( :SumColumn, Position( 1 ) )
),
Elements( Points( X, Y( 1 ), Y( 2 ), Y( 3 ), Y( 4 ), Legend( 3 ) ) ),
SendToReport(
Dispatch( {}, "graph title", TextEditBox, {Set Text( "Simulated Plot" )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "Mygauss" )} )
)
);라디오 버튼을 선택하면 데이터 테이블(따라서 그래프)을 업데이트할 수 없습니다.
두 번째 문제는 세 개의 현재 창을 하나의 창(대시보드 또는 응용 프로그램)으로 통합하려는 것입니다. Windows 결합에서는 모두 선택할 수 있지만 대시보드 빌더로 보내려고 하면 silder가 아닌 그래프 빌더 창만 나타납니다. 내 silder/라디오 버튼을 대시보드/애플리케이션 빌더로 끌어다 놓으려면 어떻게 해야 합니까?
@펠리 ,
간단한 예를 제외하고 DashboardBuilder를 사용하지 않았습니다. 저는 Application Builder를 사용하거나 스크립트를 작성하여 응용 프로그램을 만듭니다.그것에 대해 읽을 수 있습니다. 일부는 정말 좋아합니다. 한동안 스크립팅을 해오던 다른 사람들은 일반적으로 JSL을 통해 일을 처리합니다.
다음은 작업에 대한 ApplicationBuilder 시작의 스크린샷입니다.
11장을 읽는 것이 좋은 시작이라고 생각합니다.
@gzmorgan0
많은, 많은 감사합니다!
당신은 내가 원하는 솔루션을 정확히 맞출 수 있었습니다.
이전의 여러 시도 중 하나에서 저는 테이블 변수를 가지고 놀고 있었습니다. 슬라이더는 작동했지만 라디오 버튼은 작동하지 않았습니다.
내가 놓친 열쇠는 다음과 같습니다.
dt << Set Table Variable("Faktor", Expr(num (cat << Get Selected) ) );Faktor에 대한 내 테이블 변수는 항상 문자열이었고 수식을 엉망으로 만들었으므로 다른 방법을 찾아야 했습니다.
대시보드 빌더/애플리케이션 빌더를 사용하여 그래프를 작성하려고 했으나 JSL/애플리케이션 빌드를 시작할 때 많은 사람들이 권장했기 때문에 팁을 구현하고 컨테이너 등에 대해 더 자세히 알아볼 것입니다.
도움을 주셔서 다시 한 번 감사드립니다!
@펠리 ,
이 스크립트에는 문제를 일으키는 몇 가지 항목이 있습니다.
첫 번째는 고양이, RadioBox입니다. 스크립트는 라디오 상자가 아닌 개요 상자에 첨부됩니다.
//Outline Box( "Select Faktor", cat = Radio Box( {"1", "2", "3", "4"} ),update ) //wrong, see below
Outline Box( "Select Faktor", cat = Radio Box( {"1", "2", "3", "4"} , update ) )
이름 기본값은 Here(1)입니다. 변수 값이 이 스크립트에만 적용됨을 나타냅니다.Here 네임스페이스의 주소는 필요하지 않으며 구문은 Here:A 입니다. 그러나 그것은 또 다른 문제를 야기합니다. 수식 열 G1scale, G2scale 등은 G1*A와 같은 수식을 갖습니다.스크립트를 실행하거나 나중에 테이블을 열려고 하면 변수 A를 알 수 없습니다.몇 가지 제안 사항은 다음과 같습니다.
- dt << Set Table Variable(A, 1)을 사용하여 테이블 변수 A, B, C, Faktor 생성
- 그러면 형식은 :G1*:A가 되고 테이블은 스크립트가 실행되지 않을 때 해당 값을 인식합니다.
- 스크립트를 두 번 이상 실행하면 여러 개의 G1scale, G1scale 2 등이 생성됩니다. 또는 열이 있는지 확인하고 있으면 삭제하거나 기능을 할당하면 더 우아하게 수행할 수 있습니다. 또한 창이 닫히면 nw에 대해 On Close 기능을 사용하여 해당 열을 삭제할 수 있습니다.
그러나 가장 큰 제안은 대화형 스크립팅에 대해 자세히 알아보려면 다음을 사용하여 JMP 보고서를 만드는 방법을 배워야 한다는 것입니다.
컨테이너: HListBox , VListBox , 라인업 상자 , 패널박스 .귀하의 스크립트는 아웃라인박스 컨테이너.
통제 수단: 버튼박스 , 슬라이더박스 , 체크박스 , 등.
입력: 콤보 박스 , 리스트 박스 , ColListBox , 등.
창 결합에 의존하지 마십시오.
JMP 스크립팅 가이드의 11장은 시작하기에 좋은 곳입니다. MainMenu > 도움말 >JMP 문서 > JMP 스크립팅 가이드 >> 11장
이 레이아웃(트리 구조)을 사용하는 스크립트가 첨부되어 있습니다.

