Hola,
Necesito ayuda para crear un script en un caso en el que no se deben aplicar límites de control de fase al primer parámetro/gráfico , mientras que los parámetros/gráficos restantes tienen límites de control fijos definidos en el mismo script.
Actualmente estoy usando la siguiente estructura:
<SPAN>Establecer límites de control( { {LCL(.), Prom(.), UCL(.)}, {LCL(1060,2), Prom(1405,3), UCL(1745,1)}, {LCL(12,3), Prom(14,1), UCL(15,8)}, {LCL(16), Prom(22), UCL(28)} } ),</SPAN>
El problema es que JMP siempre muestra un cuadro de diálogo que solicita los límites del primer gráfico. Debo hacer clic en Aceptar o Cancelar antes de que el script continúe. Tras cerrar el cuadro de diálogo, el primer gráfico no muestra correctamente ningún límite de control fijo , y los otros tres gráficos utilizan los límites proporcionados; sin embargo, quiero evitar que el cuadro de diálogo aparezca .
¿Su primer gráfico (o columna) también tiene límites fijos en las propiedades de columna, pero simplemente desea eliminarlos? ¿O tiene un script con límites fijos y simplemente desea dejar un gráfico sin ellos?
Algunas opciones de script con el supuesto de que los límites fijos se establecen en el script
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Quality Control/Coating.jmp");
// let JMP set them initially, using hidden not avoid display limit changes
ccb = dt << Control Chart Builder(
Variables(Subgroup(:Sample), Y(:Weight)),
Chart(Position(1), Points(Statistic("Average")), Limits(Sigma("Moving Range"))),
Chart(Position(2), Points(Statistic("Moving Range on Means")), Limits(Sigma("Moving Range"))),
Chart(Position(3), Points(Statistic("Range")), Limits(Sigma("Range"))),
Chart(Position(4), Points(Statistic("Range")), Limits(Sigma("Range"))),
Show Control Panel(0),
Invisible
);
// don't set them to first chart at all and let JMP do it
// I would use a list of limits and for-loop to set rest of the limits, but you could just copy paste this multiple times
ccb << Chart(Position(2), Set Control Limits({LCL(1), Avg(3), UCL(6)}));
ccb << Chart(Position(3), Set Control Limits({LCL(2), Avg(4), UCL(7)}));
ccb << Chart(Position(4), Set Control Limits({LCL(3), Avg(5), UCL(8)}));
// Show the report again
wait(0);
ccb << show window(1);
Hay muchas opciones para una gestión de límites más sencilla, pero aquí hay una que utiliza una lista de listas (también se puede utilizar una tabla de datos, una matriz asociativa, etc.)
Names Default To Here(1);
CC_LIMITS = {
{LCL(1), Avg(3), UCL(6)},
{LCL(2), Avg(4), UCL(7)},
{LCL(3), Avg(5), UCL(8)}
};
dt = Open("$SAMPLE_DATA/Quality Control/Coating.jmp");
ccb = dt << Control Chart Builder(
Variables(Subgroup(:Sample), Y(:Weight)),
Chart(Position(1), Points(Statistic("Average")), Limits(Sigma("Moving Range"))),
Chart(Position(2), Points(Statistic("Moving Range on Means")), Limits(Sigma("Moving Range"))),
Chart(Position(3), Points(Statistic("Range")), Limits(Sigma("Range"))),
Chart(Position(4), Points(Statistic("Range")), Limits(Sigma("Range"))),
Show Control Panel(0),
Invisible
);
For(i = 2, i <= N Items(CC_LIMITS) + 1, i++,
Eval(EvalExpr(
ccb << Chart(Position(i), Set Control Limits(Expr(CC_LIMITS[i-1])));
));
);
wait(0);
ccb << show window(1);