Hola,
¿Cómo puedo realizar una nueva tabla por pila para varias columnas con límites de especificación (como propiedades) y crear dos nuevas columnas con especificación baja y especificación alta cada etiqueta de acuerdo con las propiedades de la tabla inicial?
Ver adjunto
Si es posible, también la columna de aprobado/reprobado
¡Gracias por adelantado!
Asaf
La mejor manera de aprender sobre esto es en la Guía de secuencias de comandos.Ver:
Ayuda==>Libros==>Guía de secuencias de comandos........Diálogo Construir una columna
¡¡Muchas gracias!!
Con su apoyo, realicé el siguiente script:
- Por cierto, ¿cómo puedo agregar una ventana emergente para modificar la línea roja?
@txnelson escribió:
Aquí hay un script simple que ilustrará una forma de hacer esto
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"];
);
// Apilar los datos
dtOrig = tabladatosactuales();
dtApilado = dtOrig << Pila(
columnas ( 26 :: 42 ),
Columna de etiqueta de origen ("Parámetro"),
Columna de datos apilados ("Valor"),
Tabla de salida ("Apilada")
);
// Crea las nuevas columnas
dtStacked << Nueva columna ("Límite de especificación inferior");
dtStacked << Nueva columna ("Límite de especificación superior");
// Mover los límites de especificación
colList = dtOrig << obtener nombres de columna (cadena);
For( i = 1, i <= N Elementos( colList ), i++,
especificaciones = Columna( dtOrig, colList[i] ) << obtener propiedad( "límites de especificación" );
filasEncontradas = dtStacked << obtener filas donde( dtStacked:Parameter == colList[i] );
dtStacked: límite de especificación inferior [filas encontradas] = especificaciones ["LSL"];
dtStacked: límite de especificación superior [filas encontradas] = especificaciones ["USL"];
);
Nueva columna ("P/F", Numérico, "Continuo", Fórmula ((:Límite de especificación inferior <= :Valor <= :Límite de especificación superior) == 0));
Aquí hay un script simple que ilustrará una forma de hacer esto
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"];
);