通过 JSL 实现项目的可用性大家好,
我有几个 jsl 脚本,用于处理从数据库获取数据、“操作”以及针对不同任务对这些数据进行分析。
出于组织目的,我喜欢使用“项目”,因为所有数据表、图表和日志等都可以存储在“一个”文件中。
然而,我很难实现相应内容的保存过程的自动化。
所有文件都存储在“工作区”下。 这实际上并未存储在项目中(项目需要将文件存储在“内容”下)。
我找不到一种方法可以让我的脚本自动将文件存储在“内容”下或在后续步骤中将文件移动到那里。
我的基本 JSL 代码(使用 JMP16)如下所示:
1. 版本
project = New Project();
project << Set Window Title( " blahblah " );
Move to Project( destination( project ), windows( {dt1, dt2, dt3} ) );2. 版本
prj = New Project(
run script(
...
)
);
实际上,两者最终都会得到相同的结果,所有文件(数据表和图表)都在工作区下,我需要手动将它们保存在该项目的内容下。
任何有关项目中数据处理的支持/提示将不胜感激!
我也与马丁讨论了这个问题,他建议利用你的知识/经验!
谢谢!
干杯
罗伯特
@马丁德梅尔
自动化和脚本编写内容组织回复:通过 JSL 实现项目的可用性真高兴你做到了!
至于 Journals 不接受 << Save As(),我认为这是 JSL 中的错误。 每当真正明显的语法不起作用时,即使其他不太明显的语法起作用,也请让 JMP 技术支持人员了解这一情况。 他们将提交包含您意见的错误,并将其转发给相应的 JMP 开发人员。 虽然我无法做出具体承诺,但我们高度重视客户报告的问题,因此我们很有可能在下一个版本中解决该问题。
氨基酸
回复:通过 JSL 实现项目的可用性自己发现的...
日记需要像这样保存:
obj << SaveJournal("PATH");谢谢!
罗伯特
回复:通过 JSL 实现项目的可用性嗨亚伦,
这对数据表有很大帮助!
谢谢!
但是,我还有一本日记,我想将其保存在目录下(手动没有问题,但我希望 JSL 为我做这件事......)。
期刊好像不行?
您建议的方法仅适用于数据表吗? (可能我错过了一些东西......)
谢谢!
罗伯特
// Initialization
Names Default To Here( 1 );
dt = Open("$SAMPLE_DATA/Big Class.jmp");
w = dt << Run Script("Bivariate");
obj = w << Journal;
jrn = Current Journal();
jrn << Set Window Title( "Journal" );
prj = New Project();
Move to Project( destination( prj ), windows( {dt, w, jrn} ) );
prj << Run Script(
Create Directory("$PROJECT/my folder");
Data Table("Big Class") << Save As("$PROJECT/my folder/Big Class.jmp");
Current Journal() << Save As("$PROJECT/my folder/Journal.jrn");
);
回复:通过 JSL 实现项目的可用性在 JSL 中将内容保存到项目内容的最简单方法是通过 $PROJECT 特殊目录,该目录几乎可以在每个使用路径的 JSL API 中使用(类似于 $SAMPLE_DATA、$DESKTOP 等)。
$PROJECT 仅在项目内部定义,因此通过 JSL 创建项目时,它必须位于 Run Script() 命令内部:
prj = New Project(
Run Script(
dt = new Table("My table");
dt << Save As("$PROJECT/my table.jmp");
)
);
或者像这样:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
w = dt << Run Script("Bivariate");
prj = New Project();
Move to Project( destination( prj ), windows( {dt, w} ) );
prj << Run Script(
Create Directory("$PROJECT/my folder");
Data Table("Big Class") << Save As("$PROJECT/my folder/Big Class.jmp");
);
甚至:
prj = New Project();
prj << Run Script(
Copy File("$SAMPLE_DATA/Big Class.jmp", "$PROJECT/data/Big Class.jmp");
);
希望有帮助!
氨基酸