Ciao,
Sto cercando di scrivere uno script che interattivamente è ri-eseguito sulla base di diversi valori forniti da una "nuova finestra".
Ecco lo schema:
1 / apro una finestra con un pulsante ("Seleziona file master").
2 / Quando clicco su questo pulsante, viene lanciato un "file di prelievo" e seleziono un file
3 / in base al contenuto del file selezionato, dovrei eseguire uno script e generare grafici
Ecco le mie domande:
1 / Come fare sur ogni volta che seleziono un nuovo file, l'intero script viene rieseguito e i grafici vengono aggiornati?
2 / Come ottenere i grafici incorporati nella "Nuova finestra" dove seleziono il file?
3 / Lo script che devo eseguire è piuttosto lungo e molti grafici devono essere generati. C'è un modo per chiamare questo script senza inserire tutto il codice nel codice "Nuova finestra"? (come chiamare una funzione o così, ...)
Molte grazie.
Trova sotto una versione semplificata del codice (con 2 file allegati per testare il codice):
// 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 ) ) );
Ciò risolve perfettamente l'articolo 3 /.
Grazie molto !!!!!!!!!
Qualche idea su come risolvere 1 / e 2 /?
Ecco un modo per salvare i grafici come un'espressione e quindi utilizzarli in un secondo momento nella nuova finestra.
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
),
);