遠程運行帶參數的 JSL 腳本你好,
我們目前有一個 JMP 腳本,我們運行它來進行數據分析/報告。 我想在數據採集結束時觸發這個腳本(通過 ActiveX 的 LabVIEW)。 我找到了 RunJSLFile 函數,但它只有文件路徑作為輸入。
我如何實現將參數傳遞給 JMP 以便在腳本中使用(標識零件號的字符串)? 我是否需要使用 RunCommand 創建一個全局變量然後由腳本使用? 如果是這樣,命令會是什麼樣子?
謝謝你。
Re: 遠程運行帶有參數的 JSL 腳本PS:如果您可以從 labview/ActiveX 中訪問 RunCommand,您可以完全跳過 vbs 文件並將該代碼放入您現有的應用程序中。
Re: 遠程運行帶有參數的 JSL 腳本你的問題有幾個方面。第一個是遠程啟動 JMP 的問題,第二個是法律問題。有多種方法可以在遠程計算機上啟動 JMP 會話。其中大部分將由操作系統功能處理,並且與您編寫的應用程序有關。
第二個是許可問題。 您需要確保運行此遠程 JMP 會話的每個人都包含在您的許可協議中,以便獲得授權/許可運行 JMP。
Re: 遠程運行帶有參數的 JSL 腳本是的,有一些關於 OLE 自動化的文檔,我已經通讀了其中的大部分。雖然對於啟動 .jmp 文件等一般任務很有幫助,但它似乎缺乏與其他程序交互的廣泛可能性。某處有更詳細的文檔嗎?
例如,我能否通過網絡訪問已安裝 JMP 的計算機從計算機(未安裝 JMP)遠程啟動 JMP 腳本?或者它是否需要一些屬於 JMP 安裝的文件(例如 jmp.tlb)?
Re: 遠程運行帶有參數的 JSL 腳本http://www.jmp.com/support/help/OLE_Automation.shtml有文檔Re: 遠程運行帶有參數的 JSL 腳本您可以在 JSL 腳本中包含“main”函數,將其包含在由 vbscript 調用的 JMP 會話中,然後使用參數調用腳本中的 main 函數。這是一個例子:
.vbs 文件:
'Create the JMP application object
set jmp = Wscript.CreateObject("JMP.Application")
'read the existing jsl script
jmp.RunCommand("include( ""C:/ScriptWithParam.jsl"" );")
'set parameter values
param1 = "some value"
'Run a function inside the script
jmp.RunCommand("MakeTable( """ & param1 & """ );")
JSL文件:
MakeTable = function({param1 = "2"},
result = 1;
colvalues = {"Your value was",Char(param1)};
colvalues = Eval List(colvalues);
New Table( "test",
Add Rows( 2 ),
New Column( "Column 1",
Character,
"Nominal",
Set Values( colvalues )
)
);
show(param1);
result = 0;
Return(result);
);Re: 遠程運行帶有參數的 JSL 腳本這看起來是一種可行的方法,並且對於包含要分析的數據的表非常有用。 此應用程序略有不同,因為我們處理存儲在 JMP(SQL 數據庫)外部的數據。 我可以創建一個表來包含腳本(本質上是一個包裝器),但我認為對於這個應用程序應該有更好的方法。
有問題的腳本當前不包含在表中。 它是一個獨立的 *.jsl 文件,其中包含自定義編寫的函數,用於從各種 SQL 查詢加載數據、生成多個表格和圖形,然後將圖形收集到日誌中。
如果我執行 jmp.RunCommand("ID = "12345";") ,這會創建一個腳本可以看到的全局變量..通過運行
在各種函數中使用 ::ID 的 jmp.RunJSLFile("")?
Re: 遠程運行帶有參數的 JSL 腳本我相信其他人可以更優雅地做到這一點,但這是一種使用 vbscript 的方法。
將其粘貼到 Windows 計算機上的 .vbs 文件中。
'Create the JMP application object
set jmp = Wscript.CreateObject("JMP.Application")
'Open a data table that already contains your script
set jmpdoc = jmp.OpenDocument("C:/test.jmp")
'Make it visible for demo
jmpdoc.Visible = True
'Set a table variable to be your 'parameter'
jmp.RunCommand("current data table() << Set Table Variable( ""input"", 20); ")
'Run the script
jmp.RunCommand("eval(Current Data Table() << Get Table Property( ""add Column"" ));")
然後在您的 C 驅動器中創建一個名為 test.jmp 的數據表,其中包含一個名為“add Column”的已保存腳本:
dt = current data table();
val = dt << Get Table Variable("input");
New Column( "Column 2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Values( {val, val, val} )
);
雙擊 vbs 文件,您應該會看到一個新列,其中三行設置為 20。