Proc OdstableはProc Reportでできる機能をほぼすべて実装可能なうえに,構文がよりシンプルであり,個人的には完全な上位互換だと思っています
ただ,RTFを作成する際の大きな弱点として,Proc ReportのbreakがOdstableにはなく任意の位置での改ページができないことがありました.
2018年にSASユーザー総会で「PROC ODSTABLEを用いた帳票作成」という論文が発表されていますが,そちらでもその点書かれていました.
8年間色々,チャレンジしてきましたが,最近また向き合う機会があり,一応実装できたので共有.
data output;
set sashelp.class;
if mod(_N_,3)=0 then break ="Y";
keep Name Age break;
run;
↑
break="Y"の直前のレコードまで出力して,Yのレコードから次ページにうつるようにしてみます
ods rtf ;
proc odstable data=output ;
column Name Age break ;
cellstyle break="Y" as data{PRETEXT="(*ESC*)R'\pagebb' " };
define Name; end;
define Age; end;
define break; print=no; end;
run;
ods rtf close;
なんとたったのこれだけで
みたいに,改ページできていることがわかります
結局種がわかってしまえば簡単で,インラインフォーマット関数に改ページがあることと
print=noでも,RTFに埋め込みさえすれば作動するのでcellstylesのPRETEXTで入れてしまえばいいということでした
0 件のコメント:
コメントを投稿