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.

  • 相关阅读:
    fiddler配置及使用教程
    获取字符串中出现次数最少的字符
    引用数据类型的深拷贝
    jquery一些方法
    常用字体
    图片模拟
    返回上一页并刷新
    移动端网页调试神器
    input一些限制
    使用transform后z-index失效的解决方法
  • 原文地址:https://www.cnblogs.com/lsjy/p/14518241.html
Copyright © 2011-2022 走看看