Come scrivere la finestra di dialogo di corrispondenza delle colonneHo una finestra di dialogo in cui ho bisogno di un utente per abbinare coppie di colonne. Più o meno come facciamo in Join Tables.

Esempio specifico: ho insiemi di parametri misurati sperimentalmente e insiemi delle loro previsioni teoriche. Questi dati provengono da fonti diverse e la denominazione delle colonne può essere arbitraria, quindi ho bisogno che gli utenti abbinino teoria ed esperimento per ogni parametro.
C'è un esempio su come scrivere questa parte? E come mantenere queste coppie e come usarle in seguito?
Finora ho questo e sono interessato a come scrivere la casella nella cornice verde per riflettere le coppie abbinate (come nell'esempio sopra) e come mantenere quelle coppie (elenco di 2 elenchi di elementi?) e come rimuovere\richiamare loro ecc.:

Ed ecco la sceneggiatura:
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>
SceneggiaturaRe: Come scrivere la finestra di dialogo di corrispondenza delle colonneSe dovessi indovinare, la piattaforma di join utilizza Listbox in cui aggiunge nuovi valori quando aggiungi coppie di colonne.
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], "=");

Ho appena messo insieme rapidamente lo script in modo da utilizzare una denominazione migliore di quella che ho fatto per le variabili, impedire la selezione di più valori nelle caselle di riepilogo col e rimuovere i limiti hardcoded dell'indicizzazione delle colonne. Quando hai bisogno dei valori che puoi ottenere, allora con << ottieni elementi nel riferimento della casella di riepilogo, che ti darà un elenco di elementi. Quindi usa Words() per dividerlo ulteriormente in parti diverse.