!--a11y-->

詳細一覧をスクロールするには、SCROLL 命令を使用します。一覧のスクロールセクションに、命令および基本一覧に命令を使用する方法について詳細な説明があります。
SCROLL 命令を詳細一覧に使用する場合、以下の事項に留意する必要があります。
キ SCROLL 命令は、完成した一覧にのみ使用することができます。一覧の最初の出力命令より前に SCROLL を使用した場合、一覧に影響は及びません。一覧の最初の出力命令の後に SCROLL を使用した場合、一覧全体 ( つまり後続のすべての出力命令) に影響が及びます。
キ 二次一覧を登録するときに、INDEX オプションのない SCROLL 命令は常に、インタラクティブイベントが発生した、前に表示された一覧 ( 索引 SY-LISTI) を参照します。
キ 基本一覧を作成するときにだけ、SCROLL 命令は現在作成中の一覧を参照します。
キ INDEX オプションを使用して、既存の一覧レベルを明示的にスクロールすることができます。このために、一覧を表示する必要はありません。ユーザが再度一覧を照会すると、指定された位置にスクロールされます。指定した一覧レベルが存在しない場合、SY-SUBRC は 8 に設定されます。
キ インタラクティブイベント時に、現在作成している一覧をスクロールするには、SY-LSIND を索引として SCROLL 命令に使用します。SY-LSIND を変更した場合、処理ブロックのどこで変更したかに関わらず、この変更はイベントの最後にのみ反映されます。一覧レベルを明示的に設定する場合、処理ブロックの最後の命令でSY-LSIND を変更することができます。これにより、処理ブロック内の SCROLL 命令が正しい一覧にアクセスするようになります。
プログラム内でインタラクティブ一覧をスクロールする別の方法は、SET USER-COMMAND 命令を対応する事前定義済の機能コード (P...) と組み合わせて使用することです。

REPORT demo_list_scroll NO STANDARD PAGE HEADING LINE-SIZE 50.
SET PF-STATUS 'SELECT'.
WRITE 'Create a secondary list by choosing SELECT'.
AT
USER-COMMAND.
NEW-PAGE LINE-SIZE 200.
CASE sy-ucomm.
WHEN 'SELE'.
SET PF-STATUS 'SCROLLING'.
DO 200 TIMES.WRITE sy-index.
ENDDO.
SCROLL LIST RIGHT BY 48 PLACES INDEX
sy-lsind.
sy-lsind = sy-lsind - 1.
WHEN 'LEFT'.
SCROLL LIST LEFT BY 12 PLACES.
WHEN 'RGHT'.
SCROLL LIST RIGHT BY 12 PLACES.
ENDCASE.
このプログラムでは、ステータス SELECT で 1 行から成る基本一覧を作成します。ステータス SELECT で、機能コード SELE ( テキスト SELECT) が機能キー F2 とアプリケーションツールバーのボタンに割り当てられます。
SELECT を選択すると、AT USER-COMMAND イベントがトリガされ、ステータス SCROLLING の詳細一覧が作成されます。ステータス SCROLLING で、機能コード LEFT ( テキスト LEFT) および RGTH ( テキスト RIGHT) が機能キー F5 と F6 およびアプリケーションツールバーに割り当てられます。詳細一覧の長さは 200 文字です。SCROLL 命令は、作成された詳細一覧 (SY-LSIND = 1) を 48 列ずつ右にスクロールします。次に、SY-LSIND の値は 1 ずつ減少し、基本一覧がスクロールされた一覧に置き換わります。
ユーザは、LEFT と RIGHT をクリックして、表示された一覧を左右にスクロールすることができます。SCROLL 命令のプログラムは、AT USER-COMMAND イベント内の対応する機能コードのために指定します。