コンテンツフレーム起動

改ページのプログラミング 文書を SAP ライブラリストラクチャに組み込む

無条件に改ページを行うには、NEW-PAGE 命令を使用します。

ページの残りの空行数に応じて改ページを行うには、RESERVE 命令を使用します。

無条件改ページ

一覧処理中に改ページを発生させるには、NEW-PAGE 命令の基本形を使用します。

構文

NEW-PAGE.

この命令は以下の処理を行います。

        現在のページを終了します。以後の出力はすべて新しいページに書き込まれます。

        NEW-PAGE の後で現在のページと新しいページに出力が書き込まれる場合にのみ、新しいページを開始します。このとき、SY-PAGNO システム項目の値が 1 インクリメントされます。空ページを作成することはできません。

        END-OF-PAGE イベントをトリガしません。したがって、定義されていてもページフッタは出力されません。

例

REPORT demo_list_new_page LINE-SIZE 40.

TOP-OF-PAGE.

   WRITE: 'TOP-OF-PAGE', sy-pagno.
   ULINE AT /(17).

START-OF-SELECTION.

   DO 2 TIMES.
     WRITE / 'Loop:'.
     DO 3 TIMES.
       WRITE / sy-index.
     ENDDO.
     NEW-PAGE.
   ENDDO.

このサンプルプログラムでは、標準ページヘッダ ( テキストエレメントとして一覧ヘッダ 'Standard Page Header' が定義されています) とユーザ定義ページヘッダを使用しています。両方のページヘッダが各ページに出力されます。

このグラフィックは添付のテキストに説明されています

DO LOOP 中で NEW-PAGE 命令が 2 度実行されますが、実際に改ページが挿入されるのは一度だけです。2 度目の NEW-PAGE 命令の後には、出力がないからです。

条件付き改ページ - 行ブロックの定義

ページの残り行数が一定数より少なくなった場合に改ページを行うには、RESERVE 命令を使用します。

構文

RESERVE <n> LINES.

この命令は、現在の一覧ページで最後出力とページフッタ間の残り空行数が<n> 行を下回ると、改ページをトリガします。<n> には変数を指定することもできます。新しいページを開始する前に、END-OF-PAGE イベントが処理されます。RESERVE 命令は、後続ページに出力が書き込まれる場合のみ実行されます ( 空ページは生成されません)

したがって RESERVE 命令では、まとめて出力する必要のある行ブロックを定義することができます。行ブロックが持つその他の実際上の影響については、相対位置の指定を参照してください。

例

REPORT demo_list_reserve LINE-SIZE 40 LINE-COUNT 8(2).

END-OF-PAGE.

   ULINE.

START-OF-SELECTION.

   DO 4 TIMES.
     WRITE / sy-index.
   ENDDO.

   DO 2 TIMES.
     WRITE / sy-index.
   ENDDO.

   RESERVE 3 LINES.
   WRITE: / 'LINE 1',
         / 'LINE 2',
         / 'LINE 3'.

このサンプルプログラムの標準ページヘッダの一覧ヘッダは 'Standard Page Header' と定義されています。REPORT 命令でページ長が 8 行に設定されます。そのうちの 2 行が標準ページヘッダに使用され、別の 2 行がページフッタ用に予約されます。ページフッタは 横線 1 本と空行 1 行から成ります。したがって、実際の一覧の出力用として ページあたり 4 行残っています。最初の DO ループ でこの 4 行が埋まります。続いて END-OF-PAGE イベントが発生し、その後で新しいページが自動的に開始されます。2 番目の DO ループ後、ページの残り空行数が 3 行を下回っているので、RESERVE 命令が END-OF-PAGE イベントと改ページをトリガします。出力は次のようになります。

このグラフィックは添付のテキストに説明されています

ページ 3 3 行は行ブロックを形成しています。

 

 

コンテンツフレーム終了