Re:如何在Dashboard创建者脚本的Allocate函数中使用if语句?我想我们需要更多关于你正在做什么的背景。我们需要查看使用If()的上下文?它是在新窗口()或JMP应用程序()?
你能发布一个更完整的脚本来证明这个问题吗?
Re:如何在Dashboard创建者脚本的Allocate函数中使用if语句?是的,你是对的。这是我正在处理的脚本的简化版本,专注于创建按钮。按钮位于第37-45行。使用If语句创建一个没有按钮的仪表板。
Re:如何在Dashboard创建者脚本的Allocate函数中使用if语句?嗨Kelly - 除非您只是更改字符串的值,否则我会警告不要编辑Dashboard的Allocate()块内的内容。 更改结构肯定会导致无法正确执行的仪表板(或应用程序)。 当我在启用了If()块的情况下运行脚本时,我在日志中看到错误消息:
期待:variable = object(); 2次访问或评估'计划'[...]
我不确定你要对条件框做什么,但如果在应用程序和模块脚本中放置所需的任何其他逻辑,Application Builder将最有效 - 这些脚本以普通JSL(或99%)执行所以,而JMPApp()中的其他代码具有非常特定的语法。
Re:如何在Dashboard创建者脚本的Allocate函数中使用if语句?您可以有条件地确定在通过调用Button Box()创建按钮之前单击按钮时计算的表达式。
bb expr = If( 1, Expr( ... ), 2, Expr( ... ) );
Button Box( "name", bb expr )
Re:如何在Dashboard创建者脚本的Allocate函数中使用if语句?我没有在日志中看到错误消息,可能是由于版本不同。我顺便使用JMP 14.1.0。
我可能会遗漏一些东西,但我不确定为什么你建议使用应用程序和模块脚本而不是仪表板,因为它们是相同的,除了这行代码:
仪表板模式(1),
我确实通过将condition语句放在JMP App()函数的Initialize()函数中找到了解决方法。 我必须创建一个按钮,但我可以稍后决定是否让它显示在仪表板上。
Button1 << Visibility(If(1,“Visible”,“Hidden”));
谢谢!
Re:如何在Dashboard创建者脚本的Allocate函数中使用if语句?为了阐明我对应用程序和模块脚本的评论 - Application Builder公开了与顶级应用程序和每个模块相关联的脚本。 当您关闭仪表板模式时,可以通过“脚本”选项卡访问这些内容(文本仍显示“仪表板”,因为文档是在仪表板模式下启动的):

此脚本将逐字保存,并将保留您所做的任何更改。 在编辑Initialize()脚本的示例中,您将注意到,虽然第一次运行脚本时按钮可见性可能显示正确,但如果再次从“仪表板”构建器保存脚本,则该行将更改为:
Button1 << Visibility("Visible");
如果您想使用比If(1)更复杂的表达式,这可能会失去您的预期行为。 每次保存脚本时,Allocate(),Organize()和Initialize()部分中的所有内容都是从头开始生成的,如果使用构建器界面更改然后保存脚本,则不会保留自定义项。
如何在Dashboard创建者脚本的Allocate功能中使用if语句?我的仪表板使用按钮框()创建按钮就好了。但是,当我使用if语句时,它不再起作用。这是If语句:
如果(1,Button1 = Button Box());如果(1,Button2 = Button Box());
一切都汇编得很好,我的仪表板出现了,但这些按钮丢失了。
谢谢您的帮助