在 JSL 中将图表保存为“.jrp”文件<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />嗨,大家好
在工作期间,我遇到了将图表另存为 JMP(“.jrp”文件)中的报告的要求 - 这是在脚本运行期间创建的图表。
经过一整天的尝试在 JSL 中保存文件的所有代码组合后,似乎没有推荐以“报告”类型保存 -
仅期刊(“.jrn”)、.pdf 和其他...
另外,在论坛中搜索时,我发现上次有人在该主题中提出类似问题是在 2011 年,但没有人回答。
所以:
我可以在 jsl 中保存“.jrp”文件吗?
回复:在 JSL 中将图表保存为“.jrp”文件在 JMP 16 中<<保存窗口报告消息会将报告保存为 .JRP 文件。
Names Default To Here( 1 );
//This message can be sent to any display box object but will be applied to the report window
Open( "$SAMPLE_DATA/Big Class.jmp" );
d = distribution( Column( :height ) );
d << Save Window Report(
"$DOCUMENTS/test.jrp",
embed data( 1 )
);
回复:在 JSL 中将图表保存为“.jrp”文件嗨温迪,
再会! 我是脚本编写新手,仍在学习中。
我读了你的代码并尝试执行它。 我意识到如果我不包括“通过(:pin_group) “..它将保存 JMP 报告
这是我用于测试的线路。
dist= dt << 分布( 连续分布( 列( : 测量 ), 正态分位数图( 0 ) ), by(:pin_group));
我想做的是:
1. 获取分布(按组~23组)
2. 对直方图进行修改(两个轴并添加参考线 - 对于生成的所有直方图)
3.另存为JRP(您的示例-代码),带有数据表的直方图。 >> 这就是我面临的问题。
是否有特定的代码可以在同一报告中保存为具有多个直方图的 JRP?
请赐教。 感谢并感谢您的帮助!
回复:在 JSL 中将图表保存为“.jrp”文件这是一个很好的代码。 谢谢女士。如果我在一页中有多个图形,并且使用 H 列表框和 V 列表框进行单向分布、表格和图形生成器,则出于某种原因 obj<< get 脚本会显示错误。 我必须使用父目录吗?回复:在 JSL 中将图表保存为“.jrp”文件这个问题经常出现。不幸的是,没有 JSL 命令可以将报告直接保存为 JRP 文件。之前已建议将此功能作为 JMP 未来版本中考虑的一个功能。
如前所述,JRP 文件只是一个包含 JSL 代码的文本文件。您可以从平台中提取脚本,然后使用“保存文本文件”将文件路径和脚本保存到具有 JRP 文件扩展名的文本文件中。这是一个更简单的示例,可能有助于澄清:
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
dist = dt << Distribution(
Continuous Distribution( Column( :weight ) ),
Nominal Distribution( Column( :age ) )
);
distScript = dist << Get Script;
Save Text File(
"C:\temp\DistributionScript.jrp",
"//!
Open( \!"$SAMPLE_DATA\Big Class.jmp\!" );"
||
Char( Name Expr( distScript ) )
);
Close( dt, No Save );
Wait( 2 ); //For demonstration purposes
Open( "C:\temp\DistributionScript.jrp" );
希望有帮助!
回复:在 JSL 中将图表保存为“.jrp”文件我认为你只是拿了代码而没有考虑其背后的原理。
通过测试该函数,它确实保存了报告,但如果您的报告很复杂,则经常会由于未定义的变量而出现错误。但让我们来了解一下该函数工作原理。
MS 写的内容:
自动另存为 .jrp:
.jrp 似乎只是自动运行的 .jsl。 该代码包含 1) 对已保存数据表或嵌入数据表的引用,以及 2) 用于生成报告的代码。 因此,编写保存 .jrp 的脚本应该非常简单。
(下划线是为了强调)
因此,如果您有一个生成报告的脚本,只需将该脚本另存为 .jrp 而不是 .jsl。
回复:在 JSL 中将图表保存为“.jrp”文件您好,感谢您的回答和代码
我真的很感谢您花时间为我构建了这个功能,
问题是它在我的条件下不起作用...... 你写的确实有效但不适合我的需要。
对于一些原因它只是再次保存表格并且没有报告
回复:在 JSL 中将图表保存为“.jrp”文件另存为 .jrp 并具有一定的交互性:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = Bivariate( Y( :Weight ), X( :Height ) );
Wait(1);
biv<< Bring Window To Front;
Main Menu( "Save As" );
自动另存为 .jrp:
.jrp 似乎只是自动运行的 .jsl。 该代码包含 1) 对已保存数据表或嵌入数据表的引用,以及 2) 用于生成报告的代码。 因此,编写保存 .jrp 的脚本应该非常简单。
这是一种似乎有效的方法:
// Function to save .jrp
Save_jrp = Function( {dt, obj, dir, filename},
{embed_data = 0}, // Switch between embedded and referenced data table.
Save Text File(
dir || filename || ".jrp",
If( embed_data,
Char(
Eval Expr(
Expr( dt << get script );
Expr( obj << get script );
)
),
Char(
Eval Expr(
Open( Expr( dt << get path ) );
Expr( obj << get script );
)
)
)
)
);
// Define example input data: data table, report, path and file name
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = Bivariate( Y( :Weight ), X( :Height ) );
dt = biv << get data table;
biv << set window title( "MyReport" );
fname = biv << get window title;
path = Get Default Directory();
// Run function
Save_jrp( dt, biv, path, fname );
// Test if it worked
Close( dt, no save );
Wait( 1 );
Open( path || fname || ".jrp" );