チャートをJSLの「.jrp」ファイルとして保存<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、みんな
仕事中に、チャートをレポートとして JMP (「.jrp」ファイル) として保存するという要件に遭遇しました。これは、スクリプトの実行中に作成されたチャートです。
JSL でファイルを保存するためのすべてのコードの組み合わせを長い一日試した結果、「レポート」タイプで保存することは推奨されないようです -
ジャーナル (「.jrn」)、.pdf などのみ...
また、フォーラムを検索していると、この件に関して最後に誰かが同じような質問をしたのは 2011 年で、誰も答えていなかったことがわかりました。
それで:
「.jrp」ファイルをjslで保存できますか?
Re: 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 )
);
Re: JSL でチャートを「.jrp」ファイルとして保存するこんにちは、ウェンディさん
良い一日! 私はスクリプトの初心者で、まだ勉強中です。
コードを読んで実行してみます。 "を含めないと、 by(:pin_group) ".. JMP レポートが保存されます
これは私がテストに使用したラインです。
dist= dt << Distribution( Continuous Distribution( Column( :Measurement ),Normal Quantile Plot( 0 ) ), by(:pin_group));
私がやろうとしていることは次のとおりです:
1. 分布を取得する(グループ別~23グループ)
2. ヒストグラムの変更を実行します (両方の軸と参照線を追加 - 生成されたすべてのヒストグラムに対して)
3. JRP (例 - コード)、データテーブルのヒストグラムとして保存します。 >> ここで私は問題に直面しています。
同じレポート内の複数のヒストグラムを JRP として保存するための特定のコードはありますか?
私を教育してください。 ご協力に感謝します。
Re: JSL でチャートを「.jrp」ファイルとして保存するこれは素敵なコードですね。 MSさん、ありがとうございます。 H リスト ボックスと V リスト ボックスを使用して、一方向分散、テーブル、グラフ ビルダーを使用して 1 ページに複数のグラフがある場合、何らかの理由で obj<< get スクリプトでエラーが表示されます。 親ディレクトリを使用する必要がありますか?Re: JSL でチャートを「.jrp」ファイルとして保存するこの質問はかなり頻繁に起こります。残念ながら、レポートを JRP ファイルとして直接保存するための JSL コマンドはありません。これは、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" );
お役に立てば幸いです!
Re: JSL でチャートを「.jrp」ファイルとして保存するコードの背後にある原理について何も考えずに、コードをそのまま受け取ったのだと思います。
関数をテストすると、実際にレポートが保存されますが、レポートが複雑な場合には、未定義の変数が原因でエラーが発生することがよくあります。しかし、この関数が機能する理由の背後にある原理を読んでみましょう。
MS が書いたこと:
自動的に .jrp として保存します。
.jrp は、自動実行される単なる .jsl のように見えます。 コードには、1) 保存されたデータ テーブルまたは埋め込みデータ テーブルへの参照、および 2) レポートを生成するコードが含まれています。 したがって、.jrp を保存するスクリプトを作成するのは非常に簡単です。
(強調のため下線を引いています)
したがって、レポートを生成するスクリプトがある場合は、そのスクリプトを .jsl ではなく .jrp として保存するだけです。
Re: JSL でチャートを「.jrp」ファイルとして保存するこんにちは、ご回答とコードをありがとうございます
時間を割いて私のためにこの機能を構築してくれたことに本当に感謝しています。
問題は、私の環境では実際に動作しないことです... あなたが書いたことは確かに機能します、でも私のためではないニーズ。
いくつかのための理由テーブルを再度保存するだけで、いいえ報告
Re: 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 を保存するスクリプトを作成するのは非常に簡単です。
うまくいきそうな方法の 1 つを次に示します。
// 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" );