Sto cercando aiuto per passare tra i nomi delle colonne (ad esempio: Altezza) e le stringhe ("Altezza").
In questo script, sto costruendo una stringa da utilizzare nel comando di join della tabella. Sto usando il bylizt in precedenza in uno script per un sommario della tabella, quindi mi piace il bylizt come colonne. La finestra di dialogo restituisce un elenco di colonne; in questo esempio, ci sono due colonne, ma potrebbe esserci un numero qualsiasi di colonne.
bylizt = {: Rec Type,: Step};
Voglio prendere questo risultato e costruire una stringa da inserire nel comando join.
MatchColString = ": Rec Type =: Rec Type,: Step =: Step";
C'è un modo semplice per costruire questa stringa?
In definitiva, questa stringa va qui:
Eval (Parse (Eval Insert ("Eval Insert ("
wrefdt = cdt << Iscriviti (
Con (tabella dati (subsumdt)),
Unisci colonne dello stesso nome,
Abbinando le colonne (^ MatchColString ^),
Drop multipli (0, 0),
Includi Non corrispondenti (1, 1),
Mantieni l'ordine della tabella principale (1),
Tabella di output (nuovo nome)
);
")));
Sono d'accordo che sarebbe più facile ottenere i nomi delle colonne come stringhe, ma sto usando una finestra di dialogo di colonne, in modo da ottenere ciò che ottieni.
Sarebbe più semplice ottenere i nomi delle colonne come stringhe, ma funzionerà:
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);