透過 Run Script() 執行 Graph Builder 腳本時,自訂函數無法辨識;但手動執行時可以正常運作。我創建了一個自訂 JSL 函數並將其載入到全域環境中。然後,在圖表構建器介面中,我使用“自訂腳本”功能將此函數整合到圖表腳本中。之後,我將圖表建構器腳本儲存到資料表中(作為表腳本)。
當我從數據表中手動運行圖形生成器腳本(通過單擊表格中的腳本按鈕)時,一切都運行良好——自定義函數被識別,圖形也正確生成。
但是,當我嘗試使用程式設計方式執行同一個表格腳本時,卻遇到了問題。 Run Script() 函數(例如, dt << Run Script("Graph Builder")腳本運行失敗,因為它找不到我的自訂函數。看起來… Run Script() 腳本在一個隔離的上下文中執行,該上下文無法存取我全域定義的函數。
names default to here(1);
dt=current data table();
dt<
<RUN script=""></RUN>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AggregateHare95_0-1781704169868.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="AggregateHare95_0-1781704169868.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="AggregateHare95_0-1781704169868.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="AggregateHare95_0-1781704169868.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/106823i91CFAE42C2887E25/AggregateHare95_0-1781704169868.png" role="button" title="AggregateHare95_0-1781704169868.png" alt="AggregateHare95_0-1781704169868.png" /></span></SPAN></SPAN></SPAN></P> <P class="ds-markdown-paragraph"><SPAN class="">有趣的是,JMP 內建函數可以正常識別,但我自訂的函數卻無法識別。</SPAN></P> <P class="ds-markdown-paragraph"><SPAN class="">有其他人遇到過這種情況嗎?有什麼辦法可以解決這個問題嗎?<SPAN> </SPAN></SPAN><CODE>Run Script() 如何在同一個全域命名空間中執行表格腳本,以便我的自訂函數可見?任何解決方法或解釋都將不勝感激。
<LINGO-LABS id="lingo-labs-954243" slang="en-US" mode="CREATE">
<LINGO-LABEL>自動化和腳本編寫</LINGO-LABEL>
</LINGO-LABS>
回覆:透過 Run Script() 執行 Graph Builder 腳本時自訂函數無法識別,但手動運行可以正常運作。您可以在表格腳本中的函數呼叫前加上 `::`(或 `global:`),以便從全域命名空間存取它。您也可以考慮使用「新自訂函數」/命名空間來建立函數,並相應地修改表腳本。
回覆:透過 Run Script() 執行 Graph Builder 腳本時自訂函數無法識別,但手動運行可以正常運作。謝謝老兄!你真是個天才──這麼簡單的解決方法,竟然完美奏效了。