我有一个脚本可以从 Excel 中提取数据并从中创建控制图。 数据对应于不同位置的读数,我希望能够在同一窗口中显示 RM 16 和 RM 25 的读数,保存带有两个图的窗口的 jpg,并关闭每个位置的单独图。 我已经弄清楚如何组合控制图,但似乎无法将新窗口另存为 jpg 或如何关闭各个控制图,因为组合后我不需要这些文件。 有没有办法做到这一点? 我已附上迄今为止的脚本。 我试图使脚本尽可能灵活,以防我们需要添加更多位置来处理数据。
RM = {RM 16, RM 25, Rm.119, Rm.124, Rm 152 153 155};
For(r=1, r<=N Items(RM), r++,
CY = Open("FILEPATH HERE".xlsx",
Worksheets( RM[r] ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 3 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
//what if CY has no data yet? script will stop unless you delete room from RM
CY << Set Name(char(RM[r]) || " " ||char(Year(Today())));
CY << Select Where(Is Missing(:Date))<<Delete Rows;
CB = Open("FILEPATH HERE".xlsx",
Worksheets( RM[r] ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 3 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
column(1) << Data Type(Numeric) << Model Type(Continuous) <<Format( "ddMonyyyy", 12 )<<Input Format( "ddMonyyyy" );
CB << Set Name(char(RM[r]) || " " ||char(Year(Today())-1));
CB << Select Where(Is Missing(:Date))<<Delete Rows;
CB << Concatenate(CY, Append to first table);
Close(CY);
CB << Set Name(char(RM[r]) || " " || char(Year(Today())-1)||"-"||char(Year(Today())));
:Room Location # << Data Type(Numeric);
:Room Location # << Set Property ("Row Order Levels", 1);
CB << Sort(Replace table, By(Room Location#), Order(Ascending));
CB << Save("C:\Users\rfeick\Desktop\Air Particle Data\JMP Control Chart Generated Files\"|| char(RM[r]) || " " || char(Year(Today())-1)||"-"||char(Year(Today()))|| ".jmp");
CB << Select Where(:Date >= As Date(Today()-365*86400))<<Invert Row Selection<<Hide and Exclude;
IF(r==1,
C1 = Control Chart Builder(
Size( 1200, 550 ),
Show Two Shewhart Charts( 0 ),
Show Control Panel( 0 ),
Show Capability( 0 ),
Variables(
Y( :Name( "0.5 Micron Particulate (part/m3)" ) ),
Phase(:Room Location #)
),
Chart( Points( Statistic( "Individual" ) ), Limits( Sigma ) ),
SendToReport(
Dispatch(
{},
"Control Chart Builder",
OutlineBox,
{Set Title( "IR Control Chart" )}
),
Dispatch(
{},
"0.5 Micron Particulate (part",
ScaleBox,
{Min( 0 ), Max( 80000 ), Inc( 5000 ), Minor Ticks( 0 ),
Add Ref Line( 62500, "Dashed", "Purple", "125000", 1 ),
Add Ref Line( 352000, "DashDotDot", "Cyan", "352000", 1 )}
),
Dispatch(
{},
"graph display 1 title",
TextEditBox,
{Set Text(
char(RM[r]) ||" 0.5 Micron Particulate (part/m3) "|| char(As Date(:Date[1]))|| " - " || char(As Date(:Date[NRows()]))
)}
)
)
);
Report(C1)[AxisBox(1)] <<Delete;
Report(C1) << Save Picture("FILEPATH HERE\Air Particulate CC " ||char(RM[r]) || " " ||char(As Date(:Date[1]))|| " - " || char(As Date(:Date[NRows()]))|| ".jpg");
);
IF(r==2,
C2 = Control Chart Builder(
Size( 1200, 550 ),
Show Two Shewhart Charts( 0 ),
Show Control Panel( 0 ),
Show Capability( 0 ),
Variables(
Y( :Name( "0.5 Micron Particulate (part/m3)" ) ),
Phase(:Room Location #)
),
Chart( Points( Statistic( "Individual" ) ), Limits( Sigma ) ),
SendToReport(
Dispatch(
{},
"Control Chart Builder",
OutlineBox,
{Set Title( "IR Control Chart" )}
),
Dispatch(
{},
"0.5 Micron Particulate (part",
ScaleBox,
{Min( 0 ), Max( 400000 ), Inc( 50000 ), Minor Ticks( 0 ),
Add Ref Line( 125000, "Dashed", "Purple", "125000", 1 ),
Add Ref Line( 352000, "DashDotDot", "Cyan", "352000", 1 )}
),
Dispatch(
{},
"graph display 1 title",
TextEditBox,
{Set Text(
char(RM[r]) ||" 0.5 Micron Particulate (part/m3) "|| char(As Date(:Date[1]))|| " - " || char(As Date(:Date[NRows()]))
)}
)
)
);
Report(C2)[AxisBox(1)] <<Delete;
Report(C2) << Save Picture("FILEPATH HERE\Air Particulate CC " ||char(RM[r]) || " " ||char(As Date(:Date[1]))|| " - " || char(As Date(:Date[NRows()]))|| ".jpg");
);
If(r==3 | r==4,
C3 = Control Chart Builder(
Size( 1200, 550 ),
Show Two Shewhart Charts( 0 ),
Show Control Panel( 0 ),
Show Capability( 0 ),
Variables(
Y( :Name( "0.5 Micron Particulate (part/m3)" ) ),
Phase(:Room Location #)
),
Chart( Points( Statistic( "Individual" ) ), Limits( Sigma ) ),
SendToReport(
Dispatch(
{},
"Control Chart Builder",
OutlineBox,
{Set Title( "IR Control Chart" )}
),
Dispatch(
{},
"0.5 Micron Particulate (part",
ScaleBox,
{Min( 0 ), Max( 80000 ), Inc( 5000 ), Minor Ticks( 0 ),
Add Ref Line( 62500, "Dashed", "Purple", "125000", 1 ),
Add Ref Line( 352000, "DashDotDot", "Cyan", "352000", 1 )}
),
Dispatch(
{},
"graph display 1 title",
TextEditBox,
{Set Text(
char(RM[r]) ||" 0.5 Micron Particulate (part/m3) "|| char(As Date(:Date[1]))|| " - " || char(As Date(:Date[NRows()]))
)}
)
)
);
Report(C3)[AxisBox(1)] <<Delete;
Report(C3) << Save Picture("FILEPATH HERE\Air Particulate CC " ||char(RM[r]) || " " ||char(As Date(:Date[1]))|| " - " || char(As Date(:Date[NRows()]))|| ".jpg");
);
IF(r==5,
C4 = Control Chart Builder(
Size( 1200, 550 ),
Show Two Shewhart Charts( 0 ),
Show Control Panel( 0 ),
Show Capability( 0 ),
Variables(
Y( :Name( "0.5 Micron Particulate (part/m3)" ) ),
Phase(:Room Location #)
),
Chart( Points( Statistic( "Individual" ) ), Limits( Sigma ) ),
SendToReport(
Dispatch(
{},
"Control Chart Builder",
OutlineBox,
{Set Title( "IR Control Chart" )}
),
Dispatch(
{},
"0.5 Micron Particulate (part",
ScaleBox,
{Min( 0 ), Max( 400000 ), Inc( 50000 ), Minor Ticks( 0 ),
Add Ref Line( 125000, "Dashed", "Purple", "125000", 1 ),
Add Ref Line( 352000, "DashDotDot", "Cyan", "352000", 1 )}
),
Dispatch(
{},
"graph display 1 title",
TextEditBox,
{Set Text(
char(RM[r]) ||" 0.5 Micron Particulate (part/m3) "|| char(As Date(:Date[1]))|| " - " || char(As Date(:Date[NRows()]))
)}
)
)
);
Report(C4)[AxisBox(1)] <<Delete;
Report(C4) << Save Picture("FILEPATH HERE\Air Particulate CC " ||char(RM[r]) || " " ||char(As Date(:Date[1]))|| " - " || char(As Date(:Date[NRows()]))|| ".jpg");
);
);
Together = New Window("RM 16 & RM 25 0.5 Micron Particulate (part/m3) "|| char(As Date(:Date[1]))|| " - " || char(As Date(:Date[NRows()])), V List Box(Report(C1),Report(C2)));
Together << Save Picture("FILEPATH HERE\Air Particulate CC RM 16 & RM 25 0.5 Micron Particulate (part/m3) "||char(As Date(:Date[1]))|| " - " || char(As Date(:Date[NRows()]))|| ".jpg");
C1 <<Close Window;
C2 << Close Window;