Ajouter une variable transformée à une zone de liste colBonjour à tous,
Je ne peux pas ajouter une variable transformée à une boîte à liste col lorsque j'utilise la fonction "Ajouter".
Voici un exemple:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Col List Box Example 3",
H List Box(
ll1 = Col List Box( all ),
Button Box( "Add", ll2 << append( ll1 << get selected ) ),
ll2 = Col List Box( "numeric", MaxItems( 1 ), nlines( 1 ) ),
Button Box( "Remove", ll2 << remove selected )
)
);
Ensuite, par exemple, je clique avec le bouton droit sur la variable "height"> "Transform"> "Log"
Lorsque je sélectionne la nouvelle variable "Log [height]" et que je clique sur le bouton "Ajouter", rien ne se passe ...
Avez-vous une idée de comment je pourrais changer ça?
Merci d'avance pour votre aide!
Re: Ajouter une variable transformée à une zone de liste col<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Merci pour vos réponses W. Murphrey et msharp.
Pour le moment, vérifier que la variable est dans la table et sinon, dire à l'utilisateur qu'il doit l'ajouter, semble être un bon moyen de gérer mon problème.
Je vais essayer ça!
Merci encore.
Re: Ajouter une variable transformée à une zone de liste colCol List Box () prend en charge la fonctionnalité glisser-déposer. Ainsi, vous pouvez toujours remplacer le bouton Ajouter par une zone de texte qui dit "S'il vous plaît faites glisser et déposez:".
Cependant, le problème majeur est que la fonction de transformation est même disponible en cliquant avec le bouton droit de la souris dans la zone de liste Col (). Principalement parce que je ne suis pas sûr de ce que vous faites quand vous faites cela. Une chose est sûre, vous ne créez clairement pas de nouvelle colonne transformée dans la table de données. La table de données ne change pas. Il semble simplement que l'utilisateur puisse maintenant créer des colonnes hocus pocus, puis les faire glisser et les déposer dans le champ d'analyse. Cela provoquerait alors le blocage de votre application, sauf si vous ajoutez une fonctionnalité permettant de gérer ces colonnes imaginaires en les créant.
Pour qu'il ne tombe pas en panne chaque fois que l'utilisateur appuie sur le bouton Exécuter avec une fausse colonne, vous devez vérifier si la colonne sélectionnée existe même (similaire au code de W. Murphrey). Si la colonne n'existe pas, vous devez la créer. Puisqu'un utilisateur final pourrait potentiellement faire un clic droit et effectuer une transformation sur une transformation, votre code devrait être suffisamment robuste pour le gérer. Une fois que cela sera implémenté, l’utilisateur final saura qu’il peut cliquer avec le bouton droit de la souris et créer des colonnes avant l’analyse. Il verra également les fonctions supplémentaires. Vous devrez donc créer davantage de fonctionnalités pour l’agrégation, les distributions, les lignes et les formules. Malheureusement, étant donné que vous n'avez aucun moyen de savoir comment ils souhaitent modifier la formule d'une colonne créée, vous réaliserez qu'il s'agit d'un trou de ver.
Je dirais qu'il vaut mieux l'ignorer et attendre que SAS puisse l'implémenter, comme le dit W. Murphrey dans les versions ultérieures. Si votre utilisateur final doit absolument pouvoir effectuer des transformations sur des colonnes avant l'analyse, donnez-lui simplement accès au tableau de données.
Re: Ajouter une variable transformée à une zone de liste colBonjour,
Malheureusement, il n'y a pas de support JSL pour les colonnes transformées dans ColListBox pour le moment. La suggestion a été soumise à l'équipe de développement JMP pour examen dans une version ultérieure.
En attendant, vous pouvez ajouter une vérification pour vérifier que la colonne existe. Si ce n'est pas le cas, affichez un message pour indiquer à l'utilisateur que les variables transformées doivent être ajoutées à la table de données. Pour ce faire, cliquez avec le bouton droit sur la colonne transformée et sélectionnez Ajouter au tableau de données.
New Window( "Col List Box Example 3",
H List Box(
ll1 = Col List Box( all ),
Button Box( "Add",
colList = dt << Get Column Names( String );
If( Contains( colList, (ll1 << Get Selected)[1] ),
ll2 << append( ll1 << get selected ),
Caption( "Transformed variables must be added to the data table" )
);
),
ll2 = Col List Box( "numeric", MaxItems( 1 ), nlines( 1 ) ),
Button Box( "Remove", ll2 << remove selected )
)
);
J'espère que ça aide.
Wendy