Hallo,
Ich versuche, ein Skript zu schreiben, das interaktiv erneut ausgeführt wird, basierend auf unterschiedlichen Werten, die ein "Neues Fenster" liefert.
Hier ist das Schema:
1 / Ich öffne ein Fenster mit einer Schaltfläche ("Select Master File").
2 / Wenn ich auf diese Schaltfläche klicke, wird eine "Auswahldatei" gestartet und ich wähle eine Datei aus
3 / Basierend auf dem Inhalt der ausgewählten Datei sollte ich ein Skript ausführen und Grafiken erstellen
Hier sind meine Fragen:
1 / Wie kann ich sicherstellen, dass bei jeder Auswahl einer neuen Datei das gesamte Skript erneut ausgeführt und die Grafiken aktualisiert werden?
2 / Wie werden die Grafiken in das "Neue Fenster" eingebettet, in dem ich die Datei auswähle?
3 / Das Skript, das ich ausführen muss, ist ziemlich lang und es müssen mehrere Diagramme erstellt werden. Gibt es eine Möglichkeit, dieses Skript aufzurufen, ohne den gesamten Code in den Code "Neues Fenster" einzufügen? (wie eine Funktion aufrufen oder so ...)
Danke vielmals.
Nachfolgend finden Sie eine vereinfachte Version des Codes (mit 2 Dateien zum Testen des Codes):
// 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 ) ) );
Das löst den Punkt 3 / perfekt.
Danke vielmals !!!!!!!!!
Irgendeine Idee, wie man 1 / und 2 / löst?
Hier ist eine Möglichkeit, die Diagramme als Ausdruck zu speichern und später in dem neuen Fenster zu verwenden.
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
),
);