在 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" );