透過另一個腳本將jsl腳本載入到資料表中你好,
我有幾個腳本(XXX.jsl)用於產生單獨的報告,每個報告內都包含許多圖表。我還有第二個腳本,它從 exel 檔案加載數據,修改生成的 JMP 表並保存該表。
我有興趣在第二個腳本中包含一個部分,該部分從資料夾載入這些報告腳本,並使其在 JMP 表的左上角框中可用。
我這樣做是因為我創建了一個 JMP 腳本,我的同事應該會用到。他們只需更改 Excel 文件的文件路徑並運行該腳本即可。這樣他們就能獲得 JMP 表,並根據當前表選擇運行報告。
我確信有一個選項,但目前的方法例如 include() 失敗或 << 將腳本儲存到資料表失敗。
自動化和腳本回覆:透過另一個腳本將 jsl 腳本載入到資料表中這是一個簡單的例子,它將文件中的文字作為表格腳本添加到表中
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
dt << Delete Scripts(dt << Get Table Script Names); // demo
script_txt = Load Text File("$SAMPLE_SCRIPTS/chaosGame.jsl");
Eval(EvalExpr(
dt << New Script("S",
Expr(Parse(script_txt))
);
));
如果您希望保留評論,則會稍微複雜一些。
編輯:此外,如果不需要註釋,您可以使用 Include 和 << Parse Only
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
dt << Delete Scripts(dt << Get Table Script Names); // demo
script_expr = Include("$SAMPLE_SCRIPTS/chaosGame.jsl", << parse only);
Eval(EvalExpr(
dt << New Script("S",
Expr(Name Expr(script_expr))
);
));
回覆:透過另一個腳本將 jsl 腳本載入到資料表中非常感謝您的快速回覆。
您能否進一步解釋一下這個解決方案?
使用“名稱預設為此處(1)”;您可以設定本機名稱空間。
然後打開一個 jmp 表並刪除打開的表附帶的腳本,對嗎?
接下來是處理需要載入的腳本的部分。你定義了變數 script_txt,它應該表示從指定目錄載入的文字檔案。最後五行程式碼是做什麼的,可以解釋一下嗎?
我總是喜歡詳細了解程式碼的功能。這有助於我在實現過程中避免一些簡單但致命的錯誤。
回覆:透過另一個腳本將 jsl 腳本載入到資料表中我建議閱讀JMP 腳本指南來了解基礎知識。
- 關於名稱預設為此處(1);您應該始終以此來啟動您的腳本, 腳本指南>程式設計方法>進階作用域和命名空間。
- 打開表格和刪除腳本只是為了演示目的,以便更容易展示正在發生的事情。
- 最後的部分是使用表達式評估來確保以正確的格式將腳本放入表中,以便於運行, 腳本指南>程式方法>高級表達式,巨集和列表。
回覆:透過另一個腳本將 jsl 腳本載入到資料表中太棒了,謝謝你,它真的有效!非常感謝你的解釋。