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」を設定する