<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
有点像 JMP 脚本新手。 感谢我能得到的任何帮助。
以下是我想要实现的步骤。 首先,我打开 Excel 文件,并在该 Excel 文件中选择一个工作表。然后我应用一些 SQL 语句来获取工作表数据的子集并命名该数据集
作为依从性的子集。接下来是创建日志,我将所有失败的控制点写入其中。 接下来是根据 Final CPASU 列绘制控制图。 这就是我的问题开始的地方。
我希望仅在数据未通过任何测试时才绘制控制图。 换句话说,如果数据点通过了所有七个控制限测试,我不希望 JMP 显示该图表。 它应该仅在某些内容超出限制时显示图表。当我有超过 50 个图表(这里就是这种情况)但我没有包含所有其他 49 个图表代码时,这特别有用。
这样做可以确保我只专注于纠正出错的事情,而不是查看所有图表
并找出哪些图表数据点出了问题。最后,我要做的是将这些图表作为 HTML 文件保存在文件夹中,这样我就可以用 VBA 编写一个脚本,然后将这些图像发布到共享点网站上。这一步工作正常,但我对上述步骤缺乏想法。
我的代码如下:
打开数据库("DSN=Excel Files;DBQ=C:\Users\XXXXX\Documents\XXXX\JMP Analysis\XXXXX.xlsm;DriverId=1046;MaxBufferSize=2048;PageTimeout=5;", "从`'CPASU中选择* $'`","CPASU$");
//创建子集
(数据表( "CPASU byqueue$" ) << 选择其中(AND(FWEEK>=201201,FWEEK!=201248, FWEEK!=201247, FWEEK!=201243, Adherence>0))<< 子集( 链接 ) ;
当前数据表(数据表(“依从性子集$”)));
//清除csv文件的日志和设置列
清除日志();
Write("队列名称,测试,列,数据点\!N");
//开始控制图
新窗口(“CPASU 的子集”,
V 列表框(
控制图(样本标签( :FWEEK ),(报警脚本(Write("NA Standard,",qc_test,",",qc_col,qc_sample,"\!N")),
团体人数( 1 ),
克西格玛( 3 ),}
Chart Col( :最终 CPASU,单独测量(遮阳区(1),测试 1(1)) ),Where( :队列名称 == "NA 标准" ),),);
Savelog("C:\Users\XXXX\Documents\XXXX\JMP Analysis\JMPlogs.csv");
Window(“CPASU 的子集”) << SaveHTML (“C:\Users\XXX\Documents\XXX\JMP Analysis\HTML\CPASU.html”);
如果左括号和右括号的数量不匹配,请忽略。
嘿阿什温,
我可以考虑采用几种方法来做到这一点,但我相信最简单的方法是按原样编写控制图脚本,然后让 JMP 打开您以表格形式编写的日志文件。 从这里开始,您可以采取几种方法,但本质上您现在在 JMP 中拥有一个表格,显示哪些突破失败。 您可以将“队列名称”的值的不同列表加载到列表变量中,并让该循环遍历第二个脚本,就像您...本质上将 where(:Queue Name = "NA Standards") 替换为Where(:Queue Name) = 列表)这样它只会为失败的图表编写脚本。 所以你的第二部分看起来像这样:
V 列表框(
For( i= 1, i <= N 项(LISTNAME), i++,
控制图(示例标签( :FWEEK ),(报警脚本(Write(char(LISTNAME) ,",",qc_test,",",qc_col,qc_sample,"\!N")),
团体人数( 1 ),
克西格玛( 3 ),
Chart Col( :最终 CPASU,单独测量(阴影区域(1),测试 1(1)) ),Where( :队列名称 == LISTNAME ),),));
当然,将 LISTNAME 替换为您想要的列表名称。 我还没有测试过这段代码,所以可能需要一些调整插入语和逗号...但我想你明白了。