当前报告的可编写脚本对象你好,
获取当前报告的可编写脚本对象的最佳方法是什么?
如果它是一个图形生成器对象,我可以使用
gb = Current Report()["Graph Builder"] << get scriptable object
这非常强大 - 但只适用于 Graph Builder 对象。即使用户更改标题,它也能正常工作。
如果没有 Graph Builder,我可以尝试
so = Current Report()[Outline Box( 1 )] << get scriptable object
如果没有本地数据过滤器,它将起作用,
没有Column Switcher [啊,Column Switcher 是ColumnSwitcherContextOutlineBox ,没有OutlineBox ]
并且没有用户定义的仪表板[啊,仪表板是通过TabPageBox es 创建的,而不是OutlineBox es]
对于本地数据过滤器的情况,我可以检查标题:
ob = Current Report()[Outline Box( 1 )];
If( (ob << Get Title) == "Local Data Filter",
ob = Current Report()[Outline Box( 2 )]
);<BR />ob << get scriptable object;
这种方法仅适用于英语语言设置,并且用户未更改OutlineBox的标题。
因此,最好检查脚本对象是否是数据过滤器:
Try (so = Current Report()[Outline Box( 1 )] << get scriptable object;
if (Char(Head(so)) == "Data Filter[]" ,
so = Current Report()[Outline Box( 2 )] << Get Scriptable Object),
Caption("failed to get a scriptable object") // user defined Dashboard
)
自动化和脚本回复:当前报告的可编写脚本对象使用“@helpKey”XML 属性
Names Default To Here(1);
obs = Current Report() << XPath("//OutlineBox[@helpKey and not(@helpKey = 'Data Filter')]");
If(N Items(obs) > 0,
obj = obs[1] << Get Scriptable Object;
Show(obj);
);
Write();
XPath 查询可能需要进行额外的修改,具体取决于它的工作地点。请注意,使用 XPath 时,您可能会遇到 JMP 的 XPath 查询无法处理 XML 的问题( 如何为 << XPath() 启用 XML_PARSE_HUGE? )。
回复:当前报告的可编写脚本对象啊,太好了。谢谢。
回复:当前报告的可编写脚本对象如果不采用
Distribution(
Continuous Distribution( Column( :height ), Process Capability( 0 ) ),
Local Data Filter
);
ob = Current Report()[Outline Box( 1 )];
If( (so << Get Title) == "Local Data Filter",
ob = Current Report()[Outline Box( 2 )]
);
ob << get scriptable object;
如果在平台执行时获取了可脚本化对象
ob = Distribution(
Continuous Distribution( Column( :height ), Process Capability( 0 ) ),
Local Data Filter
);
即使运行多个平台,并且使用相同的 JSL 变量引用可编写脚本的对象,也可以使用简单的 JMP 列表来收集可编写脚本的对象,从而避免 Current Report() 可能带来的所有混乱。
以下脚本使用示例数据表 Big Class 说明了如何在执行时获取可编写脚本的对象以绕过 Current Report() 问题
names default to here(1);
dt=current data table();
objectList = {};
dis = Distribution(
Continuous Distribution( Column( :height ), Process Capability( 0 ) )
);
insert into(objectList, dis);
show(current report()[outlinebox(1)]<<GET title=""></GET>
<P>新功能的愿望清单项目名为</P>
<CODE class=" language-jsl"><< Get Current Report Scriptable Object
可能是有道理的
回复:当前报告的可编写脚本对象我的主要应用:
用于调整/与任何“现有”报告交互的命令。
因此,没有机会填写名单。
@txnelson wrote:
新功能的愿望清单项目名为
<< Get Current Report Scriptable Object
可能是有道理的
好的:
消息:获取当前报告脚本对象
ob & so -> 在主帖中更正