こんにちは、みんな、
最近、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で実行しています。