效果:
使用的ALV函数改变为:REUSE_ALV_LIST_DISPLAY
*&---------------------------------------------------------------------*
*& Report YPAN_05
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ypan_05.
DATA : ps_layout TYPE slis_layout_alv.
DATA: fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
fieldcat_ln LIKE LINE OF fieldcat.
DATA: eventcat TYPE slis_t_event,
eventcat_ln LIKE LINE OF eventcat.
SELECT
vbeln,
posnr,
matnr,
matwa,
matkl,
zmeng,
meins
FROM vbap INTO TABLE @DATA(lt_vbap) UP TO 10 ROWS.
* 设置布局
ps_layout-zebra = 'X'.
"设置fildcat
DEFINE set_fieldfcat.
fieldcat-fieldname = &1. "字段名
fieldcat-seltext_m = &2. "字段描述
fieldcat-edit = &3.
fieldcat-outputlen = &4. "列宽
fieldcat-just = &5. "显示位置
IF &1 = 'VBELN'.
* fieldcat-edit = 'X'.
fieldcat-input = 'X'.
ENDIF.
APPEND fieldcat.
END-OF-DEFINITION.
* 设置fieldcat
PERFORM set_fildcat.
"TOP OF PAGE
eventcat_ln-name = slis_ev_top_of_page.
eventcat_ln-form = 'TOP_OF_PAGE'.
APPEND eventcat_ln TO eventcat.
CLEAR eventcat_ln.
eventcat_ln-name = slis_ev_top_of_list.
eventcat_ln-form = 'TOP_OF_LIST'.
APPEND eventcat_ln TO eventcat.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = ps_layout
it_fieldcat = fieldcat[]
it_events = eventcat
TABLES
t_outtab = lt_vbap
EXCEPTIONS
program_error = 1
OTHERS = 2.
* &---------------------------------------------------------------------*
* & Form SET_FILDCAT
* &---------------------------------------------------------------------*
* & text
* &---------------------------------------------------------------------*
FORM set_fildcat .
set_fieldfcat 'VBELN' '订单' '' '10' ''.
set_fieldfcat 'POSNR' '行项目' '' '10' ''.
set_fieldfcat 'MATNR' '物料' '' '10' ''.
set_fieldfcat 'MATWA' '物料码' '' '10' ''.
set_fieldfcat 'MATKL' '物料组' '' '10' ''.
set_fieldfcat 'ZMENG' '数量' '' '10' ''.
set_fieldfcat 'MEINS' '单位' '' '10' ''.
ENDFORM.
FORM top_of_page.
*-To display the headers for main list
FORMAT COLOR COL_HEADING.
WRITE: / sy-uline(210).
WRITE: / sy-vline,
(19) '订单' CENTERED,
sy-vline,
(30) ' 物料' CENTERED ,
sy-vline,
(19) ' 数量' CENTERED,
sy-vline.
FORMAT COLOR OFF.
ENDFORM. "top_of_page
*&---------------------------------------------------------------------*
*& Form TOP_OF_LIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM top_of_list.
DATA: l_year_month TYPE string.
CONCATENATE sy-datum+0(4) '年' sy-datum+4(2) '月' INTO l_year_month.
WRITE: /70(16) '汇总式总账' CENTERED.
WRITE: /70(16) l_year_month CENTERED.
SKIP.
ENDFORM. "TOP_OF_LIST
FORM f_set_status USING p_extab TYPE slis_t_extab.
SET TITLEBAR 'TITLE' WITH '项目余额结转功能开发'.
SET PF-STATUS 'ALV_PF_STATUS' .
ENDFORM.
FORM f_user_command USING p_ucomm TYPE sy-ucomm
p_selfield TYPE slis_selfield .
DATA: lr_grid TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = lr_grid.
CALL METHOD lr_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter
EXCEPTIONS
error = 1
OTHERS = 2.
CALL METHOD lr_grid->check_changed_data.
"REFRESH ALV
lr_grid->refresh_table_display( is_stable = VALUE lvc_s_stbl( row = 'X' col = 'X' ) ).
ENDFORM.