Salut,
Comment puis-je effectuer une nouvelle table par pile pour plusieurs colonnes avec des limites de spécification (en tant que propriétés) et créer deux nouvelles colonnes avec une spécification basse et une spécification élevée pour chaque étiquette en fonction des propriétés initiales de la table ?
Voir ci-joint
Si possible, également la colonne réussite/échec
Merci d'avance!
Assaf
La meilleure façon d'apprendre à ce sujet est dans le Guide de script.Voir:
Aide==>Livres==>Guide de script........Construire une boîte de dialogue de colonne
Merci beaucoup!!
Grâce à votre aide, j'ai exécuté le script suivant :
- BTW, Comment puis-je ajouter une fenêtre contextuelle pour modifier la ligne rouge ?
@txnelson écrit:
Voici un script simple qui illustrera une façon de le faire
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"];
);
// Empile les données
dtOrig = currentdatatable();
dtEmpilé = dtOrig << Empiler(
colonnes( 26 :: 42 ),
Colonne d'étiquette source( "Paramètre" ),
Colonne de données empilées( "Valeur" ),
Table de sortie( "Empilé" )
);
// Crée les nouvelles colonnes
dtStacked << New Column( "Lower Spec Limit" );
dtStacked << Nouvelle colonne( "Limite supérieure de spécification" );
// Déplacer les limites de spécification
colList = dtOrig << obtenir les noms de colonne (chaîne);
For( i = 1, i <= N Items( colList ), i++,
specs = Column( dtOrig, colList[i] ) << get property( "spec limits" );
foundRows = dtStacked << obtenir des lignes où( dtStacked:Parameter == colList[i] );
dtStacked:Lower Spec Limit[foundRows] = specs["LSL"] ;
dtStacked : Limite de spécification supérieure[foundRows] = specs["USL"] ;
);
Nouvelle colonne("P/F", Numérique, "Continu", Formule((:Limite de spécification inférieure <= :Valeur <= :Limite de spécification supérieure) == 0));
Voici un script simple qui illustrera une façon de le faire
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"];
);