Wiederholen bricht << Berichtsaktionen abHallo,
Wenn ich einige Berichtsänderungen im Skript ausführe und dann einige Zeilen mit aktivierter Option "Automatisch berechnen" ausschließe,
Alle Berichtänderungen verschwinden.
Wie füge ich alle Berichtänderungen in den Verteilungskörper ein, damit sie nicht verschwinden?
Vielen Dank.
dt = Open ("$ SAMPLE_DATA / Big Class.jmp");
dist = Distribution (
Automatische Neuberechnung (1),
Kontinuierliche Verteilung (
Quantile (0),
Zusammenfassende Statistik (1),
Spalte (: Gewicht),
Horizontales Layout (1),
Ppk Capability Labeling (1)
Fähigkeitsanalyse (LSL (80), USL (140))
));
PpkValue = (dist << report) [OutlineBox ("Long Term Sigma")] [NumberColBox (1)] [2];
PPKtb = Tabellenfeld (
String Col Box ("Parameter", {"Ppk"}),
Zahlenfeld ("Wert", {PpkValue})
);
(dist << report) [OutlineBox ("Summary Statistics")] << Append (PPKtb);
(dist << report) [OutlineBox ("Long Term Sigma")] << Delete;
Re: Redo bricht << Berichtsaktionen abIch glaube, deine Syntax ist ein bisschen veraltet. Ändern Sie die Verweise auf folgend, und es funktioniert einwandfrei
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;Re: Redo bricht << Berichtsaktionen abVielen Dank.
Es funktioniert einwandfrei, aber wenn ich eine Zeile ausschließe, verschwinden alle Berichtänderungen.
Was meinen Sie mit "Verweise auf Folgendes ändern"?
Bitte sehen Sie im Anhang das Bild.
Re: Redo bricht << Berichtsaktionen abWenn Sie einen erneuten Berechnungsvorgang ausführen, wird die Plattform erneut ausgeführt. Daher müssen alle Änderungen nach dem Ausführen erneut ausgeführt werden. Eine Möglichkeit hierfür ist die Verwendung eines Filteränderungshandlers oder eines Zeilenzustandshandlers, der Code ausführt, wenn eine Änderung des Filters oder der Zeilenzustände erkannt wird. Sie können der Frame Box () in der Verteilungsgrafik auch ein Grafikskript hinzufügen, um die Ausführung von Code auszulösen, wenn sich die Grafik ändert. Im folgenden Code wird ein Änderungshandler für Filter erstellen () verwendet, um die Aufgabe zu erledigen
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();
Re: Redo bricht << Berichtsaktionen abDanke Jim.
Leider ist diese Lösung nicht gut für mich.
1. Ich möchte keinen lokalen Datenfilter hinzufügen
2. Wenn ich Ihr Skript ausführe und die Auswahl im lokalen Datenfilter ändere, wird die Verteilung ohne Änderung des benutzerdefinierten Berichts erneut ausgeführt.
Was ist die Syntax Ihrer zweiten Lösung ( Grafikskript zur Frame-Box () )?
Danke noch einmal.
Re: Redo bricht << Berichtsaktionen abVielen Dank!
"Grafikskript hinzufügen" funktioniert bei mir einwandfrei!Re: Redo bricht << Berichtsaktionen abMein Skript sollte Ihnen einen Hinweis auf mögliche Methoden geben, die verwendet werden könnten, mit der Hoffnung, dass es einen ausreichenden Einblick bieten würde. Ich hoffe, dass ich meinen Input mit den folgenden Punkten verbessern kann:
In meiner vorherigen Antwort habe ich 2 Methoden nicht erwähnt. Ich erwähnte 3 Methoden, Filter Change Handler, RowState Handler und Add Graphics Script. Je nach Bedarf können Sie eine der verschiedenen Optionen auswählen. Ich habe unten zwei Skripte bereitgestellt, eines mit dem RowState-Handler und das andere mit dem Add Graphics-Skript.
Der RowState-Handler ist der Implementierung des Filter Change Handler sehr ähnlich. Mit dieser Option werden die Änderungen ausgelöst, wenn Änderungen an der RowState-Spalte in der Datentabelle vorgenommen werden.
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();
Das Beispiel zum Hinzufügen von Grafiken ist komplexer. Dies liegt hauptsächlich daran, dass der Drehbuchautor bestimmen muss, welche Elemente verglichen werden müssen, um dann den auszuführenden Code auszulösen. Im folgenden Fall löst die Überprüfung, ob sich der Mittelwert oder die Standardabweichung ändert, die Ausführung des Codes aus. Dies ist möglicherweise nicht ausreichend, da sich die Art der Dinge, die Ihre Benutzer ändern, möglicherweise ändert, sodass made erweitert oder vollständig geändert werden muss.
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();
Ich empfehle dringend, dass Sie sich die Zeit nehmen, das Skripthandbuch zu lesen und sich mit dem Skriptindex vertraut zu machen. Die Übersicht über JSL im Scripting Guide bietet die Grundlage, um ein kompetenter JSL-Programmierer zu sein, und die Beispiele für alle Objekte und Funktionen im Scripting Index sind für das Schreiben des Codes von unschätzbarem Wert