ALV设置单元格可编辑性

 *&---------------------------------------------------------------------*
*& Report  Z01
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  Z01.
data: gt_fieldcat type table of LVC_S_FCAT with header line,
      gs_layout type LVC_S_LAYO.
data g_repid like sy-repid.
data field_style type LVC_S_STYL.

types: begin of wa,
  col1 type i,
  col2 type i,
  field_style TYPE LVC_T_STYL,      "设置单元格为不可编辑的内表
end of wa.
data gt_itab type standard table of wa with header line.

do 6 times.
  gt_itab-col1 = sy-index.
  gt_itab-col2 = sy-index ** 2.
  append gt_itab.
enddo.

gt_fieldcat-col_pos = 1.
gt_fieldcat-fieldname = 'COL1'.
gt_fieldcat-seltext = '一列'.
gt_fieldcat-do_sum = 'X'.
gt_fieldcat-edit = 'X'.      "设置该列为可编辑
append gt_fieldcat.
clear gt_fieldcat.

gt_fieldcat-col_pos = 2.
gt_fieldcat-fieldname = 'COL2'.
gt_fieldcat-seltext = 'col2'.
append gt_fieldcat.
clear gt_fieldcat.

loop at gt_itab.
  if gt_itab-col1 = 2 or gt_itab-col1 = 4.
    field_style-fieldname = 'COL1'.
    field_style-style = cl_gui_alv_grid=>mc_style_disabled.     "对某些不需要可编辑的单元格,调用方法设置为不可编辑
    append field_style to gt_itab-field_style.
    clear field_style.
    modify gt_itab transporting field_style.
  endif.
endloop.

gs_layout-stylefname = 'FIELD_STYLE'.
gs_layout-zebra = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
 EXPORTING
  I_CALLBACK_PROGRAM = g_repid
  IS_LAYOUT_LVC                      = gs_layout
   IT_FIELDCAT_LVC                           = gt_fieldcat[]
  TABLES
    T_OUTTAB                          = gt_itab[]
 EXCEPTIONS
   PROGRAM_ERROR                     = 1
   OTHERS                            = 2
          .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ALV单元格动态可编辑是ABAP技术在ALV报表上的一个重要扩展。ALV(ABAP List Viewer)是SAP系统中常用的报表显示工具,可以方便地展示和处理大量的数据。但是在默认情况下,ALV报表的单元格是不可编辑的,用户只能查看报表数据而无法进行修改。 为了满足用户对报表数据进行动态修改的需求,开发人员通过对ALV控件进行扩展,使其支持单元格的动态可编辑功能。这样用户可以直接在报表上进行数据编辑,无需打开数据源进行修改。 实现ALV单元格动态可编辑的扩展需要进行如下步骤: 1. 定义ALV报表的显示结构。 首先,需要定义ALV报表的显示结构,包括字段名、字段类型、长度等信息。 2. 扩展ALV函数模块。 在ALV函数模块中,需要添加相应的功能模块来支持单元格的动态可编辑。通过修改ALV函数模块的代码,实现对报表数据的修改和保存。 3. 增加用户交互接口。 为了方便用户进行数据修改,可以在报表上添加一些用户交互接口,比如勾选框、输入框等。用户可以通过这些接口直接修改报表数据,并进行保存操作。 4. 编写逻辑处理程序。 最后,需要编写逻辑处理程序,处理用户的修改操作。这个程序会根据用户输入的数据,更新相应的报表数据,并将修改后的数据保存回数据库中。 通过以上步骤的扩展,用户可以实现在ALV报表中直接进行数据编辑的功能。这样,用户可以更加方便地进行数据修改和保存,提高工作效率。同时,ALV单元格动态可编辑的扩展也为定制化的报表需求提供了更多的灵活
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值