WHEN '&IC1' OR 'DOUB'. CLEAR RF_UCOMM. PERFORM FRM_TC_UPDATE USING RS_SELFIELD.
FORM FRM_TC_UPDATE USING PV_SELFIELD TYPE SLIS_SELFIELD. DATA:L_FIELD TYPE C LENGTH 20. FIELD-SYMBOLS: <FS_FIELD> TYPE ANY. CLEAR: GS_OUT_ALV. "读取用户双击的行 READ TABLE GT_OUT_ALV INTO GS_OUT_ALV INDEX PV_SELFIELD-TABINDEX. "获取用户双击的字段内容 L_FIELD = |gs_out_alv-{ PV_SELFIELD-FIELDNAME }|. ASSIGN (L_FIELD) TO <FS_FIELD>. "将自建表中的数据给内表 SELECT * INTO TABLE GT_TRADE_CATG FROM ZTCF_TRADE_CELL. CLEAR GS_TRADE_CATG. "获取双击的是哪个字段,根据字段从内表读取相应的数据 CASE PV_SELFIELD-FIELDNAME(5). WHEN 'TCLCO'. READ TABLE GT_TRADE_CATG INTO GS_TRADE_CATG WITH KEY TCLCO = <FS_FIELD>. WHEN 'TCLTX'. READ TABLE GT_TRADE_CATG INTO GS_TRADE_CATG WITH KEY TCLTX = <FS_FIELD>. WHEN OTHERS. ENDCASE.
IF GS_TRADE_CATG IS NOT INITIAL. CLEAR: G_IS_STOP. CALL SCREEN 0100 STARTING AT 80 4.”调用弹窗,双击0100,即可调用到定义页面
FORM FRM_SCREEN_EXIT . IF G_IS_UPD IS INITIAL. MESSAGE ID 'ZFI01' TYPE C_MSG_TYPE_S NUMBER 000 DISPLAY LIKE C_MSG_TYPE_E WITH '用户取消编辑!'. ENDIF. LEAVE TO SCREEN 0. ENDFORM.
CASE OK_CODE. WHEN 'BTN_OK'. CLEAR OK_CODE. G_IS_UPD = ABAP_ON. PERFORM FRM_UPDATE_TRADE_CATEGORIES CHANGING GS_TRADE_CATG. WHEN 'BTN_CC'. CLEAR OK_CODE. WHEN OTHERS. CLEAR OK_CODE. ENDCASE. ENDMODULE.
FORM FRM_UPDATE_TRADE_CATEGORIES CHANGING PR_TRADE_CATG TYPE TY_TRADE_CATEGORIES. DATA: LW_TC_UPDATE TYPE ZTFC_MAT_PRICE. IF G_IS_UPD IS INITIAL. MESSAGE ID 'ZFI01' TYPE C_MSG_TYPE_S NUMBER 000 DISPLAY LIKE C_MSG_TYPE_E WITH '用户取消编辑!'. G_IS_STOP = ABAP_ON. EXIT. ELSE. MOVE-CORRESPONDING PR_TRADE_CATG TO LW_TC_UPDATE. CHECK G_IS_STOP IS INITIAL. "输入时需要转换物料单位。 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT' EXPORTING INPUT = LW_TC_UPDATE-MEINS LANGUAGE = SY-LANGU IMPORTING OUTPUT = LW_TC_UPDATE-MEINS EXCEPTIONS UNIT_NOT_FOUND = 1 OTHERS = 2. "日期格式转换 CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL' EXPORTING DATE_EXTERNAL = LW_TC_UPDATE-KDATB IMPORTING DATE_INTERNAL = LW_TC_UPDATE-KDATB EXCEPTIONS DATE_EXTERNAL_IS_INVALID = 1 OTHERS = 2. IF SY-SUBRC <> 0. MESSAGE ID 'ZFI01' TYPE C_MSG_TYPE_S NUMBER 000 DISPLAY LIKE C_MSG_TYPE_E WITH '有效起始日期格式有误!'. ENDIF. GET TIME. LW_TC_UPDATE-MANDT = SY-MANDT. LW_TC_UPDATE-UPDAT = SY-DATUM. LW_TC_UPDATE-UPTIM = SY-UZEIT. LW_TC_UPDATE-UPUSR = SY-UNAME. MODIFY ZTFC_MAT_PRICE FROM LW_TC_UPDATE. MESSAGE ID 'ZFI01' TYPE C_MSG_TYPE_S NUMBER 000 WITH '数据已保存!'. ENDIF. "保存后重新调用显示数据方法进行页面刷新 CLEAR: GT_OUT_ALV, GS_OUT_ALV. PERFORM DATA_SHOW_ALL. "CHECK G_IS_STOP IS INITIAL. PERFORM FRM_SCREEN_EXIT. ENDFORM.