définir le type de données pour la nouvelle colonneSalut, Comment puis-je définir conditionnellement et par programme un type de données pour une nouvelle colonne ? J'ai une solution de contournement qui couvre numérique/caractère, et elle pourrait être étendue à d'autres types, mais j'essaie de faire fonctionner la méthode ci-dessous (marquée "ne fonctionne pas"). Le journal indique qu'il ne reconnaît pas la variable de type. J'ai essayé quelques choses comme parse() mais j'ai été jusqu'à présent sans succès.
Names Default To Here( 1 );
dt = open( "$SAMPLE_DATA\Big Class.jmp");
colType = column(dtData,"Name") << get data type;
// doesn't work, error on colType
dt << add multiple columns("New Column", 1, After("Name"), colType);
// works
dt << add multiple columns("New Column", 1, After("Name"), Numeric);
if(colType == "Character", column(dt, "New Column") << data type ("Character"));Re : définir le type de données pour la nouvelle colonneJim l'a cloué; voici quelques autres façons de construire cette déclaration au cas où l'une d'entre elles résonnerait mieux avec votre code :
Insérer une expression dans une autre en utilisant Eval Insert, Eval Expr, Parse et Substitute
Re : définir le type de données pour la nouvelle colonneL'ajout de plusieurs colonnes ne semble pas permettre l'analyse avant l'exécution réelle de l'instruction.Par conséquent, ce qui est présenté comme Ajouter plusieurs colonnes doit être entièrement étoffé avant de le transmettre à JMP pour exécution.Voici quelques façons de le faire
Names Default To Here( 1 );
dt = Current Data Table();
coltype = "character";
Eval(
Parse(
Eval Insert(
"dt << add multiple columns(\!"New Column\!", 1, After(\!"Name\!"), ^colType^)"
)
)
);
// or
Eval(
Substitute(
Expr(
dt << add multiple columns(
"New Column",
1,
After( "Name" ),
__type__
)
),
Expr( __type__ ), colType));