從工具欄運行JSL下面的代碼來自腳本wondow,基本上有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");
Re:從工具欄運行JSL如果他們被確定為錯誤,他們確實會出現。但是,我認為問題在於您的代碼無法正常工作,那麼您在會話期間之前定義的全局變量將繼續被您的代碼找到,從而使您的腳本無法按預期執行。Re:從工具欄運行JSL您是說全局錯誤未顯示在日誌中?Re:從工具欄運行JSL有幾個問題。 首先,您需要隔離代碼,使其免受其他腳本等的影響。正在運行。
名稱默認為此處(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" );