ABAP:Dynpro基本手順

1.プログラムの登録 [Tr-cd:SE38 or SE80]

  プログラム名:SAPMZ******
  タイプ:M:モジュールプール

2.Dynproの登録 [Tr-cd:SE80 or SE51]
   Dynproエレメントタブを表示し、エレメントタイプ'OK'の名称項目に値を設定
   ここで設定した値をプログラムで判定処理に使用

3.Dynproの編集 [Tr-cd:SE80 ⇒ スクリーンペインタ]

4.GUIステータス 登録 [Tr-cd:SE80 or SE41]

5.GUI表題 登録 [Tr-cd:SE80]

6.PBO Module 作成

7.PAI Module 作成
     MODULE module_name AT EXIT-COMMAND.
     自動入力チェックを回避して、Dynproを終了する場合に使用
     機能タイプEを設定された機能コード処理時に呼出される


屏幕上的输入框或者表格,都有着相对应结构或者内表,比如画屏幕时参考表VBAP建立的字段,在程序开头需声明TABLES: VBAP,之后在程序里使用VBAP-XXX,就和屏幕上的输入框绑定了。这里多说一句,目前TABLES定义已经是废弃语法,可以定义DATA: GS_VBAP TYPE VBAP,然后屏幕字段也改成GS_VBAP-XXX的做法来代替。


Dynpro Id:9010
*▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼TOP▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼*
*テーブルコントロール定義
CONTROLS:TAB9010 TYPE TABVIEW USING SCREEN ‘9010’.

*テーブルコントロール定義
TYPES:
  BEGIN OF TYP_TAB9010,
              FIELD1(10)            TYPE C,
              FIELD2(4)              TYPE C,
              FIELD3                 TYPE SY-DATUM,
              FIELD4                 TYPE P(8),
              …
  END OF TYP_TAB9010.

DATA:   
  GTD_TAB9010                 TYPE STANDARD TABLE OF TYP_TAB9010,
  GTH_TAB9010                 LIKE LINES OF GTD_TAB9010,
  GST_TAB9010                 LIKE LINES OF GTD_TAB9010.
*▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲TOP▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲*
*▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼Dynpro 9010▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼*
PROCESS BEFORE OUTPUT.
              MODULE INIT_SCREEN_9010.
              MODULE FILL_OTHERS.
              LOOP WITH CONTROL TAB9010.
                            MODULE FILL_TAB9010.
ENDLOOP.
             
PROCESS AFTER INPUT.
              LOOP WITH CONTROL TAB9010.
                            MODULE MODIFY_TAB9010.
ENDLOOP.
MODULE USER_COMMAND_9010.

MODULE INIT_SCREEN_9010.
              *①ステータス設定
              SET PF-STATUS ‘ST_9010’.
              *②表題設定
              SET TITLEBAR ‘TITLE_9010’.
              *③テーブルコントロール行数設定
              TAB9010-LINES = LINES( GTD_TAB9010).
              *④カーソル設定(エラー発生など)
              SET CURSOR FIELD GWK_CURSOR_FIELD LINES GWK_CURSOR_LINE.
              CLEAR: GWK_CURSOR_FIELD,
                            GWK_CURSOR_LINE.
ENDMODULE.

MODULE FILL_OTHERS.
              *ヘッダ部名称の取得など
              *テーブルコントロール項目(金額など)の合計値の計算など
                ※合計値がMODULE FILL_TAB9010にて計算する場合、テーブルコントロール現在
                  表示行の値のみ合計され、スクロール移動することで、合計値が動的に表示
ENDMODULE.

MODULE FILL_TAB9010.
              *テーブルコントロールにデータ読込
              CLEAR: GTH_TAB9010.
              READ TABLE GTD_TAB9010 INTO GTH_TAB9010 INDEX TAB9010-CURRENT-LINE
              *画面制御
              LOOP AT SCREEN.
                            IF SCREEN-NAME = ‘XXXX’.
                            …
                            MODIFY SCREEN.
ENDIF.
              ENDLOOP.
ENDMODULE.

MODULE MODIFY_TAB9010.
              *データチェック
              *テーブルコントロールのデータ編集
              MODIFY GTD_TAB9010 FROM GTH_TAB9010 INDEX TAB9010-CURRENT_LINE
                                                        TRANSPORTING FIELD1 FIELD2…
              ※非表示項目はTRANSPORTINGの後ろで指定しないで
ENDMODULE.

MODULE USER_COMMAND_9010.
*エラー発生(GWK_ERR=TRUE)後、再度Enter押下する時、入力制御解除する為に、ユーザコメントをクリアしなければいけない
              IF GWK_ERR = TRUE.
                            CLEAR: GWK_UCOMM,
                                          GWK_ERR.
              ELSE.
                            GWK_UCOMM = SY-UCOMM.
              ENDIF.
              *ユーザコメント
              CASE GWK_UCOMM.
                            WHEN ‘&SAVE’.
                            WHEN ‘BACK’ OR ‘CANCEL’.
                                          LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN.
                            WHEN ‘END’.
                                          LEAVE PROGRAM.
                            …
              ENDCASE.
ENDMODULE.
*▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲Dynpro 9010▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲*

※Dynpro中、金額(符号(+、-)付き)項目の定義について
  項目の「テキスト」に「_______________V」を設定する



このブログの人気の投稿

ABAP:データファイルのアップロードとダウンロード

ABAPSE12 更新ビュー作成手順

ABAP:]バックグラウンドジョブDEBUG