Hallo,
Wie kann ich für mehrere Spalten mit Spezifikationsgrenzen (als Eigenschaften) eine neue Tabelle nach Stapel ausführen und zwei neue Spalten mit Spezifikationstief und Spezifikationshoch erstellen, die jeweils gemäß den ursprünglichen Tabelleneigenschaften beschriftet sind?
Siehe Anhang
Wenn möglich, auch Pass/Fail-Spalte
Vielen Dank im Voraus!
Assaf
Am besten erfahren Sie mehr darüber im Scripting Guide.Sehen:
Hilfe==>Bücher==>Scripting Guide........Konstruieren Sie einen Spaltendialog
Vielen Dank!!
Mit Ihrer Unterstützung habe ich das folgende Skript ausgeführt:
- Übrigens, wie kann ich ein Popup-Fenster hinzufügen, um die rote Linie zu ändern?
@txnelson schrieb:
Hier ist ein einfaches Skript, das eine Möglichkeit veranschaulicht, dies zu tun
Names Default To Here( 1 );
dtOrig = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
// Modify the data to make it simpler for the example
dtOrig << delete columns( 10 :: 132 );
dtOrig << delete columns( 1 :: 4 );
dtOrig << select where( Row() > 50 );
dtOrig << delete rows;
// Stack the data
dtStacked = dtOrig << Stack(
columns( :NPN1, :PNP1, :PNP2, :NPN2, :PNP3 ),
Source Label Column( "Parameter" ),
Stacked Data Column( "Value" ),
Output Table( "Stacked" )
);
// Create the new columns
dtStacked << New Column( "Lower Spec Limit" );
dtStacked << New Column( "Upper Spec Limit" );
// Move the Spec Limits
colList = dtOrig << get column names( string );
For( i = 1, i <= N Items( colList ), i++,
specs = Column( dtOrig, colList[i] ) << get property( "spec limits" );
foundRows = dtStacked << get rows where( dtStacked:Parameter == colList[i] );
dtStacked:Lower Spec Limit[foundRows] = specs["LSL"];
dtStacked:Upper Spec Limit[foundRows] = specs["USL"];
);
// Daten stapeln
dtOrig = aktuelle Datentabelle ();
dtStacked = dtOrig << Stack(
Spalten ( 26 :: 42 ),
Quellbezeichnung Spalte( "Parameter" ),
Gestapelte Datenspalte( "Wert" ),
Ausgabetabelle ("gestapelt")
);
// Erstellen Sie die neuen Spalten
dtStacked << New Column( "Untere Spezifikationsgrenze" );
dtStacked << New Column( "Upper Spec Limit" );
// Verschieben Sie die Spezifikationsgrenzen
colList = dtOrig << Spaltennamen abrufen (string);
For( i = 1, i <= N Elemente ( colList ), i++,
specs = Column( dtOrig, colList[i] ) << get property( "spec limits" );
foundRows = dtStacked << Zeilen abrufen where( dtStacked:Parameter == colList[i] );
dtStacked:Lower Spec Limit[foundRows] = specs["LSL"];
dtStacked:Upper Spec Limit[foundRows] = specs["USL"];
);
New Column("P/F", Numeric, "Continuous", Formula((:Lower Spec Limit <= :Value <= :Upper Spec Limit) == 0));
Hier ist ein einfaches Skript, das eine Möglichkeit veranschaulicht, dies zu tun
Names Default To Here( 1 );
dtOrig = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
// Modify the data to make it simpler for the example
dtOrig << delete columns( 10 :: 132 );
dtOrig << delete columns( 1 :: 4 );
dtOrig << select where( Row() > 50 );
dtOrig << delete rows;
// Stack the data
dtStacked = dtOrig << Stack(
columns( :NPN1, :PNP1, :PNP2, :NPN2, :PNP3 ),
Source Label Column( "Parameter" ),
Stacked Data Column( "Value" ),
Output Table( "Stacked" )
);
// Create the new columns
dtStacked << New Column( "Lower Spec Limit" );
dtStacked << New Column( "Upper Spec Limit" );
// Move the Spec Limits
colList = dtOrig << get column names( string );
For( i = 1, i <= N Items( colList ), i++,
specs = Column( dtOrig, colList[i] ) << get property( "spec limits" );
foundRows = dtStacked << get rows where( dtStacked:Parameter == colList[i] );
dtStacked:Lower Spec Limit[foundRows] = specs["LSL"];
dtStacked:Upper Spec Limit[foundRows] = specs["USL"];
);