报告窗口未关闭我有一个脚本,我试图在运行时设置它,它会弹出一个交互式 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 中弹出窗口不会自动停止脚本的处理。 要么必须将窗口声明为“模态”窗口,要么将要运行的代码嵌入到窗口内的对象中,因此在用户单击按钮或在组合框中做出选择之前,它们不会运行,等等。
所以我的猜测是,当您打开窗口时,您的 JMP 代码会继续处理,并且您认为处理在继续之前正在等待您的用户输入。
回复:报告窗口未关闭经过更多的摆弄,脚本似乎没有按照我认为应该的顺序运行。我认为脚本会按顺序执行事情,因为在第 10 行将被执行然后移动到第 11 行并执行它。我发现即使我在重新运行部分的开头有一行 report << close window() ,但在脚本完全完成之前,脚本不会完全执行该行。在新窗口打开之前,窗口将隐藏但不会完全关闭。由于我在报告窗口中有一个 <关于 JMP 为什么这样做以及我可以做些什么来减轻它的任何想法?我忘了提到我正在运行 JMP 12。