Ciao,
Ho bisogno di aiuto per creare un commutatore di colonna per un grafico P' di Laney per gli eventi.
Di seguito è riportato il mio codice:
Innanzitutto, dobbiamo determinare un coefficiente con queste linee:
z_yyy = Eval( {:"Y1"n} );
z_xx = z_yyy[1] << get values;
z_nnn = Eval( {:N} );
z_nn = z_nnn[1] << get values;
z_rrr = Eval( {:Numéro de lot} );
z_Proportion = E Div( z_xx, z_nn );
z_Pbar = V Sum( z_xx ) / V Sum( z_nn );
z_sigma_est = Root( z_Pbar * (1 - z_Pbar) );
z_zvalue = E Mult( ((z_Proportion - z_Pbar) / z_sigma_est), Root( z_nn ) );
z_nr = N Row( z_zvalue );
z_mRList = {0};
z_m = z_zvalue;
z_m[1, 0] = [];
z_m = z_m |/ [0];
z_mr = Abs( z_m - z_zvalue );
z_nr = N Row( z_mr );
z_mr[z_nr, 0] = [];
z_SigmaZ = Mean( z_mr ) / 1.128;
z_KSigmaZ = 3 * z_SigmaZ;Quindi, ecco dove vorrei sviluppare un commutatore di colonna:
graph = New Window( chart_title,
Control Chart(
Sample Label( :Numéro de lot ),
Sample Size( :N ),
KSigma( z_KSigmaZ ),
Sort by Row Order( 1 ),
Chart Col( :"Y1"n, P( Limits Precision( 1 ), LCL( -3 ) ) ),
SendToReport(
Dispatch(
{},
"P of Y1",
OutlineBox,
{Set Title( "p'-chart, p of Y1" )}
),
Dispatch(
{"P of Y1"},
"2",
ScaleBox,
{Format( "Fixed Dec", 12, 5 ), Min( -0.00025 ), Max( 0.0025 ),
Inc( 0.00025 ), Minor Ticks( 1 )}
),
Dispatch(
{"P of Y1"},
"1",
ScaleBox,
{Min( 0.5 ), Inc( 1 ), Minor Ticks( 0 )}
),
Dispatch(
{"P of Y1"},
"",
AxisBox,
{Add Axis Label( "Taux de défauts pour Y1" )}
),
Dispatch(
{"P of Y1"},
"Proportion pour RNS",
TextEditBox,
{Set Text( "Taux de défauts pour Y1" )}
),
Column Switcher(
:Name( "Y1" ),
{:Name( "Y1" ), :Name( "Y2" ),
:Name( "Y3" ), :Name( "Y4" )}
)
)
);
);
Tuttavia, questo è sviluppato con la funzione Chart Col e non c'è Y da determinare, ecco perché non so come creare questo commutatore di colonne su di esso.
Potete aiutarmi per favore con questa richiesta?
Molte grazie,
Saluti,
Sebastiano
Con un po' di aiuto dall'indice di scripting, forse qualcosa del genere funzionerebbe:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Quality Control/Coating.jmp");
obj = dt << Control Chart(Sample Size(1), Chart Col(:Weight), Chart Type(Run Chart));
wait(1);
ColumnSwitcherObject = obj << Column Switcher(:Weight, {:Pin, :Sample, :Weight, :"Weight 2"n});Ho provato questo alla fine del mio script:
wait(1);
ColumnSwitcherObject = graph << Column Switcher( :Y1,{:Y1, :Y2});Ma non funziona 
Prova a ottenere il riferimento alla carta di controllo e non a una nuova finestra. Potrebbe aiutare
graph = New Window(chart_title,
cc = Control Chart(
e poi prova
ColumnSwitcherObject = cc<< Column Switcher( :Y1,{:Y1, :Y2});
Grande! Funziona!
Tuttavia, ho aggiunto nel mio codice il sostitutoInto perché voglio applicare un Ksigma specifico:
SubstituteInto(graph, Expr(TBD), z_KSigmaZ);
ColumnSwitcherObject = graph << Column Switcher( :Y1,{:Y1, :Y2} );E vengono create due finestre...
Sai se c'è un modo per creare una sola finestra con ColumSwitchersObject?
Grazie mille per la tua risposta
Senza sapere come appare lo script, questa è la soluzione che di solito userei:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Quality Control/Coating.jmp");
ksigma = 0.1;
Eval(EvalExpr(nw = New Window("window",
obj = dt << Control Chart Builder(K Sigma(Expr(ksigma)), Variables(Subgroup(:Sample), Y(:Weight)));
)));
Wait(1);
ColumnSwitcherObject = obj << Column Switcher(:Weight, {:Pin, :"Weight 2"n});