1. 程式人生 > 其它 >ABAP DIALOG程式DEMO

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.
*Implementsuitableerrorhandlinghere

READTABLEGT_DDSHRETVALINDEX1INTODATA(LS_MATNR).
GV_MATNR=LS_MATNR-FIELDVAL.
ENDIF.

ENDMODULE.

螢幕邏輯流程式碼:

PROCESSBEFOREOUTPUT.
MODULESTATUS_9000.
*
PROCESSAFTERINPUT.
MODULEUSER_COMMAND_9000.

PROCESSONVALUE-REQUEST."F4幫助
FIELDGV_MATNRMODULEF_MATNR_F4.

PROCESSONHELP-REQUEST."F1幫助