!--a11y-->

論理データベースの構造を表示または変更するには、論理データベースビルダの第一画面で 選択を選択するか、または別のコンポーネントから選択インクルードにナビゲートします。
選択インクルード名は DB<ldb>SEL となり、<ldb> は論理データベース名を表します。このインクルードプログラムは、INCLUDE 文を使用してデータベースプログラム内に 組み込まないでください。代わりに、実行時環境が論理データベースを生成する際、データベースプログラムおよび対応するプログラム内に選択インクルードがインクルードされます。
選択を編集しようとした時点で、既存の選択インクルードがない場合は、システムがこれを生成します。これには、構造内の全データベーステーブル (T 型のノード) に対する SELECT-OPTIONS 文が含まれます。各データベーステーブルに対し、一次キー内の全項目に対する選択基準の提案が生成されます。
この SELECT-OPTIONS 文はコメントアウトされ、選択基準名の代わりに疑問符が挿入されます。使用するすべての選択基準に対し、選択基準名を入力して、コメント文字 (*) を削除する必要があります。
また、検索ヘルプが論理データベースに指定されている場合は、対応する PARAMETERS 文が、AS SEARCH PATTERN 追加オプションと共に生成されます。これで、 検索ヘルプを使用する選択という名前のグループボックスが選択画面に表示され、検索ヘルプ ID および検索文字列を入力するための入力項目が表示されます。また、複合検索ヘルプに対する押ボタンも表示されます。この機能を選択すると、各項目に複合選択を入力できます。
最後に、T または S 型のノードに対し、 動的選択および項目選択のための SELECTION-SCREEN 文が生成されます (構造定義によって許可されている場合)。
デフォルトの要素に加え、以下の文を使用して選択画面を拡張することができます。
キ PARAMETERS 文とその追加オプションを使用すると、個別値の入力項目を追加できます。これらの文は、プログラムフローの制御などに使用できます。選択インクルードには、PARAMETERS 文で、FOR NODE または FOR TABLE 追加オプションを使用する 必要があります。NODE は、すべてのノード型に対して使用できます。TABLE は、T 型のノードにのみ使用できます。選択画面の生成時には、実行可能プログラムで NODES または TABLES 文によって宣言されたノード、または LDB_PROCESS 汎用モジュールによって要求されたノードだけに対して項目が生成されます。
キ SELECTION-SCREEN 文を使用すると、選択画面をフォーマットできます。
キ 次の文を使用すると、
SELECTION-SCREEN DYNAMIC SELECTIONS FOR NODE|TABLE <node>.
動的選択のためのノードをさらに定義できます。T 型のノードには、NODE の代わりに TABLE を使用できます。これで、ユーザは実行時に、選択を入力するためのノードのコンポーネントを決定できるようになります。動的選択を使用するには、データベースプログラム内で特別な処理が必要になります。
キ 次の文を使用すると、
SELECTION-SCREEN FIELD SELECTION FOR NODE|TABLE <node>.
項目選択のためのノードをさらに定義できます。T 型のノードには、NODE の代わりに TABLE を使用できます。実行可能プログラムにおいて、GET 文内で項目一覧を使用すると、論理データベースのどのノードの項目を読み込むかを指定できます。汎用モジュール LDB_PROCESS では、FIELD_SELECTION パラメータをこのとおりに渡す必要があります。動的選択を使用するには、データベースプログラム内で特別な処理が必要になります。
キ 次の文を使用すると、
SELECTION-SCREEN BEGIN OF VERSION <dynnr>
...
SELECTION-SCREEN EXCLUDE <f>.
...
SELECTION-SCREEN BEGIN OF VERSION <dynnr>.
1000 未満の画面番号 <dynnr> により、別バージョンの選択画面を作成できます。<f> に指定した選択基準またはパラメータに対応する入力項目を、非表示にすることができます。これにより、実行可能プログラムで、適切なバージョンの選択画面を処理できるようになります。
DB<dba>SEL 選択インクルードに対し、構文エラーをチェックするには、第一画面で チェックを選択します。データベースプログラムの編集中にチェックを選択しても、選択インクルードの構文がチェックされます。

論理データベース TEST_LDB が、以下の 構造を持つとします。

これに対して生成されるデフォルトの選択インクルードは、次のようになります。
*-----------------------------------------------------------*
* Include DBTEST_LDBSEL
* It will be automatically included into the database program
*-----------------------------------------------------------*
* If the source is automatically generated,
* please perform the following steps:
* 1.
Replace ? by suitable names (at most 8 characters).
* 2. Activate SELECT-OPTIONS and PARAMETERS (delete
stars).
* 3. Save source code.
* 4. Edit database program.
*
* Hint: Syntax-Check is not possible within this Include!
* It will be checked during syntax-check of database
program.
*-----------------------------------------------------------*
* SELECT-OPTIONS: ?FOR
LFA1-LIFNR.
*
Parameter for search pattern selection (Type SY-LDB_SP):
*
PARAMETERS p_sp AS SEARCH PATTERN FOR TABLE LFA1.
*
SELECT-OPTIONS :
* ?FOR LFB1-LIFNR,
*
?FOR LFB1-BUKRS.
*
SELECT-OPTIONS :
*
?FOR LFC1-LIFNR,
*
?FOR LFC1-BUKRS,
*
?FOR LFC1-GJAHR.
*
SELECT-OPTIONS :
*
?FOR BKPF-BUKRS,
*
?FOR BKPF-BELNR,
*
?FOR BKPF-GJAHR.
*
Enable DYNAMIC SELECTIONS for selected nodes :
*
Enable FIELD SELECTION for selected nodes :
LFA1 および LFB1 ノードが動的選択に、LFC1 ノードが項目選択にそれぞれ定義されている場合は、以下のコード行も生成されます。
SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE LFA1.
SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE LFB1.
SELECTION-SCREEN FIELD SELECTION FOR TABLE LFC1.
自動生成された選択インクルードは、次のように編集できます。
* Selection criteria:
SELECT-OPTIONS SLIFNR FOR LFA1-LIFNR.
SELECT-OPTIONS SBUKRS FOR LFB1-BUKRS.
SELECT-OPTIONS SGJAHR FOR LFC1-GJAHR.
SELECT-OPTIONS SBELNR FOR BKPF-BELNR.
* Self-defined parameters:
PARAMETERS PSTIDA LIKE SY-DATUM FOR NODE BKPF.
* Dynamic selections for LFA1 and LFB1:
SELECTION-SCREEN DYNAMIC SELECTIONS FOR NODEE: LFA1, LFB1.
* Field selection for LFB1 and LFC1:
SELECTION-SCREEN FIELD SELECTION FOR NODE: LFB1, LFC1.
ここでは、有効な選択基準から選択が選ばれ、名前を割り当てられます。PSTIDA 追加パラメータが宣言され、BKPF ノードにリンクされます。LFA1 および LFB1 テーブルには、動的選択が定義されます。LFB1 および LFC1 テーブルには、項目選択が定義されます。