Kombinieren von Datentabellen, wenn die Anzahl der geöffneten Tabellen variiertHallo,
Ich habe ein Skript, das vom Benutzer ausgewählte Elemente aus einem Listenfeld abruft. Basierend auf der Anzahl der vom Benutzer ausgewählten Elemente werden mehrere Tabellen angezeigt. Die Anzahl der neuen Datentabellen ist variabel und ich möchte sie alle in einer größeren Tabelle namens „Combined Table“ zusammenfassen. Ich weiß, dass die Verkettungsfunktion dies tut, aber ich hätte gerne ein Skript, das eine vom Benutzer angegebene Anzahl von Tabellen aufnehmen kann.
Aus diesem Codeabschnitt werden eine Reihe neuer Tabellen mit den Namen EachChem, EachChem 2, EachChem 3 usw. angezeigt. Ich möchte diese in einer größeren Tabelle namens Combined Table zusammenfassen.
For (i = 1, i <= N Items(lt), i++,
dt << Select Where( :chemical == lt[i] );
dt << Get selected rows
dt << Subset(Output Table("EachChem"), Selected Rows(i));
);
Alternativ wäre es auch gut, wenn ich die Tabellen innerhalb der obigen for-Schleife kombinieren könnte und am Ende eine große Teilmengentabelle namens EachChem hätte.
Jede Hilfe oder Hinweise sind willkommen.
Datenmischung und -bereinigungWindowsBetreff: Kombinieren von Datentabellen, wenn die Anzahl der geöffneten Tabellen variiertDies sollte tun, was Sie wollen
theExpr = "Data Table( \!"EachChem\!") << Concatenate(";
For( i = 2, i <= N Items( lt ), i++,
theExpr = theExpr || " Data Table( \!"EachChem " || Char( i ) || "\!"),"
);
theExpr = theExpr || "Output Table( \!"Combined Table\!" ) );";
Eval( Parse( theExpr ) );Betreff: Kombinieren von Datentabellen, wenn die Anzahl der geöffneten Tabellen variiertDanke. Das hat funktioniert.
Wenn sich auch die Namen der zu verkettenden Tabellen ändern, sollte Folgendes funktionieren.
theExpr = " Data Table( \!"" || MaskList[1] || " " || Char( 2 ) || "\!") << Concatenate(";
For( i = 2, i <= N Items(MaskList), i++,
theExpr = theExpr || " Data Table( \!"" || MaskList[i] || " " || Char( 2 ) || "\!"),"
);
theExpr = theExpr || "Output Table( \!"Final Table\!" ) );";
Eval( Parse( theExpr ) );
Im obigen Code
MaskList ist eine Liste, die je nach Benutzer eine variable Anzahl von Masken enthält. Jeder Maske in MaskList sind Tabellen zugeordnet.
Beispielsweise heißt die erste Tabelle Mask1 2 (die zweite Tabelle mit dem Namen Mask1, daher die zusätzliche 2 ), die nächste zu verkettende Tabelle heißt Mask9 2 (die zweite Tabelle mit dem Namen Mask9, daher die zusätzliche 2 ) und so weiter.
Dadurch werden Mask1 2 mit Mask9 2 usw. verkettet.
Ich stelle dies hier nur zu Dokumentationszwecken ein.