zoukankan      html  css  js  c++  java
  • 对于ALV中的可编辑字段,当输入的数据不满足某种条件时,我们需要将它恢复到修改前的数据,并刷新ALV。但是可编辑的字段刷新后仍然时修改后的数据,此处记录一种方法。

    对于ALV中的可编辑字段,当输入的数据不满足某种条件时,我们需要将它恢复到修改前的数据,并刷新ALV。但是可编辑的字段刷新后仍然时修改后的数据,此处记录一种方法。

    FORM DATA_CHANGED_METHOD USING pa_data_changed TYPE REF TO cl_alv_changed_data_protocol.

           DATA: it_data TYPE  lvc_t_modi,

                 ls_data TYPE  lvc_t_modi.

           DATA: lt_alv LIKE TABLE OF gt_alv WITH HEADER LINE.

          

           CLEAR lt_alv[].

           lt_alv[] = gt_alv[]    “保存原表中的数据,用于后期恢复数据

          

           IF pa_data_changed IS NOT INITIAL.

                  LT_DATA = pa_data_changed->MT_MOD_CELLS.

           ENDIF.

          

           IF lv_a > lv_b.  “(判断如果输入的数据不符合条件,则恢复修改前的数据)

                  gt_alv[] = lt_alv[].

                  LOOP AT LT_DATA INTO LS_DATA.

                         CLEAR: wa_alv.

                         READ TABLE lt_alv INTO wa_alv INDEX LS_DATA-ROW_ID.

                         CASE LS_DATA-FIELDNAME.

                                WHEN ‘ZNKXS’.   “内控系数  (此处为可编辑状态的字段)

                                       CALL METHOD pa_data_changed->MODIFY_CELL

                                              EXPORTING

                                                     I_ROW_ID   =  LS_DATA-ROW_ID

                                                     I_FIELDNAME  =  LS_DATA-FIELDNAME

                                                     I_VALUE  =  WA_ALV-ZNKXS.

                                WHEN OTHERS.

                         ENDCASE.

                         MODIFY  GT_ALV  FROM  wa_alv  INDEX  LS_DATA-ROW_ID.

                         CLEAR  LS_DATA.

                  ENDLOOP.

           ENDIF.

    ENDFORM.

  • 相关阅读:
    VSCode前端 插件
    restframework 分页组件、响应器
    restframework 解析器、渲染器、url控制组件
    __getattr__
    apply和call的用法
    继承
    原型的指向改变
    局部变量变全局变量
    构造函数和实例对象和原型对象之间的关系
    _proto_和prototype
  • 原文地址:https://www.cnblogs.com/lsjy/p/14518241.html
Copyright © 2011-2022 走看看