<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />mes données sont organisées en colonnes comme suit:
wafer #, log #, ID de l’appareil testé, heure de l’essai, paramètre 1, paramètre 2 ........
Je souhaite appliquer un ensemble de spécifications pour identifier tous les DUT qui échouent à l'heure du test = 0. Une fois que ces objets testés sont identifiés, je souhaite supprimer toutes les instances de ces mêmes objets testés. Cependant, je ne souhaite pas que le même ensemble de spécifications soit appliqué à toutes les autres données de l'heure de test.
Je suis allé jusqu'à générer un autre tableau dans le même format, avec tous les échecs t = 0 identifiés. Maintenant, je souhaite entrer le n ° du journal, l'identifiant de l'unité sous test et supprimer toutes les instances (toutes les heures de test suivantes) des unités sous test ayant échoué du tableau d'origine. Comment fait-on ça?
(Voici une légère variation de l'approche de Martin ci-dessus).
En général, si vous avez différentes limites pour les valeurs dans une seule colonne, il est peut-être préférable de fractionner les données afin de pouvoir stocker les limites requises en tant que propriétés de colonne. Mais si vous avez des raisons de ne pas le faire, l’approche ci-dessous est une façon de faire ce que je pense que vous voulez. Coupez et collez le code dans une fenêtre d'édition, puis sélectionnez "Edition> Exécuter le script". (Les commandes 'Wait ()' permettent de voir ce qui se passe).
NamesDefaultToHere ( 1 ) ;
// exemple de table
dt =
Nouvelle table ( "DUT" ,
Ajouter des lignes ( 12 ) ,
Nouvelle colonne ( "DUT ID" ,
Numérique ,
"Nominal" ,
Format ( "Meilleur" , 12 ) ,
Définir des valeurs ( [ 1 , 2 , 3 , 4 , 1 , 2 , 3 , 4 , 1 , 2 , 3 , 4 ] )
) ,
Nouvelle colonne ( "Heure de test" ,
Numérique ,
"Ordinal" ,
Format ( "Meilleur" , 12 ) ,
Définir des valeurs ( [ 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 2 , 2 , 2 , 2 ] )
) ,
Nouvelle colonne ( "p1" ,
Numérique ,
"Continu" ,
Format ( "Déc fixe" , 12 , 3 ) ,
Définir des valeurs (
[ 0.299525242746479 , 1.0633718409566 , 0.507859846881073 ,
- 1.11573907805173 , 0.222826061547355 , - 0.318546800557343 ,
- 0.0356930503397689 , 0.661572077447882 , - 0.182884744578411 ,
- 0,930044642545168 , 0,767786562806245 , - 0.130135490980355 ]
)
) ,
Nouvelle colonne ( "p2" ,
Numérique ,
"Continu" ,
Format ( "Déc fixe" , 12 , 3 ) ,
Définir des valeurs (
[ 0,967955026618985 , - 1.05625737545624 , 0.399938006086842 ,
- 0.0459988344031106 , - 1.30650202283731 , 1.66536579742163 ,
1.19669670020495 , - 0.205442597157623 , - 1.40714522703899 ,
0.517030195850593 , - 0.51315580063705 , - 1.17294833449061 ]
)
)
) ;
// Supposons que les valeurs de 'pi' <0,5 à 'Hour of Test' = 0 définissent un échec -
// Ensuite, sélectionnez les lignes correspondantes dans dt:
Attendre ( 1 ) ;
dt << clearSelect () ;
dt << selectOù ( : p1 < 0.5 Et : Heure de test == 0 ) ;
// Sélectionnez la colonne 'ID DUT'
Attendre ( 1 ) ;
Colonne ( dt , "DUT ID" ) << setSélectionné ( 1 ) ;
// 'Développer' la sélection pour englober toutes les lignes associées à un DUT défaillant
Attendre ( 1 ) ;
dt << selectMatchingCells ;
// désélectionne la colonne
Attendre ( 1 ) ;
Colonne ( dt , "DUT ID" ) << setSélectionné ( 0 ) ;
// Supprimer les lignes
Attendre ( 1 ) ;
dt << deleteRows ;
[Edit: ajouté "Eval Formula" pour éviter les problèmes de calcul en temps réel.]
Voici un fragment de code qui correspond à ce que vous recherchez:
dt = Tableau de données ( "targetdt" ) ;
dt << Sélectionnez Où ( : Heure == 0 ) ;
sdt = dt << Sous-ensemble ( lignes sélectionnées ) ; // génère la table de sous-ensemble pour les données à heures = 0
minspec = 3 ; // votre spec
sdt << Nouvelle colonne ( "inspec" , Formule ( : Param1 > = minspec ), Formule d'évaluation ) ; // voir si ce devoir est dans les spécifications selon les heures = 0 données
dt << mettre à jour (
Avec ( sdt ) ,
Match Columns ( : Bûche# = : Bûche# , : DUT_ID = : DUT_ID ) ,
Ajouter des colonnes à partir de la table de mise à jour ( : inspec )
) ;
dt << Sélectionnez Où ( : inspec == 0 ) ;
dt << Supprimer des lignes () ;
La clé est d'avoir une colonne comme "inspec" que vous ajoutez à votre tableau d'origine en utilisant "Mettre à jour". Ensuite, vous pouvez filtrer par cette colonne.