延迟代码直到应用程序完成我有一个脚本,其中我首先在对话框中询问是/否问题,如果用户选择“是”,则将运行一段代码,从数据库中提取数据,然后使用这些数据构建应用程序。在该应用程序中,用户与数据(表格和图表)交互以生成 pdf 表单,完成这些材料,关闭应用程序,然后转到下一个站点,此时您会得到相同的是/否问题,但针对不同的位置。问题是,如果我选择是,代码将运行并创建应用程序(一切都很好),但然后继续进入下一个对话框。一旦弹出该对话框,我就无法与我的应用程序交互。我该如何编写代码,以便在我完成应用程序之前不会出现下一个对话框?
Event=dialog("A 站点有样品吗?",
Vlist(Lineup(1,eventtype=radio buttons("是","否"),)));
如果(事件[“eventtype”] == 1,(
//如果用户选择“是”,则此站点的代码将在此处运行,以生成带有图形和表格的应用程序(见下面的示例)。用户必须选择图形中的点,生成 pdf 表单,然后关闭应用程序才能继续。
(英文):
(英文):
在此屏幕截图中,您可以看到一个按钮,上面写着“完成”。我不希望在单击此按钮之前弹出下一个对话框。

运行 JMP 16.2.0
自动化和脚本数据探索与可视化回复:延迟代码直至应用程序完成例如,您可以在完成按钮中添加表达式来创建下一个对话框
回复:延迟代码直至应用程序完成这是个好主意,但是我一直在摆弄代码,却不知道如何让它工作。当我将对话框放在完成按钮内时,代码会构建该应用程序,然后在我与它交互之前,进入下一个循环以构建下一个位置的应用程序。我需要一种方法来在应用程序构建完成时暂停代码,并在我按下完成按钮后自动重新启动它。我不确定这是否有用,但我附加了一些代码。第一个对话框出现在第 5 行,然后如果您选择“是”,它将从我们的内部服务器中提取数据......这不会为其他任何人运行(第 24 至 638 行),然后应用程序将根据之前的代码构建的数据表构建。(646 - 1069),然后代码重复,但针对不同的数据集(第 1080 行)。
回复:延迟代码直至应用程序完成我不太熟悉 JMP 应用程序/仪表板(我总是自己构建它们以获得完全控制权),但您可能希望在用户按下“完成”之前不会执行 1080 之后的部分
回复:延迟代码直至应用程序完成我想到了一个“解决方案”。我只需在第 1080 行之前添加一个等待命令
If( Event["eventtype"] == 1,
wait(30);
);因此,如果之前选择了“是”,它就会知道我生成了一个应用程序,需要时间与之交互。这为用户提供了 30 秒的时间来完成该操作,“完成”,然后它将转到脚本的下一个组件……这是一个实用的解决方案,虽然不是我想要的。当然,这让用户“按时”我必须在等待时间上浪费时间才能找到一个折衷方案。谢谢你的帮助……这让我开始思考。
回复:延迟代码直至应用程序完成我给你发了一条消息,展示了我可能做了什么。我基本上会将脚本的第二部分移到表达式中(我会进行其他分离以提高可读性,但这应该是唯一“必要的”分离),然后将其添加到 button5 函数/脚本中。这将使表达式在按下 button5 时触发。该选项可能需要一些额外的工作,具体取决于范围和命名空间的处理方式。