CIAO,
Come posso eseguire una nuova tabella per pila per diverse colonne con limiti di specifica (come proprietà) e creare due nuove colonne con specifiche basse e specifiche alte ciascuna etichetta in base alle proprietà iniziali della tabella?
Vedi allegato
Se possibile, anche la colonna pass/fail
Grazie in anticipo!
Assaf
Il modo migliore per saperne di più è nella Guida allo scripting.Vedere:
Aiuto==>Libri==>Guida allo scripting........Costruisci una finestra di dialogo a colonna
Molte grazie!!
Usando il tuo supporto ho eseguito il seguente script:
- A proposito, come posso aggiungere una finestra popup per modificare la linea rossa?
@txnelson ha scritto:
Ecco un semplice script che illustrerà un modo per farlo
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"];
);
// Impila i dati
dtOrig = tabelladaticorrente();
dtStacked = dtOrig << Stack(
colonne ( 26 :: 42 ),
Colonna etichetta sorgente( "Parametro" ),
Colonna di dati in pila ("Valore"),
Tabella di output ("In pila")
);
// Crea le nuove colonne
dtStacked << Nuova colonna( "Limite inferiore specifica" );
dtStacked << Nuova colonna ("Limite superiore specifica" );
// Sposta i limiti delle specifiche
colList = dtOrig << ottiene i nomi delle colonne ( string );
For( i = 1, i <= N Items( colList ), i++,
specs = Column( dtOrig, colList[i] ) << get property( "spec limits" );
foundRows = dtStacked << ottieni righe 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));
Ecco un semplice script che illustrerà un modo per farlo
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"];
);