業務描述
用戶需要在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之前在做一個篩選就行