Salut,
j'ai trois tables appelons-les dt_A, dt_B et dt_C. Les données des tables dt_A et dt_B sont soit téléchargées soit concaténées dans dt_C.
Étant donné que les données de dt_A ou dt_B peuvent être ajoutées dans dt_C par différents utilisateurs et peuvent être générées à différents moments. Par conséquent, afin d'éviter plusieurs ajouts en C, j'ai décidé de vérifier d'abord si ceux-ci existent déjà. Mon idée était simple :
date = dt_A:Name("measurement date")[i];
lot = dt_A:Lotname[i];
wafer = dt_A:WaferNumber[i];
chip = dt_A:Position[i];
for each row(
if(:Name("measurement date") == date & :Lotname == lot & :WaferNumber == wafer & :Position == chip, a = 1, a = 0);
);
// a = 1 if the values are found
// a= 0 if the values are not found
et voici le problème que j'ai rencontré. J'ai généré un certain nombre de données dans dt_A, certaines d'entre elles sont déjà disponibles dans dt_C. Même si la condition est vraie, un =1 , le résultat est un = 0 .
Cependant, lorsque je lance:
dt_C << select where(:Name("measurement date") == date & :Lotname == lot & :WaferNumber == wafer & :Position == chip);
la ligne dans dt_C est sélectionnée.
Des idées où se situe le problème?
j'ai fait quelques travaux, et puisque la fonction de sélection fonctionne sans problème, ma solution était donc simplement:
dt_C << Select Where(
:Name( "measurement date" ) == date:Lotname == lot & :WaferNumber == wafer & :Position == chip
);
If( N Rows( dt_C << get selected rows ) > 0,
a = 1,
a = 0
);
dans ce cas, le programme renvoie toujours la valeur "a" correcte. Et le concept supplémentaire de concaténation ou de mise à jour des données fonctionne sans problème 