我一直致力于实现流程筛选分析的自动化。
我有一个文本框弹出窗口,提示用户输入 yyyy-mm 格式的日期。然后我有一个按钮将日期保存为变量。接下来,我有一个按钮运行流程筛选分析。除此之外,我还使用用户输入插入了一个本地数据过滤器,仅对该组数据进行分析。这很好用。
但是,我还想利用“选定项目的控制图”选项,我将其作为“过程筛选”模块的最后一个参数。倒数第二个参数是“全选”。我得到的结果显示,控制图的分组正确,但过滤不正确(数据表中的所有数据都用于创建图表)。
我有两个问题。如何确保仅使用经过本地数据过滤器过滤的数据来创建图表?
(如果我使用“流程筛选”模块中的红色三角形创建我想要的图表,然后抓住该脚本,我最终会得到许多硬编码值,这些值可能不适用于以后的分析)
第二个问题是,我如何调用控制图进行进一步处理或保存?我一直无法弄清楚如何将它们保存到另一个变量或导出它们。之前,我将流程筛选分析保存到一个变量,然后使用<<报告;并保存为 powerpoint,但只显示流程筛选,而没有控制图。
任何帮助或资源都将不胜感激。
这是我的代码片段
year = Char( Year( Today() ) );
month = Char( Month( Today() ) );
date = Concat Items( {year, month}, "-" );
w = New Window( "Date Filter",
Border Box( top( 30 ), bottom( 20 ), Left( 30 ), Right( 30 ),
V List Box(
H Center Box( Text Box( "Date Filter\!n\!nPlease enter date in yyyy-mm format" ) ),
Spacer Box( size( 1, 30 ) ),
H List Box( Text Box( "Date: " ), b1 = Text Edit Box( date ) ),
Spacer Box( size( 1, 15 ) ),
Spacer Box( size( 1, 15 ) ),
H Center Box(
Button Box( "Save Filter Date",
b2 = b1 << Get Text();
)
),
H Center Box(
Button Box( "Get Process Capability",
Current Data Table( dt2 );
dt4 = Process Screening(
Process Variables(
:"Metric1", :"Metric2",:"Metric3"),
Grouping( :"MetricA" ),
Control Chart Type( "Indiv and MR" ),
Process Performance Graph( 1 ),
Show Tests( 0 ),
Target Index( 1 ),
Cp( 1 ),
Spec Limits( 1 ),
Use Limits Table(1,Data Table( dt3 ),Process Variables( :Process ),Grouping( :"MetricA" ),LSL( :LSL ),USL( :USL ),Target( :Target ),Go),
Local Data Filter(Add Filter( columns( :"ProcessDate" ), Where(:"ProcessDate" == b2 ))),
SendToReport( Dispatch( {}, "", TableBox, {Sort By Column( 2, 1 )} ) ),
Select All,
Control Charts for Selected Items,
);
)
)
)
)
);
您的过滤器是否能正确进行流程筛选?我使用 jmps 样本数据进行了简单测试。
仅过滤 lot01

当我为选定内容创建控制图时,我可以看到它已被过滤

控制图将在新窗口中打开。要捕获该图,您可以使用 << 获取窗口列表 + << 获取窗口标题并检查哪个是您的窗口。如果创建了多个并且“选定的图表”尚不存在,则它被命名为“选定的图表”
你好,jthi,
是的,本地数据过滤器对于分析的过程能力部分来说确实正常工作。如果我过滤了数据并选择我想要的指标(即全部),然后转到红色三角形并选择所选项目的控制图,那么我就会得到过滤后的控制图,这正是我想要的。如果我继续使用上面粘贴的代码,则会输出未过滤的(所有数据)控制图。
这似乎至少是有效的
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
ps = dt << Process Screening(
Process Variables(
:NPN1, :PNP1, :PNP2, :NPN2, :PNP3, :IVP1, :PNP4, :NPN3, :IVP2, :NPN4, :SIT1,
:INM1
),
Control Chart Type("Indiv and MR"),
RowStates([0 1, 10 1, 11 1]),
Local Data Filter(
Add Filter(
columns(:lot_id),
Where(:lot_id == {"lot01", "lot02", "lot03", "lot04"}),
Display(:lot_id, N Items(13))
)
)
);
ps << Select All;
ps << Control Charts for Selected Items;