Ciao,
Ho tre tabelle, chiamiamole dt_A, dt_B e dt_C. I dati delle tabelle dt_A e dt_B vengono caricati o concatenati in dt_C.
Poiché i dati da dt_A o dt_B possono essere aggiunti a dt_ C da utenti diversi e possono essere generati in momenti diversi. Pertanto, al fine di evitare più aggiunte in C, ho deciso di controllare prima se quelle già esistono. La mia idea era semplice:
date = dt_A: Nome ("data misurazione") [i];
lotto = dt_A: Lotname [i];
wafer = dt_A: WaferNumber [i];
chip = dt_A: posizione [i];
per ogni riga (
if (: Name ("data della misurazione") == date &: Lotname == lot &: WaferNumber == wafer &: Position == chip, a = 1, a = 0);
);
// a = 1 se i valori vengono trovati
// a = 0 se i valori non vengono trovati
e qui arriva il problema che ho affrontato. Ho generato un numero di dati in dt_A, alcuni di questi sono già disponibili in dt_C. Anche se la condizione è vera, a = 1 , il risultato è a = 0 .
Tuttavia, quando corro:
dt_C << selezionare dove (: Name ("data misurazione") == date &: Lotname == lot &: WaferNumber == wafer &: Position == chip);
la riga in dt_C è selezionata.
Qualche idea su dove risiede il problema?
ho fatto un po 'di lavoro e poiché la funzione di selezione funziona senza problemi, la mia soluzione è stata semplicemente:
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
);
in questo caso il programma restituisce sempre il valore "a" corretto. E l'ulteriore concetto di concatenazione o aggiornamento dei dati funziona senza problemi:)