ODS RTFのページ番号表示を調整する

[OS] ALL
[リリース] SAS 8.2以降
[キーワード] ODS, RTF, page number, n of n

[質問]

ODSを使用し、RTF形式で複数ページの出力結果を得る際に、ページ番号を「1 of n」、「2 of n」のように表示することはできますか。

[回答]

ODSの「In-line Formatting Function」を利用することで、ページ番号表記を編集することが可能です。
SAS9では「{thispage}」Functionと、「{lastpage}」Functionを利用し、たとえばタイトル行やフットノートなどに、簡易な定義のみで出力することが可能です。また、ODSのPDF形式での出力においても、同じ指定で対応することができます。
SAS 8.2では、PDF出力には対応していませんが、RTF形式の出力では「In-line Formatting Function」として、直接「RTFの制御コード」を記述することにより、ページ番号表記を編集することが可能です。

※ ODSの「In-line formatting function」は、SAS8.2およびSAS9.1では評価版の機能です。

以下の例では、ページ番号をタイトル行に右寄せで表示していますが、フットノートでも指定できます。また、左寄せや中央寄せにすることもできます。行揃えは、TITLEステートメント、FOOTNOTEステートメントでJ(JUSTIFY)オプションを指定して制御できます。

例:ODS RTFでの指定例(SAS 9.1)


  ODS ESCAPECHAR='^'; 
  ODS RTF FILE='c:¥temp¥test.rtf'; 
  OPTIONS NONUMBER; 
  TITLE 'タイトル' J=R 'Page ˆ{thispage} of ˆ{lastpage}'; 
  PROC PRINT DATA=sashelp.air; 
  RUN; 
  ODS RTF CLOSE; 

例:ODS RTFでの指定例 (SAS 8.2およびSAS 9.1)


  ODS RTF FILE='c:¥temp¥test2.rtf';
  OPTIONS NONUMBER; 
  TITLE 'タイトル' J=R
  "{¥field{¥*¥fldinst {¥b¥i PAGE }}}¥~{¥b¥i of}¥~{¥field{¥*¥fldinst
          {¥b¥i NUMPAGES }}}";
  PROC PRINT DATA=sashelp.air; 
  RUN; 
  ODS RTF CLOSE;