Ripeti annulla << segnala azioniCiao,
Se eseguo alcune modifiche al report nello script e quindi eseguo l'esclusione di alcune righe con Autorecalc attivo,
tutte le modifiche al rapporto scompaiono.
Come inserisco tutte le modifiche del report nel corpo della distribuzione, in modo che non scompaiano?
Grazie.
dt = Open ("$ SAMPLE_DATA / Big Class.jmp");
dist = Distribution (
Ricalcolo automatico (1),
Distribuzione continua (
Quantili (0),
Statistiche riassuntive (1),
Colonna (: peso),
Layout orizzontale (1),
Ppk Capability Labelling (1),
Analisi delle capacità (LSL (80), USL (140))
));
PpkValue = (dist << report) [OutlineBox ("Long Term Sigma")] [NumberColBox (1)] [2];
PPKtb = Table Box (
String Col Box ("Parameter", {"Ppk"}),
Casella numerica ("Valore", {PpkValue})
);
(dist << report) [OutlineBox ("Statistiche riassuntive")] << Append (PPKtb);
(dist << report) [OutlineBox ("Long Term Sigma")] << Elimina;
Ri: Ripeti annulla << segnala azioniCredo che la tua sintassi sia un po 'spenta. Cambia i riferimenti in seguito e funziona benissimo
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
PpkValue = (dist << report)[Outline Box( "Long Term Sigma" )][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;Ri: Ripeti annulla << segnala azioniGrazie.
Funziona bene, ma quando escludo una riga, tutte le modifiche al rapporto scompaiono.
Che cosa intendi con "Cambia i riferimenti a seguenti"?
Si prega di vedere in allegato l'immagine.
Ri: Ripeti annulla << segnala azioniQuando esegui un ricalcolo, la piattaforma viene effettivamente rieseguita, quindi anche tutte le tue modifiche post devono essere rieseguite. Un modo per eseguire questa operazione consiste nell'utilizzare un gestore di modifica del filtro o un gestore dello stato di riga, che eseguirà il codice, quando viene rilevata una modifica nel filtro o negli stati di riga. È inoltre possibile aggiungere uno Script grafico alla Riquadro cornice () nel grafico di distribuzione per attivare l'esecuzione del codice quando il grafico cambia. Il codice seguente utilizza un gestore di modifica filtro () per completare il lavoro
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
addit = Function({},
PpkValue = (dist << report)["Long Term Sigma"][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;);
filter = dist << Local Data Filter(
Add Filter( columns( :age ) )
);
f = Function( {a}, addit() );
rs = filter << Make Filter Change Handler( f );
addit();
Ri: Ripeti annulla << segnala azioniGrazie Jim.
Sfortunatamente, questa soluzione non è buona per me.
1. Non voglio aggiungere un filtro dati locale
2. Quando eseguo lo script e modifico la selezione nel filtro dati locale, la distribuzione viene eseguita nuovamente senza modifiche personalizzate al report.
Qual è la sintassi della tua seconda soluzione ( Script grafico per la cornice () )?
Grazie ancora.
Ri: Ripeti annulla << segnala azioniGrazie!
"Aggiungi script grafici" funzionerà bene per me!Ri: Ripeti annulla << segnala azioniLa mia sceneggiatura aveva lo scopo di darti un suggerimento su possibili metodi che potevano essere utilizzati, con la speranza che potesse fornire informazioni sufficienti. Spero di poter migliorare il mio contributo con quanto segue:
Non ho menzionato 2 metodi nella mia precedente risposta. Ho menzionato 3 metodi, Gestore cambio filtro, Gestore RowState e Aggiungi script grafico. Dati i dettagli di ciò di cui hai bisogno, puoi scegliere di utilizzare una delle diverse opzioni. Di seguito ho fornito 2 script, uno con il gestore RowState e l'altro con lo script Aggiungi grafica.
Il gestore RowState è molto simile all'implementazione del gestore di cambio filtro. Usandolo, le modifiche vengono attivate se vengono apportate modifiche alla colonna RowState nella tabella dei dati.
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
addit = Function({},
PpkValue = (dist << report)["Long Term Sigma"][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;);
f = Function( {a}, addit() );
rs = dt << Make RowState Handler( f );
addit();
L'esempio Aggiungi grafica è più complesso. Ciò è dovuto principalmente al fatto che lo script writer deve determinare quali elementi devono essere confrontati per attivare il codice da eseguire. Nel caso seguente, il controllo per verificare se la media o la deviazione standard cambia, avvia l'esecuzione del codice. Questo potrebbe non essere sufficiente, per i tipi di cose che i tuoi utenti potrebbero cambiare ... quindi ciò ha reso necessario ampliare o cambiare completamente.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
addit = Function( {},
PpkValue = (dist << report)["Long Term Sigma"][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;
);
theMean = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[1];
theSTD = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[2];
(dist << report)[framebox( 2 )] << add graphics script(
If(
theMean != ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[1] | theSTD != ((dist
<< report)["Summary Statistics"][Number Col Box( 1 )] << get)[2],
addit()
);
theMean = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[1];
theSTD = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[2];
);
addit();
Consiglio vivamente di dedicare del tempo a leggere la Guida agli script e a familiarizzare con l'Indice degli script. La panoramica di JSL nella Guida agli script fornisce le basi necessarie per essere un abile programmatore JSL e gli esempi per tutti gli oggetti e le funzioni nell'indice degli script sono preziosi per la scrittura del codice