可编辑ALV字段更新检查
来源:互联网 发布:好看的单眼皮女生知乎 编辑:程序博客网 时间:2024/06/05 20:01
可编辑字段较少时,可采用循环内表的方式逐个检查;当字段较多时,就比较繁琐了。可采用ooalv中类CL_ALV_CHANGED_DATA_PROTOCOL属性MP_MOD_ROWS
具体代码如下
*----------------------------------------------------------------------*
* CLASS lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:handle_data_changed
FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING er_data_changed.
ENDCLASS. "lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_event_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.
*--DATA_CHANGED
METHOD handle_data_changed.
PERFORM handle_data_changed CHANGING er_data_changed.
ENDMETHOD. "HANDLE_CHANGED_DATA
ENDCLASS. "lcl_event_receiver IMPLEMENTATION
*&---------------------------------------------------------------------*
*& Form handle_data_changed
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORM handle_data_changed CHANGING ir_data_changed TYPE REF TO cl_alv_changed_data_protocol.
DATA: ls_mod_cell TYPE lvc_s_modi,
lt_mod_cell TYPE lvc_t_modi.
FIELD-SYMBOLS : <ls_mod_row> TYPE type_line,
<lt_mod_row> TYPE tab_type_line.
ASSIGN ir_data_changed->mp_mod_rows->* TO <lt_mod_row>.
IF <lt_mod_row> IS ASSIGNED AND <lt_mod_row> IS NOT INITIAL. "判断是否有更改
LOOP AT ir_data_changed->mt_mod_cells INTO ls_mod_cell.
READ TABLE <lt_mod_row> ASSIGNING <ls_mod_row> INDEX ls_mod_cell-tabix.
IF sy-subrc = 0 AND <ls_mod_row>-flag = ''.
<ls_mod_row>-flag = 'X'.
ls_mod_cell-fieldname = 'FLAG'.
ls_mod_cell-value = 'X'.
APPEND ls_mod_cell TO lt_mod_cell.
ENDIF.
CLEAR ls_mod_cell.
ENDLOOP.
IF lt_mod_cell[] IS NOT INITIAL.
SORT lt_mod_cell.
DELETE ADJACENT DUPLICATES FROM lt_mod_cell COMPARING ALL FIELDS.
APPEND LINES OF lt_mod_cell TO ir_data_changed->mt_mod_cells.
ENDIF.
ir_data_changed->mt_good_cells[] = ir_data_changed->mt_mod_cells[].
ENDIF.
ENDFORM. "handle_data_changed
- 可编辑ALV字段更新检查
- 实现ALV显示可编辑,并可更新至数据库
- 可编辑ALV报表字段可以输入小数点的方法
- 可编辑保存ALV
- 可编辑单元格ALV
- 可编辑保存ALV
- 【SAP UI】可编辑ALV的内表同步更新
- ALV可编辑的设置
- 控制ALV单元格可编辑
- ALV 可编辑字段的输入数据不符合条件,小数点位置不正确的问题
- ALV在保存带有小数的字段时候,在可编辑状态会自动少数
- FM控制ALV单元格可编辑
- 使ALV控件中的内容可编辑
- 设置ALV单元格可编辑状态
- ALV部分单元格可编辑控制
- 设置ALV单元格可编辑状态
- ALV OO检查单元格更新数据
- ALV OO检查单元格更新数据
- [Web]万网虚拟机(阿里的)怎么实现apk、ipa文件下载?
- 自适应模糊神经网络的设计
- C面试常考知识点详解
- 队列实现迷宫问题
- POJ NOI0105-43 质因数分解
- 可编辑ALV字段更新检查
- 【转】正确理解ThreadLocal
- 用vue-cli 与vuex一步一步搭建一个笔记应用(四)
- 数据仓库之ETL漫谈
- springmvc 页面传值过程
- JAVA开发之 13-关键字的使用
- ffplay常用命令
- MyBatis传入参数为list、数组、map写法
- IO