「グラフ ビルダー」に On Colse() 関数が追加され、暗号化の実行時に例外が発生するJMP コミュニティ エキスパート、私は中国出身です。
以下の問題の説明は機械翻訳によるものです。文法が少しおかしくても気にしないでください。
JMP17 スクリプトの潜在的なバグに関する問題が発生しています。この問題に対処するために専門家の支援を求めていただければ幸いです。
「グラフ ビルダー」用のスクリプトを作成しました。グラフ ビルダーが閉じられたときに参照されているデータ テーブルを自動的に閉じるために、On Close() を使用して次のスクリプトを追加しました。
gb << On Close( Close( gb << Get Data Table, nosave ) );
しかし、データ テーブルが多数あり、for() ループを通じて同時にグラフを生成する必要があるため、次のスクリプトを最適化しました。
Eval( Eval Expr( Expr( gb ) << On Close( Close( Expr( gb ) << Get Data Table, nosave ) ) ) );
ところが、予想外の問題が発生しました。スクリプトを正常に実行するには問題なかったのですが、暗号化して実行するとグラフを閉じるときに例外が報告され、非常に困惑しました。

以下は完全なテスト スクリプトです。この問題の分析にご協力いただければ幸いです。
Names Default To Here( 1 );
fileList = {"big class.jmp", "Big Class Families.jmp"};
For Each( {file, i}, fileList,
dt = Open( Eval Insert( "$sample_data/^file^" ), "invisible" );
gb = dt << Graph Builder(
Size( 917, 645 ),
Variables( X( :sex ), Y( :height ) ),
Elements(
Points( X, Y, Legend( 5 ) ),
Box Plot( X, Y, Legend( 6 ) ),
Caption Box( X, Y, Legend( 9 ), Summary Statistic( "Mean" ), Location( "Graph per factor" ), X Position( "Left" ) )
),
SendToReport(
Dispatch( {}, "Points", OutlineBox, {Close( 1 )} ),
Dispatch( {}, "Box Plot", OutlineBox, {Close( 1 )} ),
Dispatch( {}, "Caption Box", OutlineBox, {Close( 1 )} ),
Dispatch( {}, "Caption Box", Outline Box( 2 ), {Close( 1 )} )
)
);
Eval( Eval Expr( Expr( gb ) << On Close( Close( Expr( gb ) << Get Data Table, nosave ) ) ) );
);
自動化とスクリプトウィンドウズRe: 「グラフ ビルダー」に On Colse() 関数が追加されましたが、暗号化の実行時に例外が発生します暗号化されたスクリプトを使用して、On Close エラーを再現しました。これは JMP のバグであると思われますので、JMP サポートに問題を送信することをお勧めします。
お問い合わせ
Re: 「グラフ ビルダー」に On Colse() 関数が追加されましたが、暗号化の実行時に例外が発生しますスクリプトが暗号化されているときにどこで問題が発生するかはわかりませんが、これは機能しているようです (閉じるときに式の評価を変更しました)
Names Default To Here(1);
fileList = {"big class.jmp", "Big Class Families.jmp"};
For Each( {file, i}, fileList,
dt = Open(Eval Insert("$sample_data/^file^"), "invisible");
gb = dt << Graph Builder(
Size(917, 645),
Variables(X(:sex), Y(:height)),
Elements(
Points(X, Y, Legend(5)),
Box Plot(X, Y, Legend(6)),
Caption Box(
X,
Y,
Legend(9),
Summary Statistic("Mean"),
Location("Graph per factor"),
X Position("Left")
)
),
SendToReport(
Dispatch({}, "Points", OutlineBox, {Close(1)}),
Dispatch({}, "Box Plot", OutlineBox, {Close(1)}),
Dispatch({}, "Caption Box", OutlineBox, {Close(1)}),
Dispatch({}, "Caption Box", Outline Box(2), {Close(1)})
)
);
Eval(EvalExpr(
gb << On Close(
Close(Expr(dt), nosave);
);
));
);
Re: 「グラフ ビルダー」に On Colse() 関数が追加されましたが、暗号化の実行時に例外が発生しますありがとう、 Jarmo 。これは確かに良い方法です。
「gb << On Close(Close(gb << Get Data Table, nosave))」を使用します。これは、gb と dt をバインドするためですが、もともとバインドされていることを忘れているようです。
構文的には正しいはずですが、これは JSL スクリプトの内部エラーである可能性があります。 @txnelsonのアドバイスに従って、この問題を JMP サポートに問い合わせます。
Re: 「グラフ ビルダー」に On Colse() 関数が追加されましたが、暗号化の実行時に例外が発生しますありがとう、ジム。
Jarmo もこのエラーの原因を説明できないようなので、これは JSL のバグである可能性があります。JMP サポートに送信するというご提案を受け入れます。
さらに、Jarmo は、私たちが一緒に学べるこの問題を回避する賢い方法を共有しています。