!--a11y-->

各ページのぺージ長を個別に設定するには、NEW-PAGE 命令を使用します。
NEW-PAGE LINE-COUNT <length>.
この命令は、後続ページのページ長を <length> に設定します。<length> には変数を指定することもできます。<width> をゼロに設定すると、標準ページ長が使用されます ( 標準一覧の構造を参照) 。ページヘッダはページの一部なので、ページ長に含まれます。

NEW-PAGE を使用して、ページフッタを作成したり変更したりすることはできません。REPORT 命令で定義されたページフッタ ( ページ長の設定を参照) は、NEW-PAGE 命令に関係なく、そのまま保持されます。
実際の一覧出力には、<length> からページヘッダ長とページフッタ長を差し引いた長さが利用できます。

NEW-PAGE 命令の LINE-COUNT オプションを使用するときには、ページ長の設定の注釈を参照してください。
ページ長を現在のウィンドウ長に合せるには、<length> を SY-SROWS に設定してください。SY-SROWS システム項目には、現在のウィンドウの行数が格納されています。

REPORT demo_list_new_page_line_c_1 LINE-SIZE 40 LINE-COUNT 0(1).
END-OF-PAGE.
ULINE.
START-OF-SELECTION.
NEW-PAGE LINE-COUNT 5.
DO 4 TIMES.
WRITE / sy-index.
ENDDO.
WRITE: / 'Next Loop:'.
NEW-PAGE LINE-COUNT 6.
DO 6 TIMES.
WRITE / sy-index.
ENDDO.
このプログラムは 5 ページをそれぞれ異なる長さで作成します。一覧ヘッダのテキストエレメントは 'Standard Page Header' と定義されています。REPORT 命令で、ページごとに 1 行をページフッタ用に予約します。ページフッタは、END-OF-PAGE イベントで横線と指定されています。最初の NEW-PAGE 命令はページ長を 5 に、2 番目の NEW-PAGE 命令は 6 に設定します。

最初のNEW-PAGE 命令は、まだ一覧に出力が書き込まれていないため、新しいページを開始しません。標準ページヘッダは、各ページで 2 行を一覧ヘッダとして使用します。ページフッタは 1 行使用します。最初の DO ループで、ページごとに 2 行が WRITE 出力に使用できます。一覧処理がページフッタに達すると、DO ループ内のすべての改ページが自動的に発生します。ここでページフッタが表示されます。2 番目の NEW-PAGE はページ 3 から 4 への改ページを生成します。ここでは END-OF-PAGE イベントは処理されません。2 番目の DO ループでは、ページあたり 3 行を使用して WRITE で出力することができます。改ページが再び自動的に発生します。ページフッタが出力されます。

REPORT
demo_list_new_page_line_c_2 NO STANDARD PAGE HEADING
LINE-SIZE 40 LINE-COUNT 0(2).
TOP-OF-PAGE.
WRITE: 'Top of Page', sy-pagno,
'SY-SROWS:',
sy-srows.
ULINE.
END-OF-PAGE.
ULINE.
WRITE: 'End of Page', sy-pagno.
START-OF-SELECTION.
* NEW-PAGE LINE-COUNT SY-SROWS.
DO 100 TIMES.
WRITE / sy-index.
ENDDO.
このプログラムは、NEW-PAGE 命令がコメントアウトされているため、永久に続く 1 ページを作成します。

長さ 12 行の現在のウィンドウに表示できる最大の数の行が表示されます。上図では、12 行が 2 行のユーザ定義ヘッダ行と 10 行の一覧部分で構成されています。縦にスクロールしても、ページヘッダはそのまま表示されます。NEW-PAGE 命令の前のアスタリスクを削除し、現在のウィンドウ長をそのまま維持すると、次のように出力されます。

今度は一覧が複数のページに分割されています。SY-SROWS にしたがって各ページの長さは 12 行 です。この 12 行 のうち 2 行がページヘッダ用に、2 行がページフッタ用に予約されます。この一覧では、 次ページ を使用して明示的に ( たとえばページ 11 へ ) スクロールすることができます。
