2014年12月8日月曜日

レポート作成インターフェイス(RWI)入門5



RWIで、複数の表を好きな位置に配置する方法を紹介。

ods html close;
ods pdf file="出力するファイルのパス\test.pdf";

data _NULL_;
  dcl odsout ob();

  * レイアウト設定開始 ;
  ob.layout_absolute();

     * 1個目の表を配置 ;
     ob.region( x:'1cm', y:'1cm' );
     ob.table_start();
         ob.row_start();
            ob.format_cell(data:"aa");
            ob.format_cell(data:"bb");
         ob.row_end();
     ob.table_end();

     * 2個目の表を配置 ;
     ob.region( x:'5cm', y:'2cm' );
     ob.table_start();
         ob.row_start();
            ob.format_cell(data:"cc");
           ob.format_cell(data:"dd");
         ob.row_end();
     ob.table_end();

  ob.layout_end();
run;

ods pdf close;
ods html;


結果




解説


今回使うlayout_absoluteメソッドは、マニュアルにPRINTER出力のみ対応してるよと書いてあります。
なので、HTML出力を閉じておき、PDFファイルに出力します。

  ods html close;
  ods pdf file="出力するPDFファイルのフルパス";


好きな位置に配置するためのレイアウトを開始。

  layout_absolute()


表を配置する前にregionメソッドで領域の出力位置を設定。
ただ、いまいち分からないのが、例えば位置を5cmと設定して、出力されたpdfを倍率100%にして見ても5cmのところに配置されてるわけでもなさそう?。。どういう基準で配置されてるのかよく分からないです。

  region( x : 'xの位置' ,  y : 'yの位置' )


レイアウト設定を終了させます。

  layout_end()


PDF出力を閉じて出力完了。あと最後にデフォルトの出力先をHTMLにしてます。

  ods pdf close;
  ods html;


イメージとしては、スクラップブックのように、いろんな表やグラフを好きな位置にペタペタ貼る感じです。


また別の記事で、応用例(遊び)を紹介したいと思います。



RWI入門記事一覧
1.基本構文
2.データセットの中身を出力する
4.複数の表を並べる
5.複数の表を好きな位置に配置する

0 件のコメント:

コメントを投稿