业务描述
用户需要在VL06O事务代码下进行批量交货过账,现有的筛选条件不太适用当前公司的业务,需要在报表中新增三个交货单增强字段,方便其筛选(选择屏幕没有加,用户在报表里用标准按钮功能自己筛选)
效果展示
操作步骤
1、扩展LIPOV结构字段
扩展完之后系统会自动带出likp增强字段,如果没有别的表字段就可以结束了
如果有别的表的增强字段
在DisplayALV之前把字段加到gt_outtab中即可
方法1:隐式增强->LV50QF1W->list_display_basic_list
form list_display_basic_list.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Form LIST_DISPLAY_BASIC_LIST, Start A
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1 ZCL_VL06O_UPDATE. "active version
*SELECT vbeln ,posnr ,zjqbm FROM lipsINTO TABLE @DATA(ltt_lips)FOR ALL ENTRIES IN @gt_outtabWHERE vbeln = @gt_outtab-vbeln .SORT ltt_lips BY vbeln .LOOP AT gt_outtab ASSIGNING FIELD-SYMBOL(<fs_outtab>) .READ TABLE ltt_lips INTO DATA(lss_lips) WITH KEY vbeln = <fs_outtab>-vbeln BINARY SEARCH.IF sy-subrc = 0 .<fs_outtab>-zjqbm = lss_lips-zjqbm .CLEAR : lss_lips .ENDIF .ENDLOOP .
ENDENHANCEMENT.
*$*$-End: (1)---------------------------------------------------------------------------------$*$*data: lf_save_alv_variant type c value 'A'.data: lt_events type slis_t_event, "v_n_544950ls_event type slis_alv_event.ls_event-name = 'TOP_OF_PAGE'.ls_event-form = 'TOP_OF_PAGE'.append ls_event to lt_events. "^_n_544950perform variant_authority_check changing lf_save_alv_variant.if gf_list_category+1(1) eq 'G'.call function 'REUSE_ALV_GRID_DISPLAY'exportingi_buffer_active = '' "n_1565980i_callback_program = gf_callback_programi_callback_pf_status_set = gf_statusi_callback_user_command = gf_user_commandi_structure_name = 'LIPOV'is_layout = gs_layoutit_fieldcat = gt_fieldcatit_sort = gt_sorti_save = lf_save_alv_variant "50Ais_variant = gs_varianttablest_outtab = gt_outtabexceptionsprogram_error = 1others = 2.if sy-subrc <> 0.message e500 with 'Error: LIST_DISPLAY_BASIC_LIST'. "#EC NOTEXTendif.else.call function 'REUSE_ALV_LIST_DISPLAY'exportingi_buffer_active = '' "n_1565980i_callback_program = gf_callback_programi_callback_pf_status_set = gf_statusi_callback_user_command = gf_user_commandi_structure_name = 'LIPOV'is_layout = gs_layoutit_fieldcat = gt_fieldcatit_events = lt_events "n_544950it_sort = gt_sorti_save = lf_save_alv_variant "50Ais_variant = gs_varianttablest_outtab = gt_outtabexceptionsprogram_error = 1others = 2.if sy-subrc <> 0.message e500 with 'Error: LIST_DISPLAY_BASIC_LIST'. "#EC NOTEXTendif.endif.endform. " LIST_DISPLAY_BASIC_LIST
方法2:SMOD->V50Q0001->EXIT_SAPLV50Q_001
同样的方法给ct_postab中添加值
如果业务非要在选择屏幕加的话也可以,选择屏幕在一个INCLUDE里,里面也有隐式增强点,完事在DisplayALV之前在做一个筛选就行