*&---------------------------------------------------------------------**& Form FM_BUTTON*&---------------------------------------------------------------------** 设置enter事件*----------------------------------------------------------------------** -->E_GRID text*----------------------------------------------------------------------*FORM fm_button USING e_grid TYPE slis_data_caller_exit.DATA: lv_event_receiver TYPE REF TO lcl_event_receiver,
lt_f4 TYPE lvc_t_f4,
ls_f4 TYPE lvc_s_f4.CALLFUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'IMPORTING
e_grid = tem_grid.* 设置enter事件CALLMETHOD tem_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter
EXCEPTIONS
error = 1OTHERS = 2.CREATEOBJECT lv_event_receiver.SETHANDLERlv_event_receiver->handle_modify FORtem_grid.* 设置f4事件CHECKgv_flg ISINITIAL.
gv_flg = 'X'.
ls_f4-fieldname = 'ZSJCS'. "窗口时间参数(需要定义F4帮助按钮的字段)
ls_f4-register = 'X'.
ls_f4-getbefore = 'X'.
ls_f4-chngeafter = 'X'.INSERT ls_f4 INTO TABLE lt_f4.CREATE OBJECT lv_event_receiver.SET HANDLER lv_event_receiver->handle_f4 FOR tem_grid.CALL METHOD tem_grid->register_f4_for_fields
EXPORTING
it_f4 = lt_f4[].ENDFORM. "FM_BUTTON
4. 定义alv-status子程序
*&---------------------------------------------------------------------**& Form PF_STATUS_SET*&---------------------------------------------------------------------** status设定*----------------------------------------------------------------------** -->RT_EXTAB text*----------------------------------------------------------------------*FORM pf_status_set USING rt_extab TYPE slis_t_extab.SET PF-STATUS 'STATUS_ALV'.ENDFORM. "PF_STATUS_SET
*&---------------------------------------------------------------------**& Form F4_HELP_ZSJCS*&---------------------------------------------------------------------** 窗口时间参数的自定义f4检索帮助*----------------------------------------------------------------------*FORM f4_help_zsjcs USING p_fieldname TYPE lvc_fname
p_row_no TYPE lvc_s_roid.DATA: lt_dtdetail TYPE STANDARD TABLE OF ztpp_dtdetail,
lt_return TYPE STANDARD TABLE OF ddshretval,
ls_return TYPE ddshretval.CLEAR gw_vds.READ TABLE gt_vds INTO gw_vds INDEX p_row_no-row_id.IFp_fieldname = 'ZSJCS'.SELECT *
INTO TABLE lt_dtdetail
FROM ztpp_dtdetail
WHERE werks = gw_vds-werks.SORT lt_dtdetail BY werks zsjcs.DELETE ADJACENT DUPLICATES FROM lt_dtdetail
COMPARING werks zsjcs.ENDIF.CALL FUNCTION'F4IF_INT_TABLE_VALUE_REQUEST'EXPORTINGretfield= 'ZSJCS' "lt内表里面的字段dynpprog= sy-repiddynpnr= sy-dynnrdynprofield= 'ZSJCS' "画面上绑定字段value_org= 'S'callback_program= sy-repidTABLESvalue_tab= lt_dtdetail"需要显示帮助的值内表return_tab= lt_return"返回值EXCEPTIONSparameter_error= 1no_values_found= 2OTHERS= 3.IFsy-subrc= 0.READTABLElt_returnINTOls_returnINDEX1.gw_vds-zsjcs= ls_return-fieldval.MODIFYgt_vdsFROMgw_vdsINDEXp_row_no-row_idTRANSPORTINGzsjcs.ENDIF.ENDFORM. " F4_HELP_ZSJCS