Combinaison de tables de données si le nombre de tables ouvertes varieBonjour,
J'ai un script qui récupère les éléments choisis par l'utilisateur dans une zone de liste. En fonction du nombre d'éléments sélectionnés par l'utilisateur, un certain nombre de tableaux apparaissent. Le nombre de nouveaux tableaux de données est variable et j'aimerais tous les combiner en un seul tableau plus grand appelé Tableau combiné. Je sais que la fonction de concaténation fait cela, mais j'aimerais qu'elle soit scriptée pour s'adapter à un nombre de tables spécifié par l'utilisateur.
À partir de ce morceau de code, un certain nombre de nouvelles tables apparaissent nommées EachChem, EachChem 2, EachChem 3...ectc. Je voudrais les combiner dans un tableau plus grand appelé Tableau combiné.
For (i = 1, i <= N Items(lt), i++,
dt << Select Where( :chemical == lt[i] );
dt << Get selected rows
dt << Subset(Output Table("EachChem"), Selected Rows(i));
);
Alternativement, si je pouvais combiner les tables dans la boucle for ci-dessus et me retrouver avec une grande table de sous-ensemble appelée EachChem, ce serait bien aussi.
Toute aide ou pointeur est apprécié.
Mélange et nettoyage des donnéesles fenêtresRe : Combiner des tables de données si le nombre de tables ouvertes varieCela devrait faire ce que tu veux
theExpr = "Data Table( \!"EachChem\!") << Concatenate(";
For( i = 2, i <= N Items( lt ), i++,
theExpr = theExpr || " Data Table( \!"EachChem " || Char( i ) || "\!"),"
);
theExpr = theExpr || "Output Table( \!"Combined Table\!" ) );";
Eval( Parse( theExpr ) );Re : Combinaison de tables de données si le nombre de tables ouvertes varieMerci. Cela a fonctionné.
Si les noms des tables à concaténer changent également, ce qui suit devrait fonctionner.
theExpr = " Data Table( \!"" || MaskList[1] || " " || Char( 2 ) || "\!") << Concatenate(";
For( i = 2, i <= N Items(MaskList), i++,
theExpr = theExpr || " Data Table( \!"" || MaskList[i] || " " || Char( 2 ) || "\!"),"
);
theExpr = theExpr || "Output Table( \!"Final Table\!" ) );";
Eval( Parse( theExpr ) );
Dans le code ci-dessus,
MaskList est une liste contenant un nombre variable de masques selon l'utilisateur. Des tables sont associées à chaque masque.
Par exemple, la première table s'appelle Mask1 2 , (la deuxième table avec le nom appelé Mask1, d'où le 2 supplémentaire) la table suivante à concaténée s'appelle Mask9 2 . (la deuxième table avec le nom appelé Mask9, d'où le 2 supplémentaire) et ainsi de suite.
Cela concaténera, Mask1 2 avec Mask9 2 et ainsi de suite.
Je mets simplement ceci ici à des fins de documentation.