JSL : Comment récupérer les noms de plusieurs tables actuellement sélectionnées ?Salut les gens. Je traite chaque jour de nouvelles tables (noms de table uniques) qui ont toujours au moins un en-tête de colonne commun, que j'utilise pour Faire correspondre les colonnes pour Rejoindre . Cela devient répétitif alors j'ai pensé à écrire un scénario.
Problème : je ne veux pas avoir à spécifier les deux noms de table dans le script à chaque fois que je veux Rejoindre deux tables.
Je recherche une méthode permettant au script de sélectionner automatiquement/semi-automatiquement les deux tables que je souhaite rejoindre. Je sais qu'il existe une méthode pour récupérer la table actuellement sélectionnée, mais qu'en est-il de la table sélectionnée avant cela ? Le meilleur des cas est s'il existe une méthode pour récupérer les noms de table pour tous tables actuellement sélectionnées, puis procédez à l'exécution Rejoindre pour ces tableaux.
Appréciez toutes les idées et conseils! Merci!
Re : JSL : Comment récupérer les noms de plusieurs tables actuellement sélectionnées ?Bien entendu, il n'y a qu'une seule table « actuelle » dans une session JMP. Mais tu pourrais faire quelque chose comme ceci :
NamesDefaultToHere(1);
// Make some tables with different numbers of columns
n = 5;
for(t=1, t<=n, t++, NewTable("Table "||Char(t), << addMultipleColumns("Test", Random Integer(5), Character)));
// Function that returns the names of all open tables containing a specified column
tablesWithColumn =
Function({inCol}, {Default Local},
matchingTables = {};
for(t=1, t<=NTable(), t++,
cols = DataTable(t) << getColumnNames("String");
if(Contains(cols, inCol), InsertInto(matchingTables, DataTable(t) << getName));
);
matchingTables;
);
// Try it out
myCol = "Test 3";
NewWindow("Open Tables with Column "||myCol,
PanelBox("Pick Tables to Join",
lb = ListBox(tablesWithColumn(myCol), maxSelected(2));
)
);