J'essaie de corriger les "péchés" précédents dans un script que j'ai écrit en le mettant à jour avec des références unanimes, c'est-à-dire de sorte que le script fasse référence à la table à laquelle je (veux) le dire, même si une autre table peut être la table actuelle ( ou une table "interférente"). J'ai essayé de reconstituer le problème ci-dessous.
Names Default To Here( 1 );
// this is the table i want to work with
dt = New Table( "Target table", invisible,
Add Rows( 3 ),
New Column( "Name_1",
Character( 1 ),
"Nominal",
Set Values( {"A", "B", "C"} ),
Set Display Width( 45 )
),
New Column( "Name_2",
Character( 1 ),
"Nominal",
Set Values( {"X", "Y", "Z"} ),
Set Display Width( 45 )
),
New Column( "NumericRight",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 2, 3] ),
Set Display Width( 78 )
),
New Column( "NumericAlso",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [7, 8, 9] )
)
);
dt2 = New Table( "Interfering table", invisible,
Add Rows( 3 ),
New Column( "Name_1",
Character( 1 ),
"Nominal",
Set Values( {"D", "E", "F"} ),
Set Display Width( 45 )
),
New Column( "Name_2",
Character( 1 ),
"Nominal",
Set Values( {"U", "V", "W"} ),
Set Display Width( 45 )
),
New Column( "NumericInterference",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [4, 5, 6] )
),
New Column( "MoreNumeric",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [7, 8, 9] )
)
);
// get lists
lstName_1 = Associative Array( dt:Name_1 ) << Get Keys;
lstName_2 = Associative Array( dt:Name_2 ) << Get Keys;
colList = dt << Get Column Names( "Numeric" );
// window with radio buttons & col list box
New Window( "Select values",
Show Menu( 0 ),
Show Toolbars( 0 ),
Border Box( Top( 0 ), Bottom( 20 ), Left( 20 ), Right( 10 ),
H List Box(
Panel Box( "Name_1",
Radio Box(
Eval List( lstName_1 )
)
),
Panel Box( "Name_2",
Radio Box(
Eval List( lstName_2 )
)
),
Panel Box( "Numeric Columns",
clb = Col List Box( )
),
clb << Append( colList ); // making me cry ...
)
)
);
Ce que je veux voir :

Ce que je vois invariablement si ma "table cible" n'est pas la table actuelle :

Ce qui me rend complètement confus, c'est que lorsque je change le nom de dt2 : interférence numérique à dt2 : NumériqueDroit , j'obtiens ce résultat :

Pourquoi dt2 ne laisse-t-il pas mon script faire le travail que je souhaite ? Pourquoi le changement de nom d'une colonne dans dt2 affecte-t-il ce qui entre dans la zone de liste des colonnes ? J'ai essayé quelques variantes pour déplacer le colListe variable et j'ai également essayé de l'envelopper dans Liste d'évaluation() , sans "chance".
En cherchant à nouveau dans la communauté, j'ai trouvé ceci Besoin d'aide pour remplir la zone de liste Col. S'il y a une autre solution, merci de me le faire savoir. Alternativement, est-ce ainsi que cela est censé être, et si oui, quelle en est la signification ?