通过 Run Script() 运行 Graph Builder 脚本时,自定义函数无法识别;但手动运行时可以正常工作。我创建了一个自定义 JSL 函数并将其加载到全局环境中。然后,在图表构建器界面中,我使用“自定义脚本”功能将此函数集成到图表脚本中。之后,我将图表构建器脚本保存到数据表中(作为表脚本)。
当我从数据表中手动运行图形生成器脚本(通过单击表格中的脚本按钮)时,一切都运行良好——自定义函数被识别,图形也正确生成。
但是,当我尝试使用编程方式运行同一个表格脚本时,却遇到了问题。 Run Script() 函数(例如, dt << Run Script("Graph Builder")脚本运行失败,因为它找不到我的自定义函数。看起来…… Run Script() 脚本在一个隔离的上下文中执行,该上下文无法访问我全局定义的函数。
names default to here(1);
dt=current data table();
dt<
<RUN script=""></RUN>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AggregateHare95_0-1781704169868.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="AggregateHare95_0-1781704169868.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="AggregateHare95_0-1781704169868.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="AggregateHare95_0-1781704169868.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/106823i91CFAE42C2887E25/AggregateHare95_0-1781704169868.png" role="button" title="AggregateHare95_0-1781704169868.png" alt="AggregateHare95_0-1781704169868.png" /></span></SPAN></SPAN></SPAN></P> <P class="ds-markdown-paragraph"><SPAN class="">有趣的是,JMP 内置函数可以正常识别,但我自定义的函数却无法识别。</SPAN></P> <P class="ds-markdown-paragraph"><SPAN class="">还有其他人遇到过这种情况吗?有什么办法可以解决这个问题吗?<SPAN> </SPAN></SPAN><CODE>Run Script() 如何在同一个全局命名空间中执行表格脚本,以便我的自定义函数可见?任何解决方法或解释都将不胜感激。
<LINGO-LABS id="lingo-labs-954243" slang="en-US" mode="CREATE">
<LINGO-LABEL>自动化和脚本编写</LINGO-LABEL>
</LINGO-LABS>
回复:通过 Run Script() 运行 Graph Builder 脚本时自定义函数无法识别,但手动运行可以正常工作。您可以在表脚本中的函数调用前加上 `::`(或 `global:`),以便从全局命名空间访问它。您也可以考虑使用“新建自定义函数”/命名空间来创建函数,并相应地修改表脚本。
回复:通过 Run Script() 运行 Graph Builder 脚本时自定义函数无法识别,但手动运行可以正常工作。谢谢老兄!你真是个天才——这么简单的解决方法,竟然完美奏效了。