以交互式 HTML 格式保存时,为什么我会丢失图表?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我需要每天根据 Final Tester 测量数据发布产品监视器。
在多种产品上测量了许多参数。
我已经成功地以满足我需要的形式设置了监视器,但是当以交互式 HTML 格式保存时,它们中的大多数都丢失了。
以下是该问题的一些屏幕截图(仅限于一个参数):
当我手动设置控制图时,我得到以下图表。
这些是预期的,正是我所需要的。 3个产品,1个参数。

然后,当我使用下拉菜单将这些图表保存为交互式 HTML 时,我得到的布局与上面几乎相同。
还有 3 个产品和 1 个参数
到目前为止,一切都很好.....

但是,当我尝试使用以下方法编写此过程时:
设置默认目录( "C:\TEMP" ) ;
获取默认目录() ; // 返回 "c:/temp"
光盘=获取默认目录() ;
对象=控制图(
SendToByGroup ( { :产品== “啊啊” } ) ,
样品标签( :晶圆) ,
组大小( 1 ) ,
克西格玛( 3 ) ,
图表栏( :平均A_PRIM ,个人测量) ,
经过( :产品) ,
{ :产品== “啊啊” } ,
{ “控制图产品=AaA” ,
“A_PRIM 平均值的单独测量” } ,
"IM 的 IR 图表" ,
框框,
{框架尺寸( 313 , 100 )}
) ,
{ “控制图产品=AaA” ,
“A_PRIM 平均值的单独测量” } ,
"IM 的 IR 图表" ,
框框( 2 ) ,
{框架尺寸( 313 , 100 )}
) ,
{ :产品== “BBB” } ,
{ “控制图产品=BbB” ,
“A_PRIM 平均值的单独测量” } ,
"IM 的 IR 图表" ,
框框,
{框架尺寸( 313 , 100 )}
) ,
{ “控制图产品=BbB” ,
“A_PRIM 平均值的单独测量” } ,
"IM 的 IR 图表" ,
框框( 2 ) ,
{框架尺寸( 313 , 100 )}
) ,
{ :产品== “抄送” } ,
{ “控制图产品=CcC” ,
“A_PRIM 平均值的单独测量” } ,
"IM 的 IR 图表" ,
框框,
{框架尺寸( 313 , 100 )}
) ,
{ “控制图产品=CcC” ,
“A_PRIM 平均值的单独测量” } ,
"IM 的 IR 图表" ,
框框( 2 ) ,
{框架尺寸( 313 , 100 )}
) ;
对象<<保存交互式 HTML ( “产品探针 Monitortest.html” ) ;
打开( “产品探针 Monitortest.html” ) ;
我得到:
只有 1 个产品和 1 个参数。

可以看出,缺少产品“AaA”和“BbB”。
我应该如何更改脚本以包含它们?
在实践中,我将为 10 种产品设置这些监视器,每个产品都有 50 到 200 个测试参数,因此非常感谢这里的任何提示。
非常感谢,
菲利普
回复:为什么我在以交互式 HTML 格式保存时会丢失图表?嗨,msharp,
感谢您对 melaniedrake 提出的解决方案的确认,并提供了一个我也会评估的替代解决方案。
此致,
菲利普
回复:为什么我在以交互式 HTML 格式保存时会丢失图表?嗨,梅拉尼德雷克,
感谢您的解决方案,特别是指出我的代码中的错误。
我已经进行了您建议的更改,并且效果很好。
它有很大帮助。
此致,
菲利普
回复:为什么我在以交互式 HTML 格式保存时会丢失图表?melaniedrake 是正确的。为了更好地控制,您可以使用 'New Window("title") << Append(obj)' 格式。见下文。
// 自动化新产品最终测试监控的测试脚本
设置默认目录("C:\TEMP"); // 仅在测试阶段使用 C:TEMP
获取默认目录();
cd=获取默认目录();
dt = open("分割数据.jmp");
列(1)<<标签(1);
列(3)<<标签(1);
列(5)<<标签(1);
列(6)<<标签(1);
dt = 当前数据表();
theWindow = New Window("控制图");
theWindow << 附加(obj = 控制图(
样本标签( :DISCNR ),
组大小(1),
千西格玛(3),
图表 Col(:A_PRIM 的平均值,单独测量),
作者(:SENSORTYPENR)
));
theWindow <<保存交互式 HTML("Probe_Monitor.html" );
//等待(0);
打开(“Probe_Monitor.html”);
回复:为什么我在以交互式 HTML 格式保存时会丢失图表?如果您查看 obj 包含的内容,它有一个控制图列表(您示例中的三个控制图):{Control Chart[], Control Chart[], Control Chart[]}
当您向列表发送消息(如保存交互式 HTML)时,消息会依次发送给列表的每个成员。 所以这里发生的事情是,它首先保存一个带有第一个控制图的 html 页面,然后保存第二个包含第二个控制图的同名 html 页面,然后保存第三个同名的 html 页面包含第三个控制图。 最终结果是一个仅包含第三个控制图的 html 页面。
解决方案是将保存交互式 HTML 消息发送到包含所有控制图的树更远的单个容器。
为此,请在代码中替换此行:
obj <<保存交互式 HTML("Probe_Monitor.html" );
用这两行:
tp = obj[1] << topparent();
tp <<保存交互式 HTML("Probe_Monitor.html" );
高温高压
回复:为什么我在以交互式 HTML 格式保存时会丢失图表?嗨,msharp,
感谢您的反馈意见。
如您所见,我不是脚本专家,感谢您的意见。
请参阅下面使用的代码:
设置默认目录( "C:\TEMP" ) ; // 仅在测试阶段使用 C:TEMP
获取默认目录() ;
光盘=获取默认目录() ;
dt =打开( “拆分数据.jmp” ) ;
柱子( 1 ) <<标签( 1 ) ;
柱子( 3 ) <<标签( 1 ) ;
柱子( 5 ) <<标签( 1 ) ;
柱子( 6 ) <<标签( 1 ) ;
dt =当前数据表() ;
对象=控制图(
样品标签( : DISCNR ) ,
组大小( 1 ) ,
克西格玛( 3 ) ,
图表栏( :平均A_PRIM ,个人测量) ,
经过( :传感器类型NR )
) ;
对象<<保存交互式 HTML ( “Probe_Monitor.html” ) ;
打开( “Probe_Monitor.html” ) ;
请找到附件的数据表和脚本
- 菲利普
回复:为什么我在以交互式 HTML 格式保存时会丢失图表?这不可能是你的代码。它已损坏,如发布。例如, obj = ( .. ) 只包含 AaA 产品信息,并且不知何故您只能在 html 中获取 CcC 产品信息?最后有一个额外的“)”。接下来,没有数据集。
请使用示例数据集发布工作代码。 例如; dt = open("$Sample_Data\Big Class.jmp").或附上您在上面使用的示例数据集。当有许多其他问题必须首先处理时,很难解决您的具体问题。