Hola,
Estoy intentando escribir un script que se vuelva a ejecutar de forma interactiva en función de los valores variables proporcionados por una "Nueva ventana".
Aquí está el esquema:
1 / Abro una ventana que tiene un botón ("Seleccionar archivo maestro").
2 / Cuando hago clic en este botón, se lanza un "pick File", y selecciono un archivo
3 / basado en el contenido del archivo seleccionado, debo ejecutar un script y generar gráficos
Aquí están mis preguntas:
1 / ¿Cómo hacerlo cada vez que selecciono un archivo nuevo, todo el script se vuelve a ejecutar y los gráficos se actualizan?
2 / ¿Cómo puedo incrustar los gráficos en la "Nueva ventana" donde selecciono el archivo?
3 / El script que tengo que ejecutar es bastante largo y se deben generar varios gráficos. ¿Hay una manera de llamar a este script sin poner todo el código en el código de "Nueva ventana"? (como llamar a una función o algo así, ...)
Muchas gracias.
A continuación, encontrará una versión simplificada del código (con 2 archivos adjuntos para probar el código):
// 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 ) ) );
Eso resuelve perfectamente el item 3 /.
Muchas gracias !!!!!!!!!
¿Alguna idea sobre cómo resolver 1 / y 2 /?
Aquí hay una forma de guardar los gráficos como una expresión y luego usarlos más adelante en la nueva ventana.
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
),
);