运行表脚本通过绿色播放图标运行表脚本有什么区别:

...并通过运行按钮?

自动化和脚本回复:运行表脚本是否有理由怀疑存在差异?例如,您可以从脚本“窗口”通过突出显示各个部分来运行它们。
回复:运行表脚本他们通常做同样的事情。
小绿箭头更快,一次点击。
:)
回复:运行表脚本在表格脚本中发明了第三个“解决方案”来解决“时间问题”之后——不幸的是,没有取得真正的成功
...我发现实际的区别是:
- 通过播放图标→问题运行脚本
- 打开脚本窗口 - [尝试一些新代码...或什么都不做] - 然后单击运行按钮→没有问题。
回复:运行表脚本通过单击绿色运行箭头来运行,在其附加的数据表上运行脚本。
从编辑窗口运行脚本,在当前活动数据表上运行脚本,该数据表可能不是保存脚本的数据表。
回复:运行表脚本我也是这么想 ...
回复:运行表脚本好主意,
但实际上,对于“编辑”模式,我注意在单击运行之前先激活“我的表格”。
并且:“编辑”模式有效:)
也许它与代码中某处的当前数据表()有关 - 如果通过播放图标或通过运行按钮启动脚本,则其行为可能会有所不同。
只需放一个:)当前数据表()直接放入表脚本并没有显示两种方法之间的差异。
但是我的代码是一长串的 JSL、主菜单(“...”)、打开文件、连接、连接...
我将尝试降低复杂性来显示差异 - 或者生成一个匿名示例......
回复:运行表脚本我尝试添加
current data table();
看看它是否会将脚本指向保存脚本的数据表,但事实并非如此。脚本针对当前数据表所在的任何数据表运行。
回复:运行表脚本在上述任何一种情况下,Current Data Table() 都不可信赖。如果按下绿色三角形后立即打开新表,则当前表可能会在执行脚本之前发生变化(使用绿色运行按钮时不太可能发生这种情况,但确实可能发生)。使用这样的脚本进行测试相当容易
wait(1);
Caption(Current Data Table() << get name);
按绿色三角形运行脚本,然后立即按 Ctrl+N 创建新表。
但如果你忽略当前数据表(),它将在运行脚本的表上触发(在两种情况下)
wait(1);
Current Data Table() << New Column("A");
对比
wait(1);
New Column("A");
回复:运行表脚本关于我的问题
事实上,归根结底,这是一个时间问题
...就像 Jarmo 描述的一样 - 但是有点相反:
我使用定制的 AddIn 来加载文件。
并且由于主菜单无法返回返回值:(,
我使用当前数据表()来访问新创建的表
这就是想法……
//<FONT face="courier new,courier">打开(“$SAMPLE_DATA/Big Class.jmp”);</FONT><BR />Main Menu("load_");
// wait(1);
dt= current data table(); // the idea: myDT
caption(dt << get name())
a)如果我只使用Open(“$SAMPLE_DATA/Big Class.jmp”) ,一切都会顺利。
另一方面,通过主菜单(“load_”)打开数据表后,
当前数据表仍然引用我的主表(!)。
激活等待(1)解决了这个问题 - 但要收取 1 秒的罚款。
b) 为了使其更加健壮(和更快),我在 FUNC 内部创建了一个表引用:::load_:myTable并使用dt=:::load_:myTable代替通过当前数据表()的原始方法。
有趣的:
通过:::load_:myTable 的方法无需等待(1)即可工作。
这意味着在新表获取当前数据表()之前我已经可以与它进行通信了!
因此,也许值得研究一下,数据表获取当前数据表的速度有多快()
...以及为什么会有差异。
回复:运行表脚本回到讨论的开始——绿色播放图标和编辑窗口的“运行”按钮之间的区别:
@Byron_JMP写道:
他们通常做同样的事情。
小绿箭头更快,一次点击。
:)
问题归结为发现没有一个定义良好的当前数据表() !
使用绿色播放按钮并检查结果窗口,可以看到以下序列:
1)插件打开测试并报告当前数据表已更改为测试
2)主表仍然认为check_current_data_table是当前数据表(!!!)
3) wait(0)之后,它会了解更多信息并返回测试。
另一方面 - 如果通过编辑窗口中的 RUN 按钮启动脚本 - 所有 3 个结果窗口都会显示与当前数据表()相同的表。
主要脚本:
Names Default To Here( 1 );
Main Menu( "load_" );
win = new window("1 ",Text Box ("main table (1):\!n" ||
(current data table() << get name())));
wait(1);
win = new window("2 ",Text Box ("main table (2):\!n" ||
(current data table() << get name())));加载_:
Names Default To Here( 1 );
dt = open("C:\temp\test.csv");
Caption( {100, 200}, "postprocessing ...");
win = new window("addIn", text box("inside the addin:\!n" ||(current data table()<< get name())));
// win << moveWindow( 100, 100 );
Caption( remove );
深入挖掘,我们会发现诸如启用 AddIn 中的<< moveWindow或禁用其中一个标题命令等微小的细节都会对行为产生影响。
回复:运行表脚本顺便说一下同样的问题:
没有一个定义良好的当前数据表() !
也是引发此帖子的问题: ThisDataTable()?
修复了同样的错误:
添加等待 ( 0 )
在...前面
dt = 当前数据表()!