コンテンツフレーム起動

選択画面上の従属画面 文書を SAP ライブラリストラクチャに組み込む

選択画面上の従属画面領域に従属画面を表示するのは、選択画面上のタブストリップコントロールの特殊なケースにあたります。選択画面上に従属画面領域を定義するには、次の命令を使用します。

SELECTION-SCREEN: BEGIN OF TABBED BLOCK <sub_area> FOR <n> LINES,
                  END OF BLOCK <sub_area>.

従属画面領域の定義は、タブタイトルのないタブストリップ領域を定義するのと同じです。選択画面を表示する前に、 必ず従属画面を従属画面領域<sub_area> に割り当ててください。これには、<sub_area> 構造の要素 PROG DYNNR を使用します。<sub_area> 構造は、従属画面領域を定義すると自動的に作成されます。従属画面のプログラム名を要素 PROG に、画面番号を DYNNR に割り当ててください。次の従属画面を使用することができます。

        スクリーンペインタを使って定義した従属画面

        ABAP プログラム内で定義した選択画面の従属画面

選択画面を表示するとき、事前に従属画面が割り当てられていないと、実行時エラーが発生します。

例

REPORT demo_sel_screen_with_subscreen.

TABLES sscrfields.

* SUBSCREEN 1

SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-010.
PARAMETERS: p1(10) TYPE c,
            p2(10) TYPE c,
            p3(10) TYPE c.
SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN END OF SCREEN 100.

* SUBSCREEN 2

SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-020.
PARAMETERS: q1(10) TYPE c,
            q2(10) TYPE c,
            q3(10) TYPE c.
SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN END OF SCREEN 200.

* SUBSCREEN 3

SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-030.
PARAMETERS: r1(10) TYPE c,
            r2(10) TYPE c,
            r3(10) TYPE c.
SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN END OF SCREEN 300.

* STANDARD SELECTION SCREEN

SELECTION-SCREEN: FUNCTION KEY 1,
                  FUNCTION KEY 2.

SELECTION-SCREEN: BEGIN OF TABBED BLOCK sub FOR 10 LINES,
                  END OF BLOCK sub.

INITIALIZATION.
   sscrfields-functxt_01 = '@0D@'.
   sscrfields-functxt_02 = '@0E@'.
   sub-prog = sy-repid.
   sub-dynnr = 100.

AT SELECTION-SCREEN.
   CASE sy-dynnr.
     WHEN 100.
      IF sscrfields-ucomm = 'FC01'.

         sub-dynnr = 300.
      ELSEIF sscrfields-ucomm = 'FC02'.

         sub-dynnr = 200.
      ENDIF.

     WHEN 200.
      IF sscrfields-ucomm = 'FC01'.

         sub-dynnr = 100.
      ELSEIF sscrfields-ucomm = 'FC02'.

         sub-dynnr = 300.
      ENDIF.

     WHEN 300.
      IF sscrfields-ucomm = 'FC01'.

         sub-dynnr = 200.
      ELSEIF sscrfields-ucomm = 'FC02'.

         sub-dynnr = 100.
      ENDIF.

   ENDCASE.

START-OF-SELECTION.
   WRITE: / 'P1:', p1,'Q1:', q1, 'R1:', r1,
         / 'P2:', p2,'Q2:', q2, 'R2:', r2,
         / 'P3:', p3,'Q3:', q3, 'R3:', r3.

このプログラムでは、選択画面の 3 つの従属画面 100200300 を定義しています。また、標準選択画面の従属画面領域 SUB も定義しています。アプリケーションツールバーには押ボタンが 2 つあります。

INITIALIZATION イベントでは、従属画面の選択画面 100 が従属画面領域に割り当てられます。AT SELECTION-SCREEN イベントでは、機能キーが処理され、ユーザの選択にしたがって他のいずれかの従属画面が従属画面領域に割り当てられます。

 

 

 

コンテンツフレーム終了