Remplir une collistbox à partir du presse-papiersJe cherche un moyen de remplir une collistbox à partir d'une liste de colonnes dans le presse-papiers.J'ai essayé la commande getclipboard () mais comme la liste renvoyée n'est pas une liste de noms de colonnes, cette approche échoue.
Pour le fond, je copie une liste de noms de colonnes à partir d'une table de données (les noms sont répertoriés dans les lignes) et j'utilise la liste copiée des noms de colonnes comme entrée pour une analyse dans une autre analyse de tables de données.
Si j'ouvre simplement la plate-forme d'analyse (NN) et que je clique avec le bouton droit de la souris sur la zone de saisie X, je peux coller les noms de colonne.


J'aimerais que les termes apparaissent dans la deuxième case:

Donc, je copierais les noms de colonnes et exécuterais mon script et les colonnes pourraient être sélectionnées dans la zone facultative.
merci pour toutes les idées!
ScriptingRe: remplir une collistbox à partir du presse-papiersIl existe peut-être un moyen plus simple, mais je pense que la variable clip_items dans le script ci-dessous vous aiderait à démarrer.Cela prend chaque ligne dans le presse-papiers et recherche une colonne correspondante.Le reste du script sélectionne ces colonnes dans la table de la table de données.J'exécute ce script à partir d'un menu dans le cadre d'un complément.
names default to here(1);
dt = current data table();
//Get list of columns in clipboard
clip_input = Get Clipboard();
clip = clip_input;
clip_items = {};
done = 0;
for( i = 1, done == 0 & i < 10000, i++,
show(clip);
If (
N Items(Regex Match(clip,"[\!\r\!\n]")) == 0
,
if(
length(clip) > 0
,
Insert Into( clip_items, clip)
);
done = 1;
,
thisrow = Regex(clip,"(.+?)[\!\r\!\n]","\!\1");
if( length(thisrow) > 0, Insert Into( clip_items, thisrow) ) ;
clip = Regex(clip,"\!\n(.*)","\1");
);
);
if( i > 10000, stop("found more than 10000 variables"));
col_names = dt << Get Column Names( String );
For( i = 1, i <= N Items( col_names ), i++,
if( contains( clip_items, col_names[i] ),
Column( dt, i ) << Set Selected ( 1 );,
Column( dt, i ) << Set Selected( 0 );,
)
);Re: remplir une collistbox à partir du presse-papiersCela a très bien fonctionné!
J'ai ajouté votre code à ceci et je suis prêt à partir:
selCols = dt << Get selected Columns( String );
obj2=new window("Reponse Variable",
<<MODAL></MODAL>