CIAO,
Ho bisogno di aiuto per scrivere uno script in cui non devono essere applicati limiti di controllo di fase al primo parametro/grafico , mentre i restanti parametri/grafici hanno limiti di controllo fissi definiti nello stesso script.
Attualmente utilizzo la seguente struttura:
<SPAN>Imposta limiti di controllo ( { {LCL(.), Avg(.), UCL(.)}, {LCL(1060.2), Avg(1405.3), UCL(1745.1)}, {LCL(12.3), Avg(14.1), UCL(15.8)}, {LCL(16), Avg(22), UCL(28)} } ),</SPAN>
Il problema è che JMP visualizza sempre una finestra di dialogo che richiede i limiti del primo grafico. Devo fare clic su OK o Annulla prima che lo script continui. Dopo aver chiuso la finestra di dialogo, il primo grafico non mostra correttamente alcun limite di controllo fisso e gli altri tre grafici utilizzano i limiti forniti, ma voglio impedire del tutto la visualizzazione della finestra di dialogo .
Anche il tuo primo grafico (o colonna) ha dei limiti fissi nelle proprietà di colonna, ma vuoi semplicemente rimuoverli? Oppure hai uno script con limiti fissi e vuoi semplicemente lasciare un grafico senza di essi?
Alcune opzioni di scripting con il presupposto che i limiti fissi siano impostati nello 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);
Esistono numerose opzioni per una gestione più semplice dei limiti, ma eccone una che utilizza un elenco di elenchi (si potrebbe anche utilizzare una tabella dati, un array associativo, ...)
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);