Boucle For dans une nouvelle fenêtreSalut! Je suis un utilisateur JMP très débutant et j'ai du mal à faire fonctionner ma boucle for.J'essaie de demander à l'utilisateur quel type de facteur est chacun de ses facteurs. Le nombre de fois que la question est posée dépend du nombre de colonnes dans le fichier jmp. J'essayais d'utiliser une boîte radio, mais j'ai des problèmes avec l'ajout. Ci-dessous, un petit aperçu de ce que j'ai fait. Merci!
Names Default to Here(1);
dt = Open("Example1.jmp");
number = ncols(dt);
FactorType = {"Continuous", "Categorical"};
New Window("Data Entry", << Modal, << return results,
Text Box("Type of Factor");,
type= V list Box(),
);
For(i= 1, i <= number, i++,
type << Append(Radio Box(FactorType, Max Selected(1)));
);
Re : Boucle For dans une nouvelle fenêtreC'est une bonne question, @David_Burnham ! Je pense que ça dépend peut-être ? J'utilise beaucoup IfBox(), bien que ce soit particulièrement conçu pour l'affichage conditionnel des boîtes d'affichage. Je ne peux pas parler de la « légitimité » de jsl dans ces situations, mais quoi qu'il en soit, OnOpen est une excellente suggestion.Re : Boucle For dans une nouvelle fenêtreEst-ce que mettre une boucle for dans un nouvel appel de fonction de fenêtre est vraiment légitime ?Mon point de vue est que vous ne devriez pas coller JSL aux endroits où des boîtes d'affichage sont attendues, même si le code s'exécute.Pour une fenêtre modale, le JSL peut être placé dans le gestionnaire d'événements OnOpen.
Re : Boucle For dans une nouvelle fenêtreRe-bonjour @dg1 ,
Juste pour faire suite, j'ai regardé d'un peu plus près votre code et il y a eu quelques endroits où je pense que vous rencontrerez un problème. Le plus important est de décharger les résultats. Chacun de vos objets RadioBox() doit avoir un handle afin que vous puissiez les référencer ultérieurement pour récupérer les données. Vous trouverez ci-dessous une façon de procéder, qui attribue la référence à une liste, puis parcourt ultérieurement cette liste de références, envoie le message pour obtenir l'élément sélectionné et stocke le résultat dans une autre liste. Tout cela se produit lorsque vous cliquez sur le bouton OK.
Names Default To Here( 1 );
dt = Current Data Table();
number = N Cols( dt );
rbList = {};
rbResult = {};
FactorType = {"Continuous", "Categorical"};
win = New Window( "Data Entry",
<<MODAL></MODAL>
Si vous ne l'avez pas encore fait, je vous suggère fortement de lire le Guide de script JMP, Aide > Livres > Guide de script. Cela vous sera d'une valeur inestimable pour apprendre le langage et les opérations nécessaires pour qu'un script fonctionne comme vous le souhaitez. De plus, j'ai vraiment apprécié le livre Compagnon JSL : applications du langage de script JMP.Je commencerais par le Guide de script car il est inclus gratuitement dans JMP, mais le JSL Companion fournit une introduction structurée à l'utilisation de JSL à travers une série d'applications pratiques (et tout le code est inclus).
J'espère que cela vous aidera tout au long de votre chemin ! Apprécier!
@julien
Re : Boucle For dans une nouvelle fenêtreSalut @dg1 ,
Il semble s'afficher pour moi en haut de la fenêtre, mais une seule fois lorsque vous l'avez programmé. Si vous souhaitez une zone de texte pour chaque sélection de colonne, vous pouvez en ajouter un autre à chaque itération de votre boucle for() :
Names Default To Here( 1 );
dt = Open("Example1.jmp");
number = N Cols( dt );
FactorType = {"Continuous", "Categorical"};
New Window( "Data Entry",
<<MODAL></MODAL>

Re : Boucle For dans une nouvelle fenêtreMerci! Savez-vous également comment vous assurer que la zone de texte indiquant Type de facteur apparaît également avec les zones Radio ?Re : Boucle For dans une nouvelle fenêtreSalut @dg1 ,
Vous faites tout correctement ! Mais votre utilisation de <
Names Default To Here( 1 );
dt = Open("Example1.jmp");
number = N Cols( dt );
FactorType = {"Continuous", "Categorical"};
New Window( "Data Entry",
<<MODAL></MODAL>
@julien