cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • JMP Security Notice: CVE-2026-109618 and CVE-2026-109619

    JMP promptly initiated a review of its products, services, and relevant infrastructure for exposure to CVE-2026-109618 and CVE-2026-109619.

    Our assessment of JMP products has not identified exposure to these vulnerabilities. Where remediation was required within supporting environments, appropriate security updates and controls have been applied and validated.

    We have identified no evidence of successful exploitation or unauthorized access to JMP systems or customer information associated with these vulnerabilities.

    JMP continues to monitor the issue and relevant vendor guidance. No action is required by JMP customers at this time.

  • Don’t miss your chance to experience Discovery Summit Europe at our best available rate! Early bird registration through 31 Oct.
  • Graph Builder Toolbar streamlines interactive graphing. Creates shortcuts on Report and GraphBuilder Helpers toolbars. Download and install the extension.

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar
ConvergentWhale
Level III

Maintain the correct zones

On the control charts, I want to exclude the zones over the average when there is no lower limit. 
Here is my script : 

        // Loop across the split data table and read the values for that column from the dt_limits_copy data table. Populate the Spec Limits and Control Limits
For(i = 1, i <= N Cols(dtsplitcopy), i++, 

	limrow = Try((pIDlimits_copy << get rows where(pIDlimits_copy:labelny == cols[i]))[1], .);

	If(Is Missing(limRow) == 0,
		specs = {LSL(.), USL(.), Target(.), Show Limits(1)};

		specs["LSL"] = pIDlimits_copy:Lower Limit Value[limrow];
		specs["USL"] = pIDlimits_copy:Upper Limit value[limrow];
                   
		Column(dtsplitcopy, Char(cols[i])) << set property("spec limits", Eval(specs));

		controllimits = {Individual Measurement(Avg(a), LCL(b), UCL(c))};
                   
                    // If lower limit is missing it is set to mean - (UCL - mean) = 2*mean - UCL as this will fix issues with zones otherwise being wrong if set to missing
		Substitute Into(controllimits,
			Expr(b),
				If(Is Missing(pIDlimits_copy:Lower_Control_Limit[limrow]),
					2 * pIDlimits_copy:Mean_Plot[limrow] - pIDlimits_copy:Upper_Control_Limit[limrow],
					pIDlimits_copy:Lower_Control_Limit[limrow]
				)
		); // this is done to get correct zones
		Substitute Into(controllimits, Expr(c), pIDlimits_copy:Upper_Control_Limit[limrow]);
		Substitute Into(controllimits, Expr(a), pIDlimits_copy:Mean_Plot[limrow]);
                   
		Column(dtsplitcopy, Char(cols[i])) << set property("control limits", Eval(controllimits));
                    // These notes are added so that later we can choose to hide the "artificial lower limits" which is only included for the zones to be correct
		Column(dtsplitcopy, Char(cols[i])) << set property(
			"notes",
			If(Is Missing(pIDlimits_copy:Lower_Control_Limit[limrow]),
				"Only one limit",
				"Two limits"
			)
		);
	);
);
       
dtsplitcopy << sort(by(Date), Replace Table);

n_vars = N Items(cols);
        // Create window for a control chart for all parameters of a given product from a given site
NW = New Window(sitename || " " || prod_ID || " Report",
	For(v = 38, v <= n_vars, v += 1, //changed from column 37 to 38 to avoid 'Date' being printet as well.
               
		tmp = :column(v) << get property("notes");
               
		Control Chart Builder(
			Show Two Shewhart Charts(0),
			Show Control Panel(0),
			Include Missing Categories(0),
			Name("AIAG (Ppk) Labeling")(1),
			Variables(Y(:Column(v))),
			Chart(
				Points(Statistic("Individual")),
				Limits(Show Lower Limit(tmp == "Two limits"), Sigma("Moving Range"), Zones(1)),
				Warnings(Test 1(0), Test 5(1), Test Beyond Limits(1))
			),

		);
	);
           
	vlb = V List Box(ob = Outline Box("Cpk estimates and print of data"));
);


What should I add to my script ? 
2 REPLIES 2
ConvergentWhale
Level III

Re: Maintain the correct zones

*below the average not over the average . 
example : 

ConvergentWhale_0-1718611938662.png

Here you can see that there is no LCL, thus i want to remove the zones below the green line, but i want to keep the zones above the green line. Also, when i have points on the A zone below the average, I don't want to have alerts because there is no LCL. Does someone knows how to do it? 

 

jthi
Super User

Re: Maintain the correct zones

I think this would require to you script those zones and shaded zones (it might be easier to do this in Graph Builder rather than in Control Chart Builder)

-Jarmo

Recommended Articles