Comment créer un script pour la boîte de dialogue de correspondance de colonneJ'ai une boîte de dialogue dans laquelle j'ai besoin d'un utilisateur pour faire correspondre des paires de colonnes. À peu près comme nous le faisons dans Join Tables.

Exemple spécifique - J'ai des ensembles de paramètres mesurés expérimentalement et des ensembles de leurs prédictions théoriques. Ces données proviennent de différentes sources et la dénomination des colonnes peut être arbitraire, j'ai donc besoin que les utilisateurs fassent correspondre la théorie à l'expérience pour chaque paramètre.
Y a-t-il un exemple sur la façon de scripter cette partie ? Et comment conserver ces paires et comment les utiliser plus tard ?
Jusqu'à présent, j'ai ceci, et je suis intéressé par la façon de scripter la boîte dans un cadre vert pour refléter les paires correspondantes (comme dans l'exemple ci-dessus) et comment conserver ces paires (liste de 2 listes d'éléments ?) Et comment supprimer\rappeler eux etc. :

Et voici le script :
dt = New Table( "Untitled 5",
Add Rows( 4 ),
Set Header Height( 46 ),
New Column( "X", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1, 2, 3, 4] ) ),
New Column( "A_Theory", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1, 3, 2, 3] ) ),
New Column( "B_Measured", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [4, 5, 6, 5] ) ),
New Column( "A_Measured", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1, 4, 3, 4] ) ),
New Column( "B_Theory", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [4, 5, 3, 4] ) )
);
notImplemented = Expr(
win = New Window( "Feature Not Implemented Yet", <<MODAL></MODAL>
ScriptRe : Comment créer un script pour la boîte de dialogue de correspondance de colonneSi je devais deviner, la plate-forme de jointure utilise Listbox dans laquelle elle ajoute de nouvelles valeurs lorsque vous ajoutez des paires de colonnes.
Names Default To Here(1);
dt = New Table("Untitled 5",
Add Rows(4),
Set Header Height(46),
New Column("X", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4])),
New Column("A_Theory", Numeric, "Continuous", Format("Best", 12), Set Values([1, 3, 2, 3])),
New Column("B_Measured", Numeric, "Continuous", Format("Best", 12), Set Values([4, 5, 6, 5])),
New Column("A_Measured", Numeric, "Continuous", Format("Best", 12), Set Values([1, 4, 3, 4])),
New Column("B_Theory", Numeric, "Continuous", Format("Best", 12), Set Values([4, 5, 3, 4]))
);
notImplemented = Expr(
a = clb1 << get selected;
b = clb2 << get selected;
lb << Append(a[1] || "=" || b[1]);
);
gui = Expr(
H List Box(
V List Box(
Panel Box("Theory",
clb1 = Col List Box(All, Nlines(5))
),
Panel Box("Experiment",
clb2 = Col List Box(All, Nlines(5))
)
),
Panel Box("Theory vs Experiment Matching",
H List Box(
Button Box("Match", notImplemented),
lb = List Box({}, Nlines(12))
)
)
)
);
fileLoad = New Window("Example", Show Menu(0), Show Toolbars(0), gui);
//{col1, col2} = Words((lb << get items)[1], "=");

Je viens de créer rapidement le script, utilisez donc une meilleure dénomination que moi pour les variables, empêchez la sélection de plusieurs valeurs dans les zones de liste col et supprimez les limites codées en dur de l'indexation des colonnes. Lorsque vous avez besoin des valeurs, vous pouvez les obtenir avec << get items to the list box reference, ce qui vous donnera une liste d'éléments. Ensuite, utilisez Words() pour diviser davantage cela en différentes parties.