SE11:CI_QALS
BADI:QEVA_SUBSCREEN_1101
SE19->QEVA_SUBSCREEN_1101
BADI:GET_DATA
METHOD if_ex_qeva_subscreen_1101~get_data.
DATA:lv_string TYPE string VALUE '(SAPMQEVA)QALS' .
DATA:ls_infos TYPE ci_qals .
DATA:ls_cust TYPE ci_qals .
FIELD-SYMBOLS:<fs_info> TYPE qals .
CALL FUNCTION 'ZSY_FM_QM_BADI_GET_DATA'
IMPORTING
e_qals = e_qals.
* e_rqeva = e_rqeva..
MOVE-CORRESPONDING e_qals TO if_ex_qeva_subscreen_1101~g_qals .
ASSIGN (lv_string) TO <fs_info> .
IF sy-subrc = 0 .
MOVE-CORRESPONDING e_qals TO ls_cust .
MOVE-CORRESPONDING ls_cust TO <fs_info> .
ENDIF .
ENDMETHOD.
BADI:PUT_DATA
METHOD if_ex_qeva_subscreen_1101~put_data.
DATA:ls_qals TYPE qals .
DATA:ls_cust TYPE ci_qals.
IF if_ex_qeva_subscreen_1101~g_qals IS NOT INITIAL .
MOVE-CORRESPONDING if_ex_qeva_subscreen_1101~g_qals TO ls_qals .
ELSE .
MOVE-CORRESPONDING i_qals TO ls_qals .
ENDIF .
MOVE-CORRESPONDING ls_qals TO ls_cust.
SELECT SINGLE *
FROM zsy_d_ewmjyplog1
INTO @DATA(ls_data)
WHERE prueflos = @ls_qals-prueflos
AND zgysqr = '3'.
IF sy-subrc IS INITIAL.
ls_qals-remark = ls_data-remark .
ls_qals-znc_desc = ls_data-znc_desc .
ls_qals-lifnr_d = ls_data-lifnr_d .
ls_qals-zclaim_rate = ls_data-zclaim_rate.
ls_qals-zdeparm = ls_data-zdeparm .
ENDIF.
CALL FUNCTION 'ZSY_FM_QM_BADI_PUT_DATA'
EXPORTING
i_qals = ls_qals
i_rqeva = i_rqeva
i_qherk = flt_val.
ENDMETHOD.
函数:ZSY_FM_QM_BADI_GET_DATA
FUNCTION zsy_fm_qm_badi_get_data.
*"----------------------------------------------------------------------
*"*"本地接口:
*" EXPORTING
*" VALUE(E_QALS) TYPE QALS
*" VALUE(E_REEVA) TYPE RQEVA
*"----------------------------------------------------------------------
MOVE-CORRESPONDING gs_qals TO e_qals.
ENDFUNCTION.
函数:ZSY_FM_QM_BADI_PUT_DATA
FUNCTION zsy_fm_qm_badi_put_data.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(I_QALS) TYPE QALS OPTIONAL
*" VALUE(I_RQEVA) TYPE RQEVA OPTIONAL
*" VALUE(I_QHERK) TYPE QHERK OPTIONAL
*"----------------------------------------------------------------------
MOVE-CORRESPONDING i_qals TO qals_cust.
MOVE-CORRESPONDING i_qals TO gs_qals.
MOVE-CORRESPONDING i_rqeva TO gs_rqeva.
MOVE i_qherk TO gv_flt_val.
ENDFUNCTION.
screen:100 子屏幕 qals_cust
PROCESS BEFORE OUTPUT.
MODULE STATUS_0001.
*
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0001.
*----------------------------------------------------------------------*
***INCLUDE LZSY_FG_UDSCRPBO.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0001 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0001 INPUT.
MOVE-CORRESPONDING qals_cust TO gs_qals .
*触发BADI get_data方法
IF ref_subscr_1101_qeva IS NOT INITIAL .
CALL METHOD ref_subscr_1101_qeva->get_data
EXPORTING
flt_val = gv_flt_val
IMPORTING
e_qals = gs_qals
e_rqeva = gs_rqeva.
ENDIF .
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module STATUS_0001 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_0001 OUTPUT.
IF ref_subscr_1101_qeva IS INITIAL.
CALL METHOD cl_exithandler=>get_instance_for_subscreens
CHANGING
instance = ref_subscr_1101_qeva
EXCEPTIONS
no_reference = 1
no_interface_reference = 2
no_exit_interface = 3
data_incons_in_exit_managem = 4
class_not_implement_interface = 5
OTHERS = 6.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDMODULE.
函数抬头:LZSY_FG_UDSCRTOP
TABLES qals_cust.
DATA: gs_qals TYPE qals.
DATA: gv_flt_val TYPE qherk,
gs_rqeva TYPE rqeva.
DATA: ref_subscr_1101_qeva TYPE REF TO if_ex_qeva_subscreen_1101.
DATA: ok_code LIKE sy-ucomm.
CMOD:
ZXQPLTOP
ZXQPLU04 EXIT_SAPLQPL1_004
ZXQPLU06 EXIT_SAPLQPL1_006
ZXQPLTOP:
*&---------------------------------------------------------------------*
*& 包含 ZXQPLTOP
*&---------------------------------------------------------------------*
TABLES: qals_cust.
DATA: gs_cust TYPE qals_cust.
DATA: g_display TYPE c.
ZXQPLU04
*&---------------------------------------------------------------------*
*& 包含 ZXQPLU04
*&---------------------------------------------------------------------*
DATA: l_trtyp LIKE t160-trtyp,
l_fs_c(30) TYPE c VALUE '(SAPLQPL1)G_T185F_AKTI'.
FIELD-SYMBOLS: <l_fs>.
ASSIGN (l_fs_c) TO <l_fs>.
IF sy-subrc = 0.
l_trtyp = <l_fs>.
CASE l_trtyp.
WHEN 'A'.
g_display = 'X'.
WHEN OTHERS.
g_display = ''.
ENDCASE.
ENDIF.
MOVE-CORRESPONDING i_qals TO qals_cust.
SELECT SINGLE *
FROM zsy_d_ewmjyplog1
INTO @DATA(ls_data)
WHERE prueflos = @i_qals-prueflos
AND zgysqr = '3'.
IF sy-subrc IS INITIAL.
qals_cust-remark = ls_data-remark .
qals_cust-znc_desc = ls_data-znc_desc .
qals_cust-zclaim_rate = ls_data-zclaim_rate.
qals_cust-zdeparm = ls_data-zdeparm .
qals_cust-lifnr_d = ls_data-lifnr_d .
ENDIF.
ZXQPLU06
*&---------------------------------------------------------------------*
*& 包含 ZXQPLU06
*&---------------------------------------------------------------------*
MOVE-CORRESPONDING QALS_CUST TO E_QALS_CUST.
e_active = 'X'.
函数组:XQPL 屏幕100 子屏幕 qals_cust
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
*
PROCESS AFTER INPUT.
* MODULE USER_COMMAND_0100.
*----------------------------------------------------------------------*
***INCLUDE ZXQPLO01.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
LOOP AT SCREEN.
IF g_display = 'X'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDMODULE.