远程运行带参数的 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。