Ich fände es absolut großartig, wenn ich so etwas machen könnte.
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
biv = dt << Bivariate();
Jetzt ist biv ein „Scriptable[]“, und das ist in Ordnung.Aber wenn ich auf „OK“ drücke, würde ich es lieben, wenn „biv“ der Ausdruck wäre, den man erhalten würde, wenn man das Skript im Skriptfenster speichern würde.
Auf diese Weise kann ich so etwas tun
while(type(biv)!= "Expression",
if(biv == "User Canceled", stop());
wait(.3);
);
biv = Eval(biv);
Und es würde so lange wie nötig warten, bis der Benutzer die erforderlichen Eingaben gemacht hat.
Ich habe eine Anweisung eingefügt, die prüft, ob der Benutzer gekündigt hat, in der Annahme, dass das Kündigen des Benutzers ebenfalls Auswirkungen haben würde.
Das offensichtliche Problem dabei ist, dass ich die Analyse zweimal durchführen würde.
Dies hängt damit zusammen Gemeinschaftsgegenstand Ich mag es einfach nicht, die Benutzeroberfläche für Plattformen neu zu schreiben.
@vince_faller ,
Ich stimme zu, dass es cool wäre, die JMP-Plattformschnittstelle zu aktivieren.Obwohl mir die nicht-modale Plattformschnittstelle gefällt, ist das, was Sie beschreiben, so etwas wie
biv = dt << Bivariate( <<MODAL></MODAL>
Das heißt, wenn JMP winlist = Get Window List () mit einer Typoption und Save ByGroup Script to Data Table( "name", <
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
biv = dt << Bivariate( );
opt = 0;
onCancel = Expr( opt = -1 );
onOK = Expr( opt = 1 );
doSomething = Expr(
winlist = (Get Window List(Type("Reports")) << Get Window Title());
If (nitems(winlist) >0,
win = Window(winlist[nitems(winlist)]);
// should have an error check for Bivariate, this assumes the last report is the report you want
biv = win[OutlineBox(1)] << get scriptable object;
biv << Save By Group Script to Data Table("user",<<PROMPT></PROMPT>