在 jsl 中设置链接 ID 似乎不起作用 - 出了什么问题?我试图在 JSL 中设置链接 ID,但是在 JSL 中设置链接 ID 时,链接 ID 似乎在表中设置,但应该引用它的其他表中的链接引用不起作用。
如果我删除链接 ID 并通过右键单击链接 ID 进行设置,则一切正常。
我用这个:
dfps:name( "Country" ) << Set Property( "Link ID", 1 );
看不出这有什么问题。 我是否缺少一些刷新操作以使其正常工作? 有什么建议么?
大规模定制回复:在 jsl 中设置链接 ID 似乎不起作用 - 出了什么问题?谢谢曼迪,
有时你不想保存东西。
但感谢您指出这个问题已在 JMP 17 中得到解决。 我的是16.2。 在大公司中更新到较新的软件版本并不总是那么容易,但现在我知道这是值得的。
回复:在 jsl 中设置链接 ID 似乎不起作用 - 出了什么问题?感谢您分享这些评论和见解。我们多次鼓励在创建表的链接 ID 和链接引用之前保存表,以确保正确保存。 然而,我们确实报告了一个缺陷,并在 17.0 JMP 周期中修复了该缺陷。 所以这个脚本行为不再失败。
安装新的 JMP 17.0,此行为应该得到更多改进。谢谢。
回复:在 jsl 中设置链接 ID 似乎不起作用 - 出了什么问题?@罗布我刚刚向开发团队发送了一条信息;我没有测试过你的理论,但我希望你已经找到了不可预测性的原因。 这是可信的,因为当未保存脚本时,当前目录会有所不同,并且表可能依赖于与之相关的某些内容。
回复:在 jsl 中设置链接 ID 似乎不起作用 - 出了什么问题?正如克雷格提到的,我认为这是一个“保存”问题。 我以前也遇到过这个问题,而且令人沮丧的是,我只在 PC 上遇到过这个问题。 在 Mac 上,我不需要执行保存。
确保我的表首先被保存,解决了问题。
布雷迪
回复:在 jsl 中设置链接 ID 似乎不起作用 - 出了什么问题?我发现了一些新的东西:
如果我正在执行的 JSL 脚本未保存且以前从未保存过(因此,如果源代码已写入或复制到全新打开的脚本窗口中),则链接两个未保存的数据表就像一个魅力。
如果它已保存,或者它是刚刚修改但未保存的现有脚本,则它不起作用。
回复:在 jsl 中设置链接 ID 似乎不起作用 - 出了什么问题?大家好你们好,
通过脚本链接两个表时我遇到了同样的问题。
它的行为完全一样@ThomasZatValcon描述。
通过单击手动完成此操作后,我从日志中复制了两行代码。
然后取决于它们插入的位置。 如果我将它们插入新的脚本窗口中,脚本就会起作用。 如果我将它们插入到当前正在开发的脚本中(最初从其中打开两个表),它将不起作用。
对于这个问题,是否有一些新的认识呢?
干杯
罗伯特
顺便提一句。 与此同时,我发现了一个相关的线程。 解决方法是先保存数据表,但这并不总是方便。
https://community.jmp.com/t5/Discussions/Virtual-Join-via-JSL-does-not-work/td-p/360675
回复:在 jsl 中设置链接 ID 似乎不起作用 - 出了什么问题?尝试在链接之前保存表格,看看结果是否一致。 我不确定链接在内部如何工作,但它可能取决于可用的文件名。
回复:在 jsl 中设置链接 ID 似乎不起作用 - 出了什么问题?这是两张不同的桌子。 左边的表是带有 ID 的表,左边的表是带有引用的表。
是的,我尝试了 column(dt...) 和 dt:name()... 引用。
我还尝试将有效的代码(当它从单独的脚本窗口运行时)放入单独的文件中并包含它。 也没起作用。 我尝试将其放入 expr() 中并对其进行评估。 也没有帮助。
但是,如果我创建一个单独的脚本窗口并从那里运行它们,这两行代码就可以工作,这是出乎意料的。
回复:在 jsl 中设置链接 ID 似乎不起作用 - 出了什么问题?它们应该是相同的吗? 因为两个表的列数不同。
你看“dfps”是对的吗? 或者尝试使用`Column(dt, "Country")`?回复:在 jsl 中设置链接 ID 似乎不起作用 - 出了什么问题?仍然没有弄清楚,但我在这里遇到了一些真正奇怪的行为:
在两个窗口中有相同的代码:

当我在左侧窗口中运行代码时,请注意带有两个键的图标是灰色的(它不起作用):

当我在右侧窗口中运行相同的两行时,它会起作用:

左侧窗口中的代码是创建 jsl 的位置。 所有代码都在全局命名空间中运行。 我什至尝试使用默认名称为here(1),并得到了令我惊讶的相同行为,因为我预计无法从另一个脚本窗口引用表变量。
回复:在 jsl 中设置链接 ID 似乎不起作用 - 出了什么问题?谢谢。 我修改了您的代码以更好地表示正在发生的事情(表仅在内存中)以更紧密地表示正在发生的事情并预计它会失败,但它实际上有效。 仍然没有弄清楚是什么导致我的其他代码失败,但如果我发现的话,我会更新这个线程。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
// creating a unique ID
dt2 = dt << subset( all rows, all columns );
dt2 << New Column( "_Row", <<SET each="" value=""></SET>
回复:在 jsl 中设置链接 ID 似乎不起作用 - 出了什么问题?你是说你在ID之前设置引用吗?不知道你会怎么做,但这对我来说效果很好。
Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");
// creating a unique ID
dt << New Column("_Row", << Set Each Value(Row()));
// subsetting just so I have something to link
dt_sub = dt << Subset(
Selected Rows( 0 ),
Rows( [1, 2, 3, 4, 5] ),
columns( :_Row )
);
Column(dt, "_Row") << Set Property( "Link ID", 1 );
Column(dt_sub, "_Row") << Set Property( "Link Reference",
Reference Table( "$SAMPLE_DATA\Big Class.jmp" )
);