Je cherche de l'aide pour passer d'un nom de colonne à l'autre (par exemple: Height) à une chaîne de caractères ("Height").
Dans ce script, je construis une chaîne à utiliser dans la commande table join. J'utilise le bylizt plus tôt dans un script pour un résumé de table, donc j'aime le bylizt sous forme de colonnes. La boîte de dialogue renvoie une liste de colonnes. dans cet exemple, il y a deux colonnes, mais il peut y avoir un nombre quelconque de colonnes.
bylizt = {: Type d'enregistrement,: Step};
Je veux prendre ce résultat et construire une chaîne à insérer dans la commande de jointure.
MatchColString = ": Type d'enregistrement =: Type d'enregistrement,: Etape =: Etape";
Y at-il un moyen facile de construire cette chaîne?
En fin de compte, cette chaîne va ici:
Eval (Parse (Eval Insert ("
wrefdt = cdt << Join (
Avec (table de données (subsumdt)),
Fusionner les colonnes de même nom,
En faisant correspondre les colonnes (^ MatchColString ^),
Déposer des multiples (0, 0),
Inclure les matchs non assortis (1, 1),
Préserver l'ordre de la table principale (1),
Table de sortie (nouveau nom)
)
")));
Je conviens qu'il serait plus facile d'obtenir les noms de colonne sous forme de chaînes, mais j'utilise une boîte de dialogue de colonne pour que vous obteniez ce que vous obtenez.
Il serait plus facile d’obtenir des noms de colonnes sous forme de chaînes, mais cela fonctionnera:
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);