Merci pour votre réponse !
Cela fonctionne pour la 1ère ligne mais en suite les valeurs dans la colonne "valeur ST1-2" changent et donc par la suite ce n'est pas la même durée qu'il faut recalculer.
Par exemple pour la 3ème ligne : valeur ST1-2 = 82 et 82 correspond à l'objet 2000 donc il faudrait faire durée 2000 = date fin 2000 - date début 2000 pour la 3ème ligne
C'est le but d'avoir ici dans la base de données intermédiaire un aperçu de l'affectation de l'OP avec chaque objet (colonnes 711-2041-9916 à l'interieur l'OP correspondante).
Le but est de remplacer les colonnes durées, la colonne "valeur ST1-2" ne sera pas modifié.
mon script ne fonctionne pas correctement :
Names Default To Here(1);
dt14 = current data table();
dur_cols = Filter Each( {col_name}, dt14 << Get Column Names( "String", Continuous ),
Starts With( col_name, "Durée" )
);
fin_cols = Filter Each( {col_name}, dt14 << Get Column Names( "String", Continuous ),
Starts With( col_name, "Date fin" )
);
debut_cols = Filter Each( {col_name}, dt14 << Get Column Names( "String", Continuous ),
Starts With( col_name, "Date d" )
);
// for indexing later
num_colnr = Transform Each( {col_name}, dur_cols, Word( -1, col_name ) );
// Loop through the rows and assign the new values
For Each Row(
If( :"valeurs ST1-2"n != 0,
colidx = Loc(dt14[row(), num_colnr ] == :"valeurs ST1-2"n);
If( N items (colidx) > 0,
dt14[colidx,dur_cols] = Eval(dt14[colidx,fin_cols] - dt14[colidx,debut_cols]);
,
continue()
);
,
continue()
);
//show(colidx);
);