将 JSL 脚本链接到 JMP 应用程序中的按钮你好,
我正在构建一个 JMP 应用程序来读取 Excel 工作簿,对于工作簿中的每个工作表数据,我有 JSL 来生成图形,我还有一个 JSL 来将 XLSX 加载到 JMP 中的数据表。
我想将 JSL 脚本链接到应用程序构建器元素(例如按钮),您能否帮助我了解在哪里可以使用 JSL 脚本来单击按钮功能?
例如:

在上图中,单击选择文件按钮将打开一个资源管理器供用户选择 xlsx,然后将路径加载到变量中。
单击加载按钮时,我想运行与将 XLSX 加载到数据表相对应的 My JSL。
谢谢,
迪利普
回复:将 JSL 脚本链接到 JMP 应用程序中的按钮我继续实现插件并使用 $ADDIN_HOME(addin_id) 来获取所需的路径。
感谢您的信息。
回复:将 JSL 脚本链接到 JMP 应用程序中的按钮如果您包含来自其他外部文件的脚本,则使您的应用程序可移植以便其他人可以使用它会变得更加困难。如果您的脚本位于每个人都可以访问的网络文件夹或类似的东西上,这是可能的。如果您构建加载项,则可以将脚本捆绑在其中,但您必须知道如何指定加载项文件夹的相对路径。
最简单的解决方案可能只是将 Excel 导入脚本复制并粘贴到应用程序名称空间中。这将使事情保持整洁并与模块名称空间分开,但仍然可以被任何模块名称空间访问。当您创建新的模块实例时,您只需要使用 OnModuleLoad() 将内容从一个模块传递到另一个模块。如果在应用程序名称空间中定义了一个对象,则您可以在任何模块名称空间中正常调用该对象。它就像一个包含所有模块名称空间的超级名称空间。
回复:将 JSL 脚本链接到 JMP 应用程序中的按钮嗨卡梅伦@cwillden ,
感谢您的回复,关于应用程序创建的 Word 文档对于理解应用程序创建过程绝对有用,但我仍然怀疑我是否有一个独立的 JSL 脚本来导入 xlsx 数据,并且它提供了一个函数调用,比如 import_xlsx,有没有办法在应用程序构建器工作区中使用 Include() 语句?这样我就可以从应用程序命名空间的 On load 函数调用 import_xslx 函数。
从你的word文档来看,我相信脚本的初始化可以在应用程序命名空间中完成。 但就我而言,我将发送一条指向 import_xlsx 函数的路径,该路径仅在用户选择文件后才获得。所以我对在哪里包含 JSL 文件感到有点困惑。
回复:将 JSL 脚本链接到 JMP 应用程序中的按钮在属性面板中,您应该看到一个属性“Press”。在此处输入要运行的函数或表达式的名称。然后在脚本选项卡中,转到包含按钮的模块的命名空间,并定义您在按钮的 Press 属性中键入的函数/表达式。
我不久前制作了本教程,以学习 Application Builder 的基础知识。我建议您仔细阅读一下,以便您能够更好地感受这个工具。
https://community.jmp.com/t5/Discussions/Gentle-Introduction-to-Application-Builder/mp/49629#M28232