「Graph Builder」加入 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 ) ) ) );
);
自動化和腳本編寫視窗回覆:「Graph Builder」加入了 On Colse() 函數,加密運行時出現異常我已使用加密腳本複製了您的“關閉時”錯誤。我認為這是 JMP 錯誤,建議您將問題提交給 JMP 支援。
support@jmp.com
回覆:「Graph Builder」加入了 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);
);
));
);
回覆:「Graph Builder」加入了 On Colse() 函數,加密運行時出現異常謝謝你,賈莫。這確實是一個好方法。
我用“gb << On Close(Close(gb << Get Data Table, nosave))”來綁定gb和dt,但我似乎忘記了它們本來是綁定的。
雖然它在語法上應該是正確的,但這確實可能是 JSL 腳本中的內部錯誤。我將採納@txnelson的建議並將此問題提交給 JMP 支援。
回覆:「Graph Builder」加入了 On Colse() 函數,加密運行時出現異常謝謝你,吉姆。
這確實可能是 JSL Bug,因為 Jarmo 似乎也無法解釋此錯誤的原因。我將接受您將其提交給 JMP 支援的建議。
此外,Jarmo 也分享了一個解決這個問題的巧妙方法,我們可以一起學習。