Rufen Sie den Batch-/Interaktivmodus aufIch frage mich, ob es eine Möglichkeit gibt, modale Fenster nativ zu unterdrücken.Batch-Interaktiv scheint das nicht zu tun.
Names default to here(1);
batch interactive(1);
new window("Test", <<MODAL></MODAL>
Ich frage mich also, ob es eine Möglichkeit gibt, den aktuellen Batch-Interaktionsmodus zu erhalten, damit ich so etwas tun kann.
Names default to here(1);
batch interactive(1);
if(batch interactive(), // or some other internal variable
print("YAY")
, // else
new window("Test", <<MODAL></MODAL>
Natürlich kann ich meine eigene Batch-Variable erstellen, aber ich frage mich, ob da etwas eingebaut ist.
Betreff: Batch-/Interaktiver Modus abrufenDanke für die Info.
Mit etwas Hilfe des JMP-Supports : )
batch interactive(boolean) returns the previous setting.
Names default to here(1);
//works for both options
//batch interactive(0);
//batch interactive(1);
last setting = batch interactive(1); // return value is last setting
batch interactive(last setting); // reset it in case we set it erroneously
if(last setting,
print("YAY")
, // else
new window("Test", <<MODAL> </MODAL>
Betreff: Batch-/Interaktiver Modus abrufenMeins beginnt immer mit 1, was mich glauben lässt, dass JMP im Batch-Modus ist. Was definitiv nicht der Fall ist. Gibt Ihnen die erste Rückgabe beim Start 0 zurück?
Betreff: Batch-/Interaktiver Modus abrufenguter Punkt ...
Es scheint, dass beim Ausführen eines Skripts JMP automatisch mit „ Batch Interactive “ startet, das standardmäßig auf 1 eingestellt ist
- so dass keine Warnmeldung erscheint und das Skript stört.
Was es definitiv nicht ist.
Vielleicht gibt es verschiedene Arten von „Warnungen“? – und manche von ihnen ignorieren diese Standardeinstellung „Batch Interactive“ ~ 1 und benötigen daher ein explizites Batch Interactive(1), das über JSL gesendet wird, um „die Klappe zu halten“?
Wie Eval(arg) vs. Eval(Eval Expr( .... Expr(arg) ...):
Ein Teil der JMP-Plattformen und -Funktionen benötigt lediglich Eval() um ein Argument herum, um Probleme mit Variablenreferenzen zu beheben.
Beim anderen Teil schlägt der Eval(arg) -Ansatz fehl und der Benutzer muss auf Eval(Eval Expr( .... Expr(arg) ... ) zurückgreifen.
... und es ist der tägliche Spaß von JSL-Skriptern und JMP-Supportern, herauszufinden, welche Funktion zu welcher Gruppe gehört.
Betreff: Batch-/Interaktiver Modus abrufenBeispiele für die verschiedenen Verhaltensweisen der interaktiven Stapelverarbeitung – und die verschiedenen „Standard“-Modi:
Names Default To Here( 1 );
testMarkup = Function( {},
text = Text Box("Bad XML <");
text << markup;
);
// Run the next four lines individually
testMarkup(); // no special setting: default
batch interactive(1);testMarkup(); // batch interactive is turned "on" so we see an error
batch interactive(0);testMarkup(); // batch interactive is turned off so we can show an error
new window("test",buttonbox("Test", testMarkup())); // running jsl in response to a click is not batch interactive mode
new window("test",buttonbox("Test", batch interactive(1);testMarkup())); // set batch interactive to 1 so the error message goes to the log and there is no modal dialog
// the findings:
// default -> no dialog
// 1 -> no dialog
// 0 -> dialog
// Run the next 3 lines individually to check if formula errors behave the same as above
:col1 << remove formula(); // no special setting: default
batch interactive(1);:col1 << remove formula(); // batch interactive is turned "on"" so we see an error
batch interactive(0);:col1 << remove formula(); // batch interactive is turned off so we can show an error
// the findings:
// default -> dialog (!!!!!)
// 1 -> no dialog
// 0 -> dialogVom JMP-Support habe ich folgende Information erhalten:
Die Funktion Batch Interactive() ist nicht dokumentiert. Das Verhalten kann in verschiedenen Situationen unterschiedlich sein und sich in Zukunft ändern. Tatsächlich kann sie als experimentell und nicht unterstützt angesehen werden.