点击修改按钮,将alv某列的不可编辑状态转为可编辑状态

4 篇文章 0 订阅
2 篇文章 0 订阅

该例子是将YFKJE的字段的不可编辑属性修改为可编辑状态,其实就是将fieldcat的fieldname为YFKJE即这一列,修改其EDIT属性

    LOOP AT fieldcat WHERE fieldname = 'YFKJE'.
      fieldcat-edit          = 'X'.
      MODIFY fieldcat TRANSPORTING edit.
    ENDLOOP.
    PERFORM frm_alv_display.
    *&---------------------------------------------------------------------*
*&      Form  FRM_ALV_DISPLAY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_alv_display .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program       = sy-repid
      i_callback_user_command  = 'USER_COMMAND'
      i_callback_pf_status_set = 'PF_STATUS'
      is_layout_lvc            = wa_layout
      it_fieldcat_lvc          = fieldcat[]
      i_default                = 'X'
      i_save                   = 'A'
      it_sort_lvc             = i_sort[]
     it_events                = gt_events
    TABLES
      t_outtab                 = gt_display[]
    EXCEPTIONS
      OTHERS                   = 2.
  IF sy-subrc <> 0.
  ENDIF.
ENDFORM.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您可以通过以下步骤来实现ALV按钮的切换可编辑: 1. 创建一个自定义的按钮,例如“编辑按钮。 2. 在按钮的处理程序中,使用函数MODULE ALV_EDIT_TOGGLE调用ALV编辑切换的功能。 3. 在ALV_DISPLAY事件中,将需要切换可编辑状态的列设置为可编辑不可编辑。 以下是一个简单的示例代码: ``` REPORT ztest_alv. DATA: gt_data TYPE STANDARD TABLE OF spfli, gs_data LIKE LINE OF gt_data. * ALV显示事件处理程序 MODULE alv_display. DATA: gr_alv TYPE REF TO cl_gui_alv_grid. CREATE OBJECT gr_alv EXPORTING i_parent = cl_gui_container=>screen0. CALL METHOD gr_alv->register_edit_event EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_entered. CALL METHOD gr_alv->set_table_for_first_display EXPORTING i_structure_name = 'SPFLI' CHANGING it_outtab = gt_data. PERFORM set_editable_columns. ENDMODULE. * 编辑按钮事件处理程序 MODULE edit_button. DATA: gr_alv TYPE REF TO cl_gui_alv_grid. CREATE OBJECT gr_alv EXPORTING i_parent = cl_gui_container=>screen0. CALL METHOD gr_alv->register_edit_event EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_entered. IF sy-ucomm = 'EDIT'. CALL FUNCTION 'MODULE_ALV_EDIT_TOGGLE' EXPORTING i_grid = gr_alv. PERFORM set_editable_columns. ENDIF. ENDMODULE. * 设置可编辑列 FORM set_editable_columns. DATA: gt_fieldcat TYPE lvc_t_fcat. CALL METHOD gr_alv->get_frontend_fieldcatalog RECEIVING et_fieldcatalog = gt_fieldcat. LOOP AT gt_fieldcat ASSIGNING FIELD-SYMBOL(<fs_fieldcat>). IF <fs_fieldcat>-fieldname = 'CARRID' OR <fs_fieldcat>-fieldname = 'CONNID'. <fs_fieldcat>-edit = 'X'. ELSE. <fs_fieldcat>-edit = ''. ENDIF. ENDLOOP. CALL METHOD gr_alv->set_frontend_fieldcatalog EXPORTING it_fieldcatalog = gt_fieldcat. ENDFORM. ``` 在上面的代码中,我们创建了一个名为“编辑”的按钮,并在它的处理程序中调用了MODULE_ALV_EDIT_TOGGLE函数来切换ALV的可编辑状态。在ALV_DISPLAY事件中,我们调用了set_editable_columns子例程来设置需要切换可编辑状态的列。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值