报告窗口未关闭我有一个脚本,我试图设置它在运行时会弹出一个交互式 GUI,如下所示:

我可以填写批号,目前唯一可用的按钮是“CPL 屏幕”按钮。我单击它,它会生成一份报告,说明该批次中的晶圆是否通过了筛选限制。如果数据中存在错误代码或超高值,则会在报告中添加一个按钮框,询问用户是否要删除这些值并再次进行筛选。

我已将按钮设置到应该关闭当前报告窗口和与其关联的数据表的位置,并在删除错误数据后重新运行与开始时相同的“CPL 屏幕”。唯一的问题是,当我单击重新运行按钮时,原始窗口不会关闭,报告也不会完成。
我可以实际进入脚本并突出显示连接到按钮的代码,并且脚本运行良好。仅当我实际单击该按钮时它才不起作用。这是第一次浏览时窗口列表的样子:

这是我单击重新运行按钮时的样子:

看来原来的报告并没有在新的报告打开之前结束。考虑到我可以在物理上运行相同的代码并且一切正常,我感到很困惑。以下是脚本正在执行的操作的 suedo 流程图:

任何帮助将非常感激
回复:报告窗口未关闭该按钮及其所有属性(包括其脚本)是显示树的子级。 显示树包含在窗口中。 当您关闭窗口时,该按钮及其脚本将被销毁。 如果是按钮脚本关闭了窗口,这将导致错误 - 可能是一个非常严重的错误。 因此,JMP 会对此进行监视,并确保窗口处于隐藏状态,但会一直等待按钮脚本完成。
这是一个演示此行为的脚本。 观察主窗口中的窗口列表即可看到它:
win1 = New Window( "Window 1",
V List Box(
Button Box( "Close window 1 and open window 2",
win1 << close window;
win2 = New Window( "Window 2",
<<MODAL></MODAL>
回复:报告窗口未关闭我发现,如果您在报告窗口中放置一个按钮来关闭该窗口并继续执行更多脚本,则包含该按钮的窗口不会完全关闭。 但是,如果您在报告窗口外部放置一个执行完全相同脚本的按钮,那么一切都会正常工作。 我不太确定这是为什么,我不得不稍微改变我的脚本来补偿,但现在它最终工作得很好。回复:报告窗口未关闭将按钮添加到报告窗口的代码如下:
if(errors_exist == 1 | large_value == 1,
error_box << append(Button box("Remove Erroneous Data and Rerun Analysis",redo_analysis))
)
redo_analysis的代码如下:
redo_analysis = expr(//if the user wants to eliminate error codes or large data values need to redo the screening and remove the issue points
close(dt_screen_results, nosave);
re_run = 1; //boolean flip to not have the script pull data from the database again
screen_result_window << close window;
//wait(5);
column(dt_lot, "Screen Results") << set selected(1);
dt_lot << delete columns();
if(errors_exist == 1, //deletes the error code rows
dt_lot << selectrows(error_rows)
);
if(large_value == 1,//deletes the large value rows
dt_lot << selectrows(large_values)
);
dt_lot << delete rows()
CPL_screen
//window(char(lot_num << get text) || " CPL Results Summary") << close window;
);
如果我按下报告中的按钮,问题仍然存在。 如果我不按按钮,而是在脚本中突出显示 redo_analysis 并运行该部分,则一切正常。
回复:报告窗口未关闭在 JMP 中弹出窗口不会自动停止脚本的处理。要么必须将窗口声明为“模态”窗口,要么将要运行的代码嵌入到窗口内的对象中,这样它们就不会运行,直到用户单击按钮或在组合框中做出选择, ETC。
所以我的猜测是,当您打开窗口时,您的 JMP 代码会继续处理,并且您认为处理正在等待用户输入,然后再继续。
回复:报告窗口未关闭经过更多的摆弄后,脚本似乎没有按照我认为应该的顺序运行。 我认为脚本会按顺序执行,如第 10 行将被执行,然后转到第 11 行并执行它。 我发现,即使我在重新运行部分开头的一行上有 report << close window() 行,但在脚本完全完成之前,脚本不会完全执行该行。 该窗口将隐藏但不会完全关闭,直到新窗口打开。 由于我在报告窗口中添加了 <关于 JMP 为何这样做以及我可以采取哪些措施来缓解这种情况,有什么想法吗? 我忘了提及我正在运行 JMP 12。