ALV GRID参考文档(十三)

本文介绍了如何在ALV Grid中实现内容可编辑,包括设置列的编辑状态、单元格编辑控制,以及如何处理数据变化,涉及data_changed和data_changed_finished事件以及CL_ALV_CHANGED_DATA_PROTOCOL类的应用。
摘要由CSDN通过智能技术生成
 
使ALV控件中的内容可编辑
这应该是一个非常有用的功能,这样我们便可以用它来代替table control来编出一些有这现成功能的界面来。实际上,让alv中的内容可以被编辑与alv的事件无关。但是经常需要验证输入的数据,所以还是需要从事件开始谈起。
想使一列可以被编辑只需在field catalog中把edit字段设为’X’即可。如果设置了可编辑的字段那么alv便会添加相应的编辑按钮。如果不需要这些按钮那么可以按上面说过的方法排除他们。
如果想使某个单元格可编辑,那么就要用到上面所提到的把某个单元格作为按钮的那个内表。它的类型是LVC_T_STYL。向这个内表中添加记录,把需要字段名传给FIELDNAME,把cl_gui_alv_grid=>mc_style_enabled传给style以使这个字段可以被编辑,或者把cl_gui_alv_grid=>mc_style_disabled传给style以使这个字段不能被编辑。如果已经把整列设为可编辑,而只想让这个列中的某些单元格不可编辑,可以使用这种方法。正如前面所述,需要告诉layout那个字段是style字段。
Gs_layout-stylefname = ‘CELLSTYLES’.
下面是关于这些功能的一段代码:我们已经把’SEATSMAX’整列设为可编辑状态,但当CARRID为’xy’时除外。如果connid是’02’时我们就使‘PLANETYPE’可编辑。
我们把style table添加到了我们的显示表中,并在layout structure中说明style field。我们在field catalog中把相应的EDIT设为‘X’。
FORM adjust_edittables USING pt_list LIKE gt_list[].
 DATA ls_listrow LIKE LINE OF pt_list.
 DATA ls_stylerow TYPE lvc_s_styl.
 DATA lt_styletab TYPE lvc_t_styl.
 
 LOOP AT pt_list INTO ls_listrow.
IF ls_listrow-carrid = ‘XY’.
 Ls_stylerow-fieldname = ‘SEATSMAX’.
 Ls_stylerow-style = cl_alv_grid=>mc_style_disabled.
 APPEND ls_stylerow TO lt_styletab.
ENDIF.
IF ls_listrow-connid = ‘02’.
 Ls_stylerow-fieldname = ‘PLANETYPE’
Ls_stylerow-.style = cl_alv_grid=>mc_style_enabled.
APPEND ls_Pstylerow TO lt_styletab.
ENDIF.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值