ツールバーからJSLを実行する以下のコードはスクリプトウィンドウから機能し、基本的に列式を変更する3つの異なる方法です。
カスタムのJMPツールバーから同じコードを実行すると、:: dt:helloworld << set formula( "5");でクラッシュします。
どうしてこれなの?動作は同じではありませんか?
open("$SAMPLE_DATA/Amplitude 100.jmp");
dt = datatable("amplitude 100");
obj = new column("helloworld");
:helloworld << set formula("3");
dt :helloworld << set formula ("4");
::dt:helloworld << set formula ("5");
caption("Hello World");
再:ツールバーからJSLを実行するそれらがエラーであると決定されるならば、それらは現れます。ただし、問題は、コードが機能していないことにあると思います。セッション中に以前に定義したグローバル変数がコードによって検出され続け、スクリプトが意図したとおりに実行されないためです。再:ツールバーからJSLを実行するグローバルエラーがログに表示されないと言っていますか?再:ツールバーからJSLを実行する問題がいくつかあります。 1つは、自分のコードを他のスクリプトなどの影響を受けないように隔離する必要があるということです。それは実行されています。
名前のデフォルトはここにあります(1)。
それをします。
次に、不完全な参照をしていて、それらを実行してもおそらくエラーが発生していませんでした。これらの値はグローバルメモリ空間にあり、それらを削除していなかったからです。
第三に、あなたのコードの文脈では、ステートメント
obj <SPAN class="token operator">=</SPAN> <SPAN class="token function">new column</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token string">"helloworld"</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
OBJはあなたのコードで定義されていなかったので、参照を持たないでしょう。
以下のコードは私のシステムで動作します
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Amplitude 100.jmp" );
dt << New Column( "helloworld", character, set each value( "5" ) );
Caption( "Hello World" );