Ich suche Hilfe beim Wechseln zwischen Spaltennamen (zB Height) und Strings ("Height").
In diesem Skript konstruiere ich eine Zeichenfolge, die im Befehl zum Zusammenfügen von Tabellen verwendet werden soll. Ich benutze den Bylizt früher in einem Skript für eine Tabellenzusammenfassung, daher mag ich den Bylizt als Spalten. Das Dialogfeld gibt eine Liste mit Spalten zurück. In diesem Beispiel gibt es zwei Spalten, es können jedoch beliebig viele Spalten vorhanden sein.
bylizt = {: Rec Type,: Step};
Ich möchte dieses Ergebnis nehmen und eine Zeichenfolge erstellen, die in den Befehl join eingefügt wird.
MatchColString = ": Rec Type =: Rec Type,: Step =: Step";
Gibt es eine einfache Möglichkeit, diese Zeichenfolge zu erstellen?
Letztendlich geht diese Saite hier:
Eval (Parse (Eval-Einfügung ("
wrefdt = cdt << Join (
Mit (Datentabelle (subsumdt)),
Spalten gleichen Namens zusammenführen,
Durch übereinstimmende Spalten (^ MatchColString ^),
Drop-Vielfache (0, 0),
Nichtübereinstimmungen einschließen (1, 1),
Reihenfolge der Haupttische beibehalten (1),
Ausgabetabelle (neuer Name)
);
")));
Ich stimme zu, dass es einfacher wäre, die Spaltennamen als Zeichenfolgen zu erhalten, aber ich verwende ein Dialogfeld mit einer Spalte, sodass Sie erhalten, was Sie erhalten.
Es wäre einfacher, Spaltennamen als Zeichenfolgen abzurufen, dies funktioniert jedoch:
bylizt = {:Rec Type, :Step};
for (i = 1, i <= nitems(bylizt), i++,
one_col = ":" || char(bylizt[i]);
if (i == 1,
matchcolstring = one_col || " = " || one_col;
,
matchcolstring = matchcolstring || ", " || one_col || " = " || one_col;
);
);
show(matchcolstring);