大家好
我现在需要创建基于我的数据表的选项卡(我命名为 dt2)。 选项卡的名称基于 dt2,这里的意思是:如果 dt2 有 10 个产品名称,那么在我的界面中,我还需要有 10 个基于 dt2 中的产品名称的选项卡。
我的要求之一是我不能对编码进行硬编码,因为将来,也许我需要在 dt2 中添加产品名称,因此选项卡将自动与 dt2 中的产品名称数量相同。
那么,如何从 dt2 中提取数据并将其设为制表符?
实际上我不知道如何为我需要完成的任务编写代码,我已经尝试了很多次,但它一直运行错误。
谢谢。
dt2

dt2 = Data Table(
"Data Table........") << Summary(
Group( :F D ),
Freq( "None" ),
Weight( "None" ),
invisible
);
//Create Tabs based on the F D
VariabilityWindow = New Window("Variability Chart",tb = Tab Box() );
For(i =1, i <=nTabs(dt2 << get row names()), i++,
tb << insert(
dt2: F D[i] || Char(i),
V list Box(
Button Box("Variability Chart #" || Char(i)),
)
)
);很明显,您仍在为 JSL 的最基本部分而苦苦挣扎。 几个指针,基于您显示的代码。
1. 不要编造代码。 当它不起作用时,它只会令人困惑。 当猜测代码有效时,你不知道为什么,也没有学到任何东西。
2. 使用日志。 在您列出的许多讨论中,我没有看到日志中的结果。 这些消息提供了有关您的 JSL 出了什么问题的详细信息和洞察力。
3.使用帮助==>脚本索引。它提供了有关项目如何工作的正确语法和示例。 Scripting Index 是关于 JSL 的最完整的文档。
让我批评你的代码
dt2 = Data Table(
"Data Table........") << Summary(
Group( :F D ),
Freq( "None" ),
Weight( "None" ),
invisible
);
总结平台的描述位于:
帮助==脚本索引==>数据表==>总结

这是一个几乎与所需内容相同的示例。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Summary( Group( :Age ), Mean( :Height ) );
但似乎缺少的是如何创建指向汇总平台生成的汇总表的指针。 但是,您似乎不了解如何引用数据表。 在示例中,变量“dt”指向打开的数据表。 因此可以看出,它在摘要平台引用它时使用。 但是,您也可以使用 Data Table() 函数来指向数据表的物理名称。 这就是我认为你正在尝试做的事情,使用数据表(“数据表......”)。 任何一个都可以工作.......如果您知道数据表的名称。 但是正如您在提供的代码中显示的那样,请确保您指定一个变量来指向您将从摘要平台创建的数据表,以便您可以在下一步中使用它(即 dt = )
下一部分代码似乎只是在猜测语法。
//Create Tabs based on the F D
VariabilityWindow = New Window("Variability Chart",tb = Tab Box() );
For(i =1, i <=nTabs(dt2 << get row names()), i++,
tb << insert(
dt2: F D[i] || Char(i),
V list Box(
Button Box("Variability Chart #" || Char(i)),
)
)
);
您要做的是为汇总数据表中的每个 FD 值生成一个新选项卡。
对 Scripting Index 的搜索显示不存在任何名为 nTabs 或 get row names() 的内容。 我假设您认为 nTabs 会给您所需的表格数量。 它不能,因为在程序的这一点上,没有生成任何表,并且仅仅因为已经生成了一个汇总表,它就会知道数据表中的行数是你想要的选项卡数产品。 但是,您可以查看 Scripting Index 并查看哪些函数会告诉您数据表“N Rows()”中的行数,然后只需更改 N Rows() 的组成代码,您就会得到解决方案
以下代码假设您的原始数据表有一个名为“dt”的指针变量指向它。
dt2 = dt << Summary( Group( :F D ), Freq( "None" ), Weight( "None" ), invisible );
//Create Tabs based on the F D
VariabilityWindow = New Window( "Variability Chart", tb = Tab Box() );
For( i = 1, i <= nrows( dt2 ), i++,
tb << Insert(
dt2:F D[i] || Char( i ),
V List Box( Button Box( "Variability Chart #" || Char( i ) ), )
)
);
dt2 = Data Table(
"Data Table........") << Summary(
Group( :F D ),
Freq( "None" ),
Weight( "None" ),
invisible
);