Comment vérifier si la liste des colonnes existe et signaler celles qui manquent à l'aide d'une fenêtre contextuelle ?Salut tout le monde!
Je voudrais tester si une liste de 5 noms de colonnes existe dans une table de données.
S'il en manque une ou plusieurs, j'aimerais qu'une fenêtre contextuelle s'affiche pour indiquer à l'utilisateur quelles colonnes manquent. Si toutes les colonnes sont présentes, le script doit continuer son exécution.
Pourriez-vous s'il vous plaît me diriger dans la bonne direction sur la façon d'écrire?
Merci!
Modélisation statistique avancéeAutomatisation et scriptFusion et nettoyage des donnéesPersonnalisation de masseIngénierie de la qualité et des procédésRe : Comment vérifier si la liste des colonnes existe et signaler celles qui manquent à l'aide d'une fenêtre contextuelle ?L'approche avec le tableau associatif est géniale !
Mais veuillez noter que les comparaisons décrites ici trouvent juste exact allumettes.
En général, pour Jmp, peu importe s'il y a des majuscules dans le nom de la colonne - ou des espaces.
Ainsi, selon votre cas d'application, peut-être que le vérifier si la liste des colonnes existe ne devrait pas s'en soucier non plus.
Très robuste est @txnelson l'approche de :
r=try(column(dt,tn)<<GET name=""></GET>
vérifier si la colonne existe ?
Avec tous les pièges des vérifications d'existence de colonne - à mon avis, Jmp devrait fournir un moyen robuste de demander à une table de données si une colonne existe.
Voici le poste dans la liste de souhaits:
table de données : la colonne de message existe (colname) ?
Re : Comment vérifier si la liste des colonnes existe et signaler celles qui manquent à l'aide d'une fenêtre contextuelle ?Merci! C'est une solution intéressante ! Je devrais vraiment apprendre à travailler avec Tableaux associatifs...
Re : Comment vérifier si la liste des colonnes existe et signaler celles qui manquent à l'aide d'une fenêtre contextuelle ?Merci! Ceci est exactement ce que je cherchais!
Re : Comment vérifier si la liste des colonnes existe et signaler celles qui manquent à l'aide d'une fenêtre contextuelle ?Vous pouvez utiliser le Retirer() méthode des tableaux associatifs pour le faire sans aucune boucle JSL :
Names Default to Here( 1 );
reference table = New Table( "TEST",
<<NEW column=""></NEW>
Re : Comment vérifier si la liste des colonnes existe et signaler celles qui manquent à l'aide d'une fenêtre contextuelle ?Voici un exemple simple d'une façon de le faire
Names Default To Here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
colList = dt << get column names( string );
requiredList = {"name", "sex", "shoe size"};
For( i = N Items( requiredList ), i >= 1, i--,
If( Contains( colList, requiredList[i] ),
Remove From( requiredList, i, 1 )
)
);
stop = "NO";
If( N Items( requiredList ) > 0,
stop = "YES";
New Window( "Error",
Modal,
V List Box(
Text Box( "The following column(s) are required" ),
Text Box( "but were not found in the data table." ),
Spacer Box( size( 1, 10 ) ),
List Box( requiredList )
)
);
);
If( stop == "YES", Throw() );Re : Comment vérifier si la liste des colonnes existe et signaler celles qui manquent à l'aide d'une fenêtre contextuelle ?Salut Rob!
Merci pour la suggestion! Je voudrais effectuer cette tâche en utilisant JSL parce que je prévois de l'incorporer dans certains de mes scripts, mais j'aimerais également avoir un message d'interface graphique convivial pour les utilisateurs au cas où des colonnes seraient manquantes.
Merci quand même!
Adi
Re : Comment vérifier si la liste des colonnes existe et signaler celles qui manquent à l'aide d'une fenêtre contextuelle ?Salut Lavik17,
Avez-vous essayé d'utiliser le sélecteur d'affichage des colonnes dans le menu déroulant des colonnes ? Ensuite, à l'aide de la fonction de statistiques récapitulatives, vous pouvez facilement rechercher vos noms à cinq colonnes et déterminer s'il manque des données.
J'espère que ça aide,
Rob