Comment dire à JMP de continuer à exécuter le script lorsque la colonne est manquanteBonjour, lors de la création d'un tableau récapitulatif ci-dessous, est-ce que quelqu'un sait comment coder en JSL pour permettre au script de continuer à s'exécuter si l'une des colonnes ci-dessous n'existe pas ?
dt3 << Résumé (Somme ( :Échec, :Non évalué, :Faible));
Merci!
Automatisation et scriptsRe : Comment dire à JMP de continuer à exécuter le script lorsque la colonne est manquanteVous devez faire un peu de sécurisation du code sur la liste des colonnes à résumer.
Voici mon exemple :
dt3 = Current Data Table();
columns to summarize = {"fail", "not assessed", "weak"}; //columns you're interestd in, may or may not exist within table
column names = dt3 << Get Column Names( "String" ); //we need to grab the table columns to utilize only available columns
columns as names = {}; //we need to wrap both column names and our columns of interest in
For( i = 1, i <= N Items( column names ), i++, // 'As Name( ... )' to avoid issues with capitalization and such
columns as names[i] = As Name( column names[i] ) // loop here
);
columns to summarize within table = {};
For( i = 1, i <= N Items( columns to summarize ), i++,
If( Contains( columns as names, As Name( columns to summarize[i] ) ), // check to see that name exists as column header
Insert Into( columns to summarize within table, columns to summarize[i] )
)
);
Eval( Eval Expr(
dt3 << Summary( Expr( Substitute( columns to summarize within table, {}, Expr( Sum ) ) ) ) //fancy substitution for the summary table
) )Re: Comment dire à JMP de continuer à exécuter le script lorsque la colonne est manquanteJe trouve que le moyen le plus simple de procéder est de créer une liste des colonnes disponibles, puis de référencer cette liste dans la plateforme Résumé.
Names Default To Here( 1 );
dt3 = Current Data Table();
colList = dt3 << get column names( continuous, string );
dt3 << summary( Sum( Eval( colList ) ) );
Il existe plusieurs façons de remplir la liste et de supprimer des éléments de la liste. Consultez la documentation sur la manipulation des listes dans le Guide de script