LEAVE TO LIST-PROCESSING

LEAVE SCREEN 現在の画面の処理を中止し、次の画面を呼び出す -
LEAVE TO SCREEN 現在の画面の処理を中止し、動的に定義された次の画面を呼び出す -
LEAVE [PROGRAM] 現在のプログラムの処理を停止し、このプログラムが呼び出されたポイントに戻る -
LEAVE TO TRANSACTION -

画面処理からの一覧の起動 

このセクションでは、画面処理から一覧処理に切り替える方法について説明します。最初に技術的概要を簡単に説明し、次に推奨される手順について説明します。

画面処理と一覧処理の切替

画面処理には、CALL SCREEN またはトランザクションコードを使用して開始する画面順序が常に関係します。画面処理中、ABAP プログラムはダイアログプロセッサによって制御されます。ABAP プログラムで、Dynpro 制御ロジックから呼び出された PBO および PAI モジュールが実行されます。

ダイアログプロセッサから一覧プロセッサにコントロールを渡すには、以下の命令を含める必要があります。

LEAVE TO LIST-PROCESSING [AND RETURN TO SCREEN nnnn].

これをいずれかのダイアログモジュールに含めます。この命令は、PBO イベントまたはPAI イベントに含めることができます。これにより、一覧プロセッサが起動し、現在の画面の PAI 処理後に基本一覧が表示されます。基本一覧には、その時点までに実行された PBO および PAI モジュールからの一覧出力すべてが含まれます。

ABAP プログラムの該当イベントブロック (AT LINE-SELECTIONAT USER-COMMAND) で詳細一覧が定義されている場合には、基本一覧でのユーザアクションによって詳細一覧が表示され、その後のインタラクションによってさらに一覧レベルが表示されます。

一覧処理は、以下の 2 つの方法で終了することができます。

 

1,前画面、終了、または取消機能を使用して基本一覧を終了します。
2, 一覧処理中に以下の命令を使用します。

 

LEAVE LIST-PROCESSING.

どちらの場合も、一覧プロセッサからダイアログプロセッサにコントロールが戻ります。コントロールが戻るたびに、一覧システム全体が初期化されます。その後の PBO および PAI モジュールでの一覧出力命令はすべて、空の基本一覧に適用されます。

デフォルトでは、ダイアログプロセッサは一覧プロセッサが呼び出された画面のPBO 処理に戻ります。オプション AND RETURN TO SCREEN を追加すると、現在の画面順序内で処理を再開したい PBO イベントのある別の画面を指定することができます。たとえば、以下の命令を使用するとします。

LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.

この場合、現在の画面順序を終了して、初めに呼び出された地点に戻ることができます。

 

 

推奨手順

画面処理中に一覧を照会するには、呼び出す一覧システムそれぞれに対して個別の画面を登録する必要があります。この画面により、基本一覧の登録と照会がカプセル化されます。そのため、CALL SCREEN を使用してプログラム内の任意の場所から呼び出すことができます。

この画面の実際の画面マスクは、空のままの場合があります。PAI モジュールは不要で、必要なのは 1 つの PBO モジュールだけです。PBO モジュールで、一覧システムの基本一覧を定義し、一覧プロセッサを呼び出します。

1. まず、以下の命令を使用します。
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
この命令により、画面の最後に一覧表示を呼び出し、一覧を終了した後で画面が呼び出された位置に戻ることができます。
2. 次に、デフォルト一覧ステータス SPACE または独自の一覧ステータスなど、一覧の GUI ステータスを設定します。
3. 以下の命令のいずれかを使用して、空の画面が表示されないようにします。
SUPPRESS DIALOG.
または
LEAVE SCREEN. 代わりに、画面の最後に一覧が即座に表示されます。
4. 次に、基本一覧全体を定義し、必要なデータを HIDE 領域に指定します。
一覧でのユーザアクションを処理するには、ABAP プログラムで関連するイベントブロックを定義する必要があります。プログラムで複数の独立した一覧システムを呼び出すには、一覧イベント処理でこれらの一覧システムを区別できるようにする必要があります。一覧のコンテナ画面の番号は常に120 であるため、sy-dynnr を使用してこの区別を行うことはできません。代わりに、異なる GUI ステータスを各一覧に割り当てて、sy-pfkey の値を使用して一覧システムを区別するか、または各一覧システムの HIDE 領域にいくつかの一意な情報を含めることができます。

 
posted @ 2019-03-12 16:10  Park_SAP  阅读(3197)  评论(0编辑  收藏  举报