Wie erstelle ich ein Skript, um in einer Spalte angezeigte Spezifikationsgrenzwerte auf der Grundlage von Beschriftungen in anderen Spalten auf die eigene Eigenschaft anzuwenden?Ich habe eingehende Daten, die der beigefügten Datentabelle ähneln.
Ich möchte (als Beispiel)
- Speichern Sie die in der Spalte „Breakdown_5“ angezeigten Zeilenwerte (zuerst/oben) für die Zeilen „USL/LSL“ (unter „Label“) für T5 (unter „TestStage“) als Grenzwerte in der Spalteneigenschaft „Breakdown_5“.
- Speichern Sie die Zeilenwerte, die (zuerst/oben) in der Spalte Resistance_7 erscheinen, gegenüber den Zeilen USL/LSL (unter Label) für S7 (unter TestStage) als Grenzwerte in der Spalteneigenschaft Resistance_7
- Speichern Sie die Zeilenwerte, die (zuerst/oben) in der Spalte Current_7 erscheinen, gegenüber den Zeilen USL/LSL (unter Label) für S7 (unter TestStage) als Grenzwerte in der Spalteneigenschaft Current_7
- Speichern Sie die Zeilenwerte, die (zuerst/oben) in der Spalte Current_11 erscheinen, gegenüber den Zeilen USL/LSL (unter Label) für W11 (unter TestStage) als Grenzwerte in der Spalteneigenschaft Current_11
- Speichern Sie die Zeilenwerte, die (zuerst/oben) in der Spalte „Capacitance_6“ erscheinen, gegenüber den Zeilen USL/LSL (unter „Label“) für U6 (unter „TestStage“) als Grenzwerte in der Spalteneigenschaft „Capacitance_6“.
Wie schreibe ich im Allgemeinen ein Skript in JSL, um Spezifikationsgrenzen entsprechend den LSL/USL-Zeilen (unter „Label“) anzuwenden, die (zuerst/oben) unter den Spalten der gemessenen Daten (Breakdown_#, Resistance_#, Current_# usw.) erscheinen? on) entspricht der korrekten TestStage#, wobei sich # auf die Teststufennummer bezieht.

Automatisierung und SkripterstellungWindowsBetreff: Wie erstelle ich ein Skript, um in einer Spalte angezeigte Spezifikationsgrenzwerte auf die eigene Eigenschaft anzuwenden, basierend auf Beschriftungen in anderen Spalten?Hier ist ein Skript, das mit Ihren Beispieldaten arbeitet
Names Default To Here( 1 );
dt = Data Table( "exampleDataSummary" );
// Find all numeric columns and place in a list
numColList = dt << get column names( numeric, string );
// Find the unique values of TestStage
Summarize( dt, tstStage = By( :TestStage ) );
// Loop across all test stages and match with response column
stageNumber = "";
For Each( {Stage}, tstStage,
stageNumber = Substr( Stage, 2 );
resCol = "";
For Each( {col}, numColList,
If( Word( -1, col, "_" ) == stageNumber,
resCol = col
);
// Get LSL and USL
If( resCol != "",
theLSL = Column( dt, resCol )[(dt << get rows where( :TestStage == Stage & :label == "LSL" ))[1]];
theUSL = Column( dt, resCol )[(dt << get rows where( :TestStage == Stage & :label == "USL" ))[1]];
Show( theLSL, theUSL );
Eval(
Substitute(
Expr(
Column( dt, resCol ) << set property( "Spec Limits", {LSL( _LSL_ ), USL( _USL_ )} )
),
Expr( _LSL_ ), theLSL,
Expr( _USL_ ), theUSL
)
);
);
);
);Betreff: Wie erstelle ich ein Skript, um in einer Spalte angezeigte Spezifikationsgrenzwerte auf die eigene Eigenschaft anzuwenden, basierend auf Beschriftungen in anderen Spalten?@txnelson Ja dank. Das Skript arbeitet mit der Beispieldatendatei. Ich habe zwei Fragen.
1. Ich habe gerade festgestellt, dass die Namen meiner gemessenen Parameter (Spalten) die Form „Resistance_Null_Port_7“, „Capacitance_Full_Plate_6“ usw. haben können. So ändern Sie das Skript, wenn die Spaltennamen mehr als einen Unterstrich enthalten, bevor die TestStage-Nummer am Ende steht. Ich denke, die Implementierung der Word()-Funktion muss geändert werden, aber ich habe damit Probleme (es ist etwas verwirrend, dass ich sie noch nie verwendet habe).
2. Wie kann „Als Diagramm-Referenzlinien anzeigen“ programmgesteuert für jede Spalte aktiviert werden, sobald die Grenzwerte angewendet werden? Ich weiß, wie man das manuell über Manage Spec Limits () macht. Ich verwende JMP 16.2.
Betreff: Wie erstelle ich ein Skript, um in einer Spalte angezeigte Spezifikationsgrenzwerte auf die eigene Eigenschaft anzuwenden, basierend auf Beschriftungen in anderen Spalten?Weitere Informationen zu den verschiedenen Funktionen, die ich in dem von mir bereitgestellten Skript verwendet habe, finden Sie im Skriptindex.Der Word()-Funktion, wie ich sie verwendet habe, ist es egal, wie viele „_“ in den Namen enthalten sind.Der erste Term in der Word()-Funktion, wie ich sie verwende, ist -1, der die Funktion anweist, das erste Wort zu übernehmen, beginnend am Ende der Zeichenfolge.
Um JMP anzuweisen, die Werte automatisch als Referenzlinien anzuzeigen, verwenden Sie den Parameter „Show()“ in der Spec Limits-Spezifikation.
Column( dt, resCol ) << set property( "Spec Limits", {LSL( _LSL_ ), USL( _USL_ ), Show(1)} )
Bitte nehmen Sie sich die Zeit, das von mir bereitgestellte Skript zu studieren, um Ihnen dabei zu helfen, ein effizienterer Skripter zu werden.
Betreff: Wie erstelle ich ein Skript, um in einer Spalte angezeigte Spezifikationsgrenzwerte auf die eigene Eigenschaft anzuwenden, basierend auf Beschriftungen in anderen Spalten?@txnelson Ich studiere Ihren Code und danke für die Erklärung, wie Word() funktioniert.
Bisher funktioniert das Skript für meine tatsächlichen Daten nicht (was sich nur in den tatsächlichen Spaltennamen unterscheidet, z. B. mit mehr Unterstrichen).
Das Problem besteht darin, dass das Skript ohne Fehler bei meinen tatsächlichen Daten ausgeführt wird und im Protokoll nichts zu sehen ist, anders als wenn ich dasselbe Skript für die hier angehängte Beispieldatentabelle ausführe. Es gibt also nichts, worauf ich mich zum Debuggen stützen könnte.
Ich hatte bereits versucht, Show (1) anzuzeigen, um die zu aktivierenden Grenzen anzuzeigen „Als Diagramm-Referenzlinien anzeigen“ programmgesteuert. Es funktioniert bei mir in JMP 16.2 mit den hier veröffentlichten Beispieldaten nicht.
Ich werde versuchen, das Skript zu debuggen und mich bei Ihnen zu melden, wenn ich etwas finde. Es wäre nützlich, einige Hinweise zum Debuggen zu erhalten, wenn im Protokoll nichts vorhanden ist.
Betreff: Wie erstelle ich ein Skript, um in einer Spalte angezeigte Spezifikationsgrenzwerte auf die eigene Eigenschaft anzuwenden, basierend auf Beschriftungen in anderen Spalten?Mein Fehler, ändern
anzeigen(1)
Zu
Grenzen anzeigen(1)
Betreff: Wie erstelle ich ein Skript, um in einer Spalte angezeigte Spezifikationsgrenzwerte auf die eigene Eigenschaft anzuwenden, basierend auf Beschriftungen in anderen Spalten?@txnelson Musste geändert werden
Substr( )
damit das Skript für meine tatsächlichen Daten funktioniert. Jedoch, show (1) zeigt immer noch nicht die Grenzen an, wenn eine Verteilung für einen beliebigen gemessenen Parameter dargestellt wird.
Das Folgende funktioniert auch nicht auf meinem JMP16.2, dh „Show Limits“ wird nicht aktiviert „Als Diagramm-Referenzlinien anzeigen“ in den Spalteneigenschaften.
dt=Open("$SAMPLE_DATA/Process Measurements.jmp");
Column(dt, "Process 2")<<SET property=""></SET>Dies erfüllt jedoch seinen Zweck.
Column( dt, resCol ) << set property( "Spec Limits", {LSL( _LSL_ ), USL( _USL_ ), Show Limits( 1 )})