ABAP DIALOG程式DEMO
主程式程式碼:
REPORTYYHD_DIALOG_TEST.
"定義全域性變數,用以螢幕值互動
DATAOKCODE_9000TYPESY-UCOMM."螢幕名稱
DATAGT_DDSHRETVALTYPETABLEOFDDSHRETVAL.
DATAGV_MATNRTYPEMATNR.
DATA:ZEDITTYPECHAR1.
DATAP_ANSWERTYPECHAR1.
CALLSCREEN'9000'.
*&---------------------------------------------------------------------*
*&ModuleSTATUS_9000OUTPUT
*&---------------------------------------------------------------------*
*text
*----------------------------------------------------------------------*
MODULESTATUS_9000OUTPUT.
SETPF-STATUS'Y001'.
LOOPATSCREEN.
IFSCREEN-NAME='GV_MATNR'.
SCREEN-INPUT=ZEDIT.
ENDIF.
MODIFYSCREEN.
ENDLOOP.
*SETTITLEBAR'xxx'.
ENDMODULE.
*&---------------------------------------------------------------------*
*&ModuleUSER_COMMAND_9000INPUT
*&---------------------------------------------------------------------*
*text
*----------------------------------------------------------------------*
MODULEUSER_COMMAND_9000INPUT.
OKCODE_9000=SY-UCOMM.
CASEOKCODE_9000.
WHEN'BACK'.
LEAVEPROGRAM.
WHEN'ZEDIT'.
LOOPATSCREEN.
IFSCREEN-NAME='GV_MATNR'.
IFSCREEN-INPUT='1'.
ZEDIT='0'.
ELSE.
ZEDIT='1'.
ENDIF.
ENDIF.
ENDLOOP.
WHEN'ZEXIT'.
CALLFUNCTION'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR='確認退出'
TEXT_QUESTION='sure?'
TEXT_BUTTON_1='是'
ICON_BUTTON_1='ICON_UNLOCKED'
START_COLUMN=25"位置確認
START_ROW=6"位置確認
IMPORTING
ANSWER=P_ANSWER
EXCEPTIONS
TEXT_NOT_FOUND=1
OTHERS=2.
IFSY-SUBRC=0.
*Implementsuitableerrorhandlinghere
CASEP_ANSWER.
WHEN'1'.
MESSAGE'你選擇了是'TYPE'S'.
WHEN'2'.
WHENOTHERS.
MESSAGE'你取消了'TYPE'S'.
ENDCASE.
ENDIF.
WHENOTHERS.
ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*&ModuleF_MATNR_F4INPUT
*&---------------------------------------------------------------------*
*text
*----------------------------------------------------------------------*
MODULEF_MATNR_F4INPUT.
SELECTMARA~MATNR,
MAKT~MAKTX
INTOTABLE@DATA(GT_MATNR)
FROMMARA
INNERJOINMAKTONMARA~MATNR=MAKT~MATNR
ANDMAKT~SPRAS=@SY-LANGU
WHEREMTART='ZA90'.
CALLFUNCTION'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD='MATNR'
DYNPPROG=SY-REPID
DYNPNR=SY-DYNNR
VALUE_ORG='S'
CALLBACK_PROGRAM=SY-REPID
TABLES
VALUE_TAB=GT_MATNR
RETURN_TAB=GT_DDSHRETVAL
EXCEPTIONS
PARAMETER_ERROR=1
NO_VALUES_FOUND=2
OTHERS=3.
IFSY-SUBRC=0