2017年9月25日月曜日

【PROC REPORT】RTF出力時の細かい罫線の設定



PROC REPORTでRTF出力する際に、セル毎の細かい罫線(線種・色・太さ)を設定する方法を紹介します。



まず罫線の設定を表すスタイル属性は以下の3つです。



罫線のスタイル属性

  設定内容  指定   指定できる値
  罫線の色 

  BorderxxColor = 
  
   black, white …など 

  罫線の幅 

  BorderxxWidth = 

   1pt, 2pt …など

  罫線の線種 

  BorderxxStyle =

   dashed, dotted, double, hidden, solid …など 


xx部分にはセルのどの位置に罫線を設定するかを指定
「Right」「Left」「Top」「Bottom」が入る





例① 特定の列に罫線を引く


工程1
まずは以下の記事で紹介している方法でざっくりとレポート全体の罫線の引き方を変更します。

(PROC TEMPLATE使って全体の罫線やフォントをあらかじめ設定しといてもOK)

ods rtf file='出力するパスを指定\test.rtf';

proc report data=sashelp.class nowd
           style(report)=[rules=groups frame=hsides]
           style(header)=[background=white];
      column name sex age ;
run;

ods rtf close;



工程2
次に個別に細かい罫線を引いていきます。
たとえば、変数NAME の右に縦罫線を入れたいとします。

以下の記事も参考に罫線を入れてみます。
REPORTプロシジャ入門8:書式の設定【STYLE=】

ods rtf file='出力するパスを指定\test.rtf';

proc report data=sashelp.class nowd
           style(report)=[rules=groups frame=hsides]
           style(header)=[background=white];

     column name sex age ;
     define name / style(header column)={BorderRightColor=black
                                                                BorderRightStyle=double
                                                                BorderRightWidth=1pt};
run;

ods rtf close;







例② 特定の行に罫線を引く


以下の記事を参考に「AGE > 13」の行だけセルの下に罫線を引いてみます。
REPORTプロシジャ入門9:特定セルの書式設定【CALL DEFINE】


ods rtf file='出力するパスを指定\test2.rtf';

proc report data=sashelp.class nowd
           style(report)=[rules=groups frame=hsides]
           style(header)=[background=white];

     column name sex age ;
     compute AGE;
        if AGE.sum > 13 then
                call define(_row_,"style","style(calldef)={BorderBottomColor=black
                                                                                BorderBottomStyle=solid
                                                                                BorderBottomWidth=1pt}");
     endcomp;
run;

ods rtf close;






例③ 2段以上のヘッダーの罫線

以下をご覧ください。

ods rtf file='出力するパスを指定\test2.rtf';

proc report data=sashelp.class nowd
           style(report)=[rules=groups frame=hsides]
           style(header)=[background=white];
   column name ("Height and Weight" height weight);
run;

ods rtf close;



上のレポートで、ヘッダーが2段になっている「Height and Weight」の下に罫線を引きたいとします。

以下記事を参考に罫線を入れてみます。
ODS出力時に文字の書式設定をする【インラインフォーマット関数】

ods escapechar="~";
ods rtf file='出力するパスを指定\test2.rtf';

proc report data=sashelp.class nowd
           style(report)=[rules=groups frame=hsides]
           style(header)=[background=white];

       column name ("~S={BorderBottomColor=black
                                        BorderBottomStyle=solid
                                        BorderBottomWidth=1pt}Height and Weight"  height weight);
run;

ods rtf close;




0 件のコメント:

コメントを投稿