CALL METHOD er_data_changed->add_protocol_entry

 
METHOD handle_data_changed.

DATA: ls_modi TYPE lvc_s_modi.
    DATA: lv_valid TYPE c.

DATA: lt_lvc_t_modi TYPE lvc_t_modi .
    DATA: ls_lvc_t_modi TYPE lvc_s_modi ,
          l_matnr       TYPE matnr,
          l_datum       TYPE datum,
          l_datab       TYPE datum,
          lv_flag(1).
*    CLEAR:LV_FLAG,L_DMBTR,L_CTCOD.
    LOOP AT er_data_changed->mt_good_cells INTO ls_modi.
      IF ls_modi-fieldname = 'MATNR'.
*****************获取CELL值
        CALL METHOD er_data_changed->get_cell_value
          EXPORTING
            i_row_id    = ls_modi-row_id
            i_fieldname = ls_modi-fieldname
          IMPORTING
            e_value     = l_matnr.
        IF NOT l_matnr IS INITIAL.
          SELECT SINGLE matnr  INTO l_matnr FROM mara
                          WHERE matnr = l_matnr.
          IF sy-subrc = 0.
            SELECT SINGLE maktx INTO wa_out-maktx FROM makt
                               WHERE matnr = l_matnr
                                 AND spras = sy-langu.
            MODIFY gt_out FROM wa_out INDEX ls_modi-row_id TRANSPORTING maktx.
            CLEAR: ls_lvc_t_modi,lt_lvc_t_modi[].
            ls_lvc_t_modi-row_id = ls_modi-row_id.  "自然数
            ls_lvc_t_modi-fieldname = 'MAKTX'.   "内部表字段的字段名称
            ls_lvc_t_modi-value = wa_out-maktx."  单元格内容
            ls_lvc_t_modi-tabix  = ls_modi-row_id."自然数
            APPEND ls_lvc_t_modi TO lt_lvc_t_modi.
            CLEAR ls_lvc_t_modi.
            CALL METHOD g_grid->set_delta_cells
              EXPORTING
                it_delta_cells = lt_lvc_t_modi[].
          ELSE.
            lv_flag = 'X'.
*            CALL METHOD ER_DATA_CHANGED->ADD_PROTOCOL_ENTRY
*              EXPORTING
*                I_MSGID     = 'Z_BH1'
*                I_MSGNO     = '000'
*                I_MSGTY     = 'E'
*                I_MSGV1     = '你输入的商品不存在!'
*                I_MSGV2     = ''
*                I_MSGV3     = ''
*                I_FIELDNAME = LS_MODI-FIELDNAME
*                I_ROW_ID    = LS_MODI-ROW_ID.

ENDIF.
        ENDIF.
      ENDIF.

IF ls_modi-fieldname = 'DATBI'.
        CALL METHOD er_data_changed->get_cell_value
          EXPORTING
            i_row_id    = ls_modi-row_id
            i_fieldname = ls_modi-fieldname
          IMPORTING
            e_value     = l_datum.

READ TABLE gt_out INTO wa_out INDEX ls_modi-row_id.
        l_datab  = wa_out-datab.

IF l_datum < l_datab.
          lv_flag = 'X'.
          CALL METHOD er_data_changed->add_protocol_entry
            EXPORTING
              i_msgid     = 'Z_BH1'
              i_msgno     = '000'
              i_msgty     = 'E'
              i_msgv1     = '你输入的起始日期大于结束日期!'
              i_msgv2     = ''
              i_msgv3     = ''
              i_fieldname = ls_modi-fieldname
              i_row_id    = ls_modi-row_id.
        ENDIF.

ENDIF.

ENDLOOP.

****************显示错误消息
*    IF LV_FLAG = 'X'.
*      CALL METHOD ER_DATA_CHANGED->DISPLAY_PROTOCOL.
*    ENDIF.

ENDMETHOD.                    "HANDLE_DATA_CHANGED

20170228 METHOD handle_data_changed-的更多相关文章

  1. 20170228 ALV method中用E消息,会退出到初始界面;STOP 会dump;

    再回车就处理界面了, 所以,Handel_data_change 做数据检查时,如果需要报错要用到, CALL METHOD er_data_changed->add_protocol_entr ...

  2. SAP 直营验单

    *&---------------------------------------------------------------------* *& Report  ZSDR005 ...

  3. 00 alv抬头等

    *&---------------------------------------------------------------------* *& Report ZHJ_TEST0 ...

  4. ALV用例大全

    一.ALV介绍  The ALV Grid Control (ALV = SAP List Viewer)是一个显示列表的灵活的工具,它提供了基本功能的列表操作,也可以通过自定义来进行增强,因此可以允 ...

  5. OO ALV 学习参考

      http://blog.csdn.net/sapliumeng/article/details/18653491 一.ALV介绍 The ALV Grid Control (ALV = SAPLi ...

  6. alv行可编辑时带出描述

    ALV显示可以编辑的状态下可以带出描述信息等,比如维护表程序输入公司代码时需要带出公司代码的描述,这时就需要通过下面事件来触发 定义一个类: CLASS lcl_event_receiver DEFI ...

  7. ABAP DEMO ALV-监听数据修改

    *&---------------------------------------------------------------------* *& Report YDEMO_006 ...

  8. jsp中出现onclick函数提示Cannot return from outside a function or method

    在使用Myeclipse10部署完项目后,原先不出错的项目,会有红色的叉叉,JSP页面会提示onclick函数错误 Cannot return from outside a function or m ...

  9. Apply Newton Method to Find Extrema in OPEN CASCADE

    Apply Newton Method to Find Extrema in OPEN CASCADE eryar@163.com Abstract. In calculus, Newton’s me ...

随机推荐

  1. HackerRank# Red John is Back

    原题地址 简单动归+素数判定,没用筛法也能过 代码: #include <cmath> #include <cstdio> #include <vector> #i ...

  2. 【leetcode dp】629. K Inverse Pairs Array

    https://leetcode.com/problems/k-inverse-pairs-array/description/ [题意] 给定n和k,求正好有k个逆序对的长度为n的序列有多少个,0& ...

  3. 转:C++ Vector用法深入剖析

    http://developer.51cto.com/art/201002/183645.htm C++编程语言中有一种叫做Vector的应用方法,它的作用在实际编程中是非常重要的.在这里我们将会为大 ...

  4. 16.1116 NOIP 考前模拟(信心题)

    分火腿 (hdogs.pas/.c/.cpp) 时间限制:1s:内存限制 64MB 题目描述: 小月言要过四岁生日了,她的妈妈为她准备了n根火腿,她想将这些火腿均分给m位小朋友,所以她可能需要切火腿. ...

  5. 【HDOJ6223】Infinite Fraction Path(后缀数组,倍增)

    题意: 给一个长度为n的字符串s[0..n-1],但i的后继不再是i+1,而是(i*i+1)%n,求所有长度为n的“子串”中,字典序最大的是谁 n<=150000,s[i]=0..9 思路:后缀 ...

  6. 【BZOJ2002】弹飞绵羊(LCT)

    题意:给定一棵树,要求维护以下操作: 1.删除连接(x,y)的边 2.将(x,y)之间连边 3.询问某点子树大小 对于100%的数据n<=200000,m<=100000 思路:第一道有加 ...

  7. Security arrangements for extended USB protocol stack of a USB host system

    Security arrangements for a universal serial bus (USB) protocol stack of a USB host system are provi ...

  8. Gdb学习笔记1

    其实,从很早就开始接触gdb程序,gdb调试程序伴我成长,现在对其用法记录以下: 当程序的运行结果和预期结果不一致,或者程序出现运行错误时,gdb就可以派上大用处了.调试的基本过程是:  -> ...

  9. Lucene 6.5.0 入门Demo

    Lucene 6.5.0 要求jdk 1.8 1.目录结构: 2.数据库环境: private int id; private String name; private float price; pr ...

  10. oracle学习笔记(十四) 数据库对象 索引 视图 序列 同义词

    数据库对象 用户模式:指数据库用户所创建和存储数据对象的统称.在访问其它用户模式的数据库对象时需加上用户模式. 如:scott.emp, scott.dept等. 数据库对象包括:表.视图.索引.序列 ...