gt_fieldcat-key = 'X'.
gt_fieldcat-fieldname = 'BOX'.
gt_fieldcat-seltext_m = '选择' .
gt_fieldcat-checkbox = 'X'.
gt_fieldcat-edit = 'X'.
FORM user_command
USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&SALL'.
PERFORM frm_sall.
PERFORM frm_refresh_alv.
WHEN '&SSAL'.
PERFORM frm_ssal.
PERFORM frm_refresh_alv.
ENDCASE.
ENDFORM.
FORM frm_sall .
* 是否存在选定条目
READ TABLE t_output WITH KEY box = 'X'.
IF sy-subrc = 0.
"选中选定条目
LOOP AT t_output WHERE box = ''.
t_output-box = 'X'.
MODIFY t_output TRANSPORTING box.
ENDLOOP.
ELSE.
" 全选
LOOP AT t_output.
t_output-box = 'X'.
MODIFY t_output TRANSPORTING box.
ENDLOOP.
ENDIF.
ENDFORM. " FRM_SALL
*&---------------------------------------------------------------------*
*& Form FRM_SSAL
*&---------------------------------------------------------------------*
* 取消全选或取消选中选定条目
*----------------------------------------------------------------------*
FORM frm_ssal .
* 是否存在选定条目
READ TABLE t_output WITH KEY box = 'X'.
IF sy-subrc = 0.
"选中选定条目
LOOP AT t_output WHERE box = 'X'.
t_output-box = ''.
MODIFY t_output TRANSPORTING box.
ENDLOOP.
ELSE.
" 全选
LOOP AT t_output.
t_output-box = ''.
MODIFY t_output TRANSPORTING box.
ENDLOOP.
ENDIF.
ENDFORM. " FRM_SSAL
*&---------------------------------------------------------------------*
*& Form FRM_REFRESH_ALV
*&---------------------------------------------------------------------*
* Refresh alv
*----------------------------------------------------------------------*
FORM frm_refresh_alv .
DATA: gr_alvgrid TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = gr_alvgrid.
CALL METHOD gr_alvgrid->refresh_table_display
EXPORTING
i_soft_refresh = 'X'
EXCEPTIONS
finished = 1
OTHERS = 2.
ENDFORM. " FRM_REFRESH_ALV
完整代码:
*&---------------------------------------------------------------------*
*&程序名称/Program Name : ZTS_XSY_TEST30
*&程序描述/Program Des. :
*&作者/Author :
*&创建日期/Creation date :
*&申请人/Applicant :
*&申请日期/Date of App :
*&---------------------------------------------------------------------*
*&变更记录: *
*&Date Developer ReqNo Descriptions *
*&=========== ================== ========== ========================*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT zts_xsy_test30.
INCLUDE zsy_xy_tcus. "记录程序运行日志
*&=========== ================== ========== ========================*
*& REUSE_ALV_GRID_DISPLAY
*&---------------------------------------------------------------------*
***************************修改,保存数据********************************BEGIN1
*DATA: lt_spfli TYPE TABLE OF spfli.
*DATA: lt_spfli_old TYPE TABLE OF spfli.
*DATA: lt_spfli_upd TYPE TABLE OF spfli.
*DATA: ls_spfli_old TYPE spfli.
*DATA: ls_spfli_new TYPE spfli.
*DATA: ls_layout TYPE slis_layout_alv.
*DATA: lt_fieldcat TYPE slis_t_fieldcat_alv.
*
*START-OF-SELECTION.
* PERFORM data_selection.
* PERFORM build_layout.
* PERFORM build_fieldcatalog.
* PERFORM display_alv.
*
**&———————————————————————
**& Form DATA_SELECTION
**&———————————————————————*
*FORM data_selection .
* SELECT * FROM spfli INTO TABLE lt_spfli.
* lt_spfli_old = lt_spfli.
*ENDFORM. " DATA_SELECTION
*