テーブルスクリプト - 完了しましたか?別のスクリプトからテーブル スクリプトをトリガーする場合、テーブル スクリプトが (エラーなしで) 完了したかどうかを確認するにはどうすればよいですか?
return 関数の追加は許可されていません:

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()
);
自動化とスクリプト作成Re: テーブルスクリプト - 完成しましたか?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
edit: include() も同じように機能します。
Re: テーブルスクリプト - 完成しましたか?ああ、とてもシンプルです:)
ありがとう@Craige_Hales
Re: テーブルスクリプト - 完成しましたか?関数に関しては、2 つのバリアントに違いはありませんか?
testFunc1= Function({},return(1));
testFunc2= Function({},1);
show(testFunc1);
show(testFunc2);Re: テーブルスクリプト - 完成しましたか?return(1) には、for ループや if ステートメント内にネストされている場合に大きな利点があります。つまり、最後に評価される式になるように配置する必要がなく、答えを返します。 C++ での return(1) の実装は、単に目的の式で終了するよりも遅くなります。何百万回も呼び出される短い関数に気づくでしょう。 したがって、あなたの例では、私は次のように書く傾向があります
testFunc2= Function({},
/*return*/ 1
);
コメント付きで。 または、明確さがより重要な場合は return(1) を使用します。 Break() ステートメントと continue() ステートメントはほぼ同じように機能します。 わかりやすくするためにこれらを使用するか、頻繁に実行しない方法で使用するのが最適です。
Re: テーブルスクリプト - 完成しましたか?/*return*/ コメントを使った素晴らしいアイデアです。
「1」の 1 つはすでに削除しました - あまりに不必要に見えたので 
数日後、削除された「1」と直接関係がなかったので、何が問題なのかを見つけるのは非常に困難でした...