列名的有趣问题我很奇怪为什么一个脚本没有完成它应该完成的任务——根本没有完成!!
只需打开附加的数据表并运行脚本: THE_BUG
Caption(
"column \!"File Name\!"
values: " || Char((current data table():file Name << Get values));
)
结果令人惊讶:

为什么不是“A”和“B”?

人们可以轻松修复脚本...
但深入挖掘,就会发现一个相当令人惊讶的根本原因......
请尽情享受:)
自动化和脚本回复:表名的棘手问题我很困惑。这是我使用 JMP 18.1.0 得到的结果:

我是否遗漏了什么?
回复:表名的棘手问题抱歉,更新帖子时,我不小心删除了根本原因。
如今奇迹再次发生......
回复:表名的棘手问题在原始数据表中,你可能得到

查看更多...My guess is that it is caused by using translated column name and same name in other column + relying on JMP's loose name rules (file Name instead of File Name for column referencing)
New Table("where_is_the_bug",
Add Rows(2),
Compress File When Saved(1),
New Script(
"THE BUG", JSL Quote(Caption(
"column \!"File Name\!"
name: "|| (current data table():file Name << Get Name)||"
values: " || Char((current data table():file Name << Get values));
)
) ,
As String(1)
),
New Column("File Name",
Character,
"Nominal",
Compact(),
Set Values({"A", "B"}),
Set Display Width(71)
),
New Column(["de" => "Dateiname", "en" => "File Name"],
Character,
"Nominal",
Compact(),
Set Selected,
Set Values({"C", "C"}),
Set Display Width(83)
)
)
Most definitely a bug considering JMP's rules for names but there are easy workarounds.
回复:表名的棘手问题不仅仅是猜测:)
很有趣...
- JMP 在内部将第二列的列名保留为“文件名” - 尽管与另一列发生冲突
只需保存表格脚本,你就会看到类似@jthi帖子中的内容 - JMP 使用此内部名称来查找列 - 尽管表视图中的“文件名 2”
除了“文件名”外,您还可以通过“文件名 2”访问该列 - JMP 首先扫描本地化的列名 - 然后扫描原始列名(否则它会找到第一列)。
顺序似乎是:
1)列名a:仅精确匹配
2)本地化列名 - 甚至近似匹配
3)列名b:近似匹配 - 附加列的来源。
我尝试了连接和更新 - 使用英语和德语设置...使用 JMP 18.1 和 JMP19EA4。
回复:表名的棘手问题因此,如果列名与实际列名稍有不同,则 JSL 代码非常“脆弱”:
有人可以添加具有替代值的新列。如果其中一个本地化名称与原始列名相似/脚本中的引用 JMP 将优先考虑新列。这可能会导致令人惊讶的图 - 也许比这个更不明显:
<- 图形生成器将使用这个
列名称:重量
JSL 脚本:重量
alternative column (at the end of the table): wEiGhT <- Graph Builder will use this one

dt = Open("$SAMPLE_IMPORT_DATA/Bigclass.xlsx");
expr = Expr(dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :Weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
));
expr;
Wait(1);<BR />
caption("and with some magic ...");
New Column( ["x-id" => "wEiGhT", "en" => "innocent column"], Set Values( 100::61) );
expr;
回复:表名的棘手问题使用@hogi提供的数据表,它得到了最初显示的空白值。然后我注意到有一列名为文件名2,其中两行都有空白值。然后我删除了文件名2列并重新运行脚本,脚本显示

如果你更改列文件名 2 的名称,脚本也将正确运行