Tabellenskript – abgeschlossen?Wie kann ich beim Auslösen eines Tabellenskripts aus einem anderen Skript überprüfen, ob ein Tabellenskript abgeschlossen wurde (ohne Fehler)?
Das Hinzufügen einer Rückgabefunktion ist nicht zulässig:

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << run Script( "Bivariate" );
dt << New Script(
"test", JSL Quote(
print(1);
return(1);
),As String( 1 ));
dt << New Script(
"test2", JSL Quote(
New Namespace("myScript");
myScript:finished=0;
print(1);
myScript:finished=1;
),
As String( 1 )
);
If( Not( dt << run Script( "test" ) ),
Stop()
);
dt << run Script( "test2" );
If( Not( myScript:finished ),
Stop()
);
Automatisierung und SkripterstellungBetreff: Tabellenskript – abgeschlossen?dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << deletescripts( "test" );
dt << New Script(
"test", JSL Quote(
if(test<0,
0 // either this is the last value from the if
,
print("ok");
1 // or this is the last value from the if
); // the if() value is either 0 or 1
), // the script's value is the last statement executed value
As String( 1 )
);
test = 37;
Show( test, dt << run Script( "test" ) ); // "ok",1
test = -42;
Show( test, dt << run Script( "test" ) ); // 0
Bearbeiten: include() funktioniert auf die gleiche Weise.
Betreff: Tabellenskript – abgeschlossen?Oh, so einfach 
Danke @Craige_Hales
Betreff: Tabellenskript – abgeschlossen?Bei den Funktionen gibt es keinen Unterschied zwischen den beiden Varianten?
testFunc1= Function({},return(1));
testFunc2= Function({},1);
show(testFunc1);
show(testFunc2);Betreff: Tabellenskript – abgeschlossen?return(1) hat einen großen Vorteil, wenn es in for-Schleifen und if-Anweisungen verschachtelt ist: Es gibt die Antwort zurück, ohne dass eine andere Positionierung erforderlich ist, um der letzte ausgewertete Ausdruck zu sein. Die Implementierung von return(1) in C++ ist langsamer, als nur mit dem gewünschten Ausdruck zu enden; Sie werden es an kurzen Funktionen bemerken, die millionenfach aufgerufen werden. In Ihrem Beispiel tendiere ich also zum Schreiben
testFunc2= Function({},
/*return*/ 1
);
mit dem Kommentar. Oder verwenden Sie return(1), wenn Klarheit wichtiger ist. Die Anweisungen break() und continue() funktionieren weitgehend gleich. Es ist perfekt, sie aus Gründen der Klarheit oder auf eine Art und Weise zu verwenden, bei der sie nur selten ausgeführt werden.
Betreff: Tabellenskript – abgeschlossen?Gute Idee mit dem /*return*/-Kommentar.
Eine meiner „1“ habe ich bereits gelöscht – weil sie so unnötig aussah 
Einige Tage später, ohne die direkte Verbindung zur gelöschten „1“, war es ziemlich schwierig herauszufinden, was falsch läuft ...