REUSE_ALV_GRID_DISPLAY双击事件
REUSE_ALV_GRID_DISPLAY双击事件,
最主要在样式设置中,有的字段不能使用的。
FORM FRM_ALV.
PERFORM ALV_SET_FIELD_LIST.
* X_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
REPORT_ID = SY-CPROG ."SY-REPID. “不能是REPID
X_LAYOUT-ZEBRA = 'X'.
X_LAYOUT-DETAIL_POPUP = 'X'.
X_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
* X_LAYOUT-BOX_FIELDNAME = 'BOX'. 有双击事件,不能加BOX,
DATA: FRM_PF_STATUS_SET TYPE SLIS_FORMNAME VALUE 'ALV_SET_STATUS'. "ALV_SET_STATUS
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPORT_ID
IT_FIELDCAT = GT_FIELDCAT
I_CALLBACK_TOP_OF_PAGE = 'END_OF_PAGE'
I_CALLBACK_PF_STATUS_SET = FRM_PF_STATUS_SET "触发事件调用子程序 "如果ALV使用自定义的工具栏,如果使用系统工具栏则忽略该行
I_CALLBACK_USER_COMMAND = 'FRM_UCOMM' "自定义工具栏的事件
* it_sort = gt_sort
IS_LAYOUT = X_LAYOUT
IS_PRINT = GT_PRINT
I_SAVE = 'A'
TABLES
T_OUTTAB = OEKBE. "IT_OUTPUT. "
ENDFORM. "FRM_ALV
FORM FRM_UCOMM USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
DATA:GV_MJAHR LIKE MSEG-MJAHR,
GV_EBELP LIKE MSEG-EBELP,
GV_EBELN LIKE EKKO-EBELN,
GV_BSART LIKE EBAN-BSART.
CASE R_UCOMM.
WHEN 'B_PRINT' .
PERFORM PREPARE_FOR_OUTPUT.
PERFORM OUTPUT_2.
WHEN 'B_OUT' .
PERFORM EXPORTTOEXCEL.
WHEN '&F03' OR '&F15'.
LEAVE TO SCREEN 0.
WHEN '&F12'.
LEAVE PROGRAM.
WHEN '&IC1'. " "双击事件
IF RS_SELFIELD IS NOT INITIAL.
CLEAR:GV_EBELN,GV_EBELP, GV_MJAHR,GV_EBELN,GV_BSART.
CASE RS_SELFIELD-FIELDNAME.
WHEN 'BELNR'. " Display material document 就是物料文件号, MIGO
GV_EBELN = RS_SELFIELD-VALUE.
READ TABLE OEKBE INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
GV_MJAHR = OEKBE-BUDAT+0(4).
GV_EBELP = OEKBE-EBELP.
ENDIF.
* SET PARAMETER ID 'MBN' FIELD RS_SELFIELD-VALUE. "PO
* SET PARAMETER ID 'MJA' FIELD GV_MJAHR. "年度
* CALL TRANSACTION 'MIGO' AND SKIP FIRST SCREEN. "不能使用这个,因为如果不是物料文件号为黙认输入框,则读不到数据
CALL FUNCTION 'MIGO_DIALOG'
EXPORTING
I_ACTION = 'A04'
I_REFDOC = 'R02'
I_NOTREE = 'X'
I_NO_AUTH_CHECK = ' '
I_DEADEND = 'X'
I_SKIP_FIRST_SCREEN = 'X'
I_OKCODE = 'OK_GO'
I_MBLNR = GV_EBELN " Document Number
I_MJAHR = GV_MJAHR. " Document Year
* I_ZEILE = GV_EBELP. " Document Item
WHEN 'EBELN'. " PO ME23N
CLEAR:GV_EBELP,GV_EBELN .
GV_EBELN = RS_SELFIELD-VALUE.
READ TABLE OEKBE INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
GV_EBELP = OEKBE-EBELP.
ENDIF.
CALL FUNCTION 'ME_DISPLAY_PURCHASE_DOCUMENT'
EXPORTING
I_EBELN = GV_EBELN
I_EBELP = GV_EBELP
EXCEPTIONS
OTHERS = 1.
WHEN 'BANFN'. "PR ME53N
CLEAR GV_BSART.
READ TABLE OEKBE INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
GV_BSART = OEKBE-BSART.
ENDIF.
SET PARAMETER ID 'BBA' FIELD GV_BSART. "PR TYPE
SET PARAMETER ID 'BAN' FIELD RS_SELFIELD-VALUE. "PR
CALL TRANSACTION 'ME53N' AND SKIP FIRST SCREEN.
ENDCASE.
ENDIF.
ENDCASE.
RS_SELFIELD-REFRESH = 'X'.
ENDFORM. "frm_ucomm

浙公网安备 33010602011771号