여러분, 안녕하세요,
최근에 나는 jmp 스크립팅에 관심을 갖게 되었고 그것을 배우려고 최선을 다하고 있습니다.
아래 예제의 목표는 선택한 행의 "열" 값을 표시하는 것입니다.
Cols = {"NPN1", "PNP1", "PNP2", "NPN2", "PNP3", "IVP1", "PNP4", "NPN3", "IVP2", "NPN4", "SIT1", "INM1", "INM2",
"VPM1", "VPM2"};
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
Define Class(
"Test_Class",
_init_ = Method( {dt, Cols},
my_dt = dt;
my_cols = Cols;
Make_Win();
);
Make_Win = Method( {},
New Window( "ProcessScreening",
Vlist_box = V List Box(
PS,
MyButton = Button Box( "SelectedRows", SendRows ),
),
),
);
PS = dt << Process Screening(
Y( Eval(my_cols)),
Control Chart Type( "Indiv and MR" ),
Minimum Process Length( 1 ),
Use Medians instead of Means( 1 ),
Show tests( 0 ),
Test 1( 0 ),
Cp( 1 ),
Spec Limits( 1 ),
);<BR />
SendRows = Expr(
print_cols = Report( PS )[Table Box( 1 )][String Col Box( 1 )] << getselectedrows();
Print( Report( PS )[Table Box( 1 )][String Col Box( 1 )][print_cols] );
);
);<BR />
my_obj = New Object( Test_Class( dt, Cols ) );에러 코드:
Send Expects Scriptable Object in access or evaluation of 'Send' , my_dt << /*###*/Process Screening(
Y( Eval( my_cols ) ),
Control Chart Type( "Indiv and MR" ),
Minimum Process Length( 1 ),
Use Medians instead of Means( 1 ),
Show tests( 0 ),
Test 1( 0 ),
Cp( 1 ),
Spec Limits( 1 )
) /*###*/
object not subscriptable in access or evaluation of 'Report(PS)[ /*###*/Table Box(1)]' , Report( PS )[/*###*/Table
클래스 외부에서 스크립트를 사용하려고 했는데 제대로 작동하는 것 같습니다. 위 구현에 어떤 문제가 있는지 아시나요?
안녕,
사용 중인 JMP 버전을 언급하지 않았습니다. 이것은 JMP 17에서 잘 작동했습니다. 스크립트 상단에 다음이 있습니까?
이름의 기본값은 여기 ( 1 )입니다.
여러 스크립트를 실행 중인 경우 차이가 발생할 수 있습니다.
브라이언 코코란
JMP 개발
이것을 클래스로 구축하는 특별한 이유가 있습니까? 이제 막 JMP 스크립팅을 시작했다면 수업에 참여하지 않는 것이 좋을 것 같습니다.
안녕 브라이언,
더 구체적이지 않아서 죄송합니다. 위 스크립트는 실행되지만 SelectedRows 버튼을 누르면 오류가 나타납니다.
저는 이것을 JMP 17에서 실행하고 있습니다.