全选与取消全选按钮的功能实现

在这里插入图片描述

  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
*
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值