Bonjour,
J'essaie d'écrire un script qui est ré-exécuté de manière interactive en fonction des valeurs variables fournies par une "nouvelle fenêtre".
Voici le schéma:
1 / J'ouvre une fenêtre avec un bouton ("Select Master File").
2 / Lorsque je clique sur ce bouton, un "pick File" est lancé et je sélectionne un fichier.
3 / en fonction du contenu du fichier sélectionné, je devrais exécuter un script et générer des graphiques
Voici mes questions:
1 / Comment faire en sorte que chaque fois que je sélectionne un nouveau fichier, le script entier est réexécuté et les graphiques sont mis à jour?
2 / Comment intégrer les graphiques dans la "Nouvelle fenêtre" où je sélectionne le fichier?
3 / Le script que je dois exécuter est plutôt long et plusieurs graphiques doivent être générés. Est-il possible d'appeler ce script sans mettre tout le code dans le code "Nouvelle fenêtre"? (comme appeler une fonction ou autre, ...)
Merci beaucoup.
Trouvez ci-dessous une version simplifiée du code (avec 2 fichiers joints pour tester le code):
// Collect location of the Master file and the data...
New Window( "Window Controls",
Lineup Box( N Col( 1 ), Spacing( 3 ),
Panel Box( "1/ Select location of Data...", Button Box( "Select Data", Folder = Pick Directory( "Please pick a folder", ShowFiles ) ) ),
Panel Box( "2/ Select Data Master File...", g1=Button Box( "Select Master File", MasterFile = Pick File()
) ),
Col List Box( all ); //g1 << updateWindow;
),
);
MasterTable = Open( MasterFile );
Lots = Column( MasterTable, "Lot" ) << GetAsMatrix;
Factors = Column( MasterTable, "Factor" ) << GetAsMatrix;
x = Factors * [10, 50, 90];
y = Factors * [10, 90, 10];
New Window( "Poly Seg Example", g = Graph Box( Poly Seg( x, y ) ) );
Cela résout parfaitement le point 3 /.
Merci beaucoup !!!!!!!!!
Toute idée sur la façon de résoudre 1 / et 2 /?
Voici un moyen de sauvegarder les graphiques en tant qu’expression, puis de les utiliser plus tard dans la nouvelle fenêtre.
dt = open("$sample_data\Big Class.jmp");
g1_expr = expr(
gb1 = dt << Graph Builder(Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 6 ) ) )
);
);
g2_expr = expr(
gb2 = dt << Graph Builder(Show Control Panel( 0 ),
Variables( X( :age ) ),
Elements( Pie( X, Legend( 3 ), Label( "Label by Value" ) ) ),
SendToReport( Dispatch( {}, "Y title", TextEditBox, {Set Wrap( 2 )} ) )
);
);
nw = new window("Sample Graphs",
hlistbox(
g1_expr,
g2_expr
),
);