So erstellen Sie ein Skript für den SpaltenübereinstimmungsdialogIch habe einen Dialog, in dem ich einen Benutzer brauche, um Spaltenpaare abzugleichen. So ziemlich wie bei Join Tables.

Spezifisches Beispiel - Ich habe Sätze experimentell gemessener Parameter und Sätze ihrer theoretischen Vorhersagen. Diese Daten stammen aus verschiedenen Quellen und die Spaltenbenennung kann willkürlich sein, daher muss der Benutzer Theorie und Experiment für jeden Parameter abgleichen.
Gibt es ein Beispiel, wie man diesen Teil scriptet? Und wie bewahrt man diese Paare auf und wie verwendet man sie später?
Bisher habe ich das und ich interessiere mich dafür, wie man das Feld im grünen Rahmen skriptet, um übereinstimmende Paare widerzuspiegeln (wie im obigen Beispiel) und wie man diese Paare behält (Liste mit 2 Elementlisten?) und wie man \ Rückruf entfernt sie usw.:

Und hier ist das Skript:
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>
SkripterstellungBetreff: So erstellen Sie ein Skript für den SpaltenübereinstimmungsdialogWenn ich raten müsste, verwendet die Join-Plattform Listbox, in der neue Werte angehängt werden, wenn Sie Spaltenpaare hinzufügen.
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], "=");

Ich habe das Skript einfach schnell zusammengewürfelt, also verwende bessere Benennungen als ich es für Variablen getan habe, verhindere die Auswahl mehrerer Werte in Spaltenlistenfeldern und entferne fest codierte Begrenzungen der Spaltenindizierung. Wenn Sie die Werte benötigen, können Sie mit << Elemente abrufen auf die Listbox-Referenz zugreifen, die Ihnen eine Liste von Elementen liefert. Verwenden Sie dann Words(), um das weiter in verschiedene Teile aufzuteilen.