Nom de la table de sortie de la pileSalut,
J'ai un script qui analyse dynamiquement certaines informations de la table de pile et j'aimerais stocker la table de pile en tant que nouvelle table de données.
ystr1 = ":Valeur INFRASTRUCTURE, :Valeur INFRASTRUCTURE 1"
infr = « Valeur de l'infrastructure » ;
données = « PPT » ;
nom_sortie = "infra_updated.jmp" ;
gbStr = EvalInsert("dt << Pile(
Colonnes(
^ystr1^
),
Colonne d'étiquette source (^infr^ ),
Colonne de données empilées (^data^),
Table de sortie (^nom_sortie^ )
)"
);
Eval(Parse(gbStr));
Je reçois l'erreur suivante
Nom non résolu : infra_updated..jmp lors de l'accès ou de l'évaluation de 'infra_updated.jmp'
Impossible de comprendre pourquoi EvalInsert ne fonctionne pas pour la table de sortie
Automatisation et scriptRe : Nom de la table de sortie de la pileLes guillemets doivent être autour du nom spécifié par Output Table(). Par conséquent, ils doivent être ajoutés à la valeur de chaîne de votre variable nom_sortie.
ystr1 = ":INFRASTRUCTURE Value, :INFRASTRUCTURE Value 1";
infr = "Infrastructure Value";
data = "PPT";
output_name = "\!"infra_updated\!"";
gbStr = Eval Insert(
"dt << Stack(
columns(
^ystr1^
),
Source Label Column(^infr^ ),
Stacked Data Column(^data^),
Output Table(^output_name^ )
)"
);
Eval( Parse( gbStr ) );
Re : Nom de la table de sortie de la pileJim a déjà donné la raison pour laquelle ce qui ne va pas dans votre script. Je vous suggère d'utiliser d'autres méthodes que Eval(Parse()) car il peut être extrêmement difficile à déboguer et vous n'avez pas de coloration syntaxique dans l'éditeur de script.
Names Default To Here(1);
/*
dt = Open("$SAMPLE_DATA/Big Class.jmp");
cols = {"age", "height"};
*/
cols = {"INFRASTRUCTURE Value", "INFRASTRUCTURE Value 1"};
infr = "Infrastructure Value";
data = "PPT";
output_name = "infra_updated";
dt_stacked = dt << Stack(
Columns(Eval(cols)),
Source Label Column(infr),
Stacked Data Column(data),
Output Table(output_name)
);
Re : Nom de la table de sortie de la pileMerci d'avoir expliqué le problème.Re : Nom de la table de sortie de la pileJe suis relativement nouveau dans les scripts JSL et je suis toujours en train de me familiariser avec eux. Mais je suis d'accord que votre solution semble plus facile à déboguer. MerciRe : Nom de la table de sortie de la pileJ'ai essayé votre solution mais je vois cette erreur. J'ai les noms de colonnes corrects dans la liste.
"Colonne introuvable lors de l'accès ou de l'évaluation de 'Stack', mauvais argument"
Re : Nom de la table de sortie de la pilePour moi, cela fonctionne bien dans JMP18 (et 17) lorsque je le teste avec l'exemple que j'ai laissé dans le code
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
cols = {"age", "height"};
infr = "Infrastructure Value";
data = "PPT";
output_name = "infra_updated";
dt_stacked = dt << Stack(
Columns(Eval(cols)),
Source Label Column(infr),
Stacked Data Column(data),
Output Table(output_name)
);

Êtes-vous sûr que les noms des colonnes sont écrits correctement et qu'ils se trouvent dans une liste ?