精华内容
下载资源
问答
  • abap 中modify 的使用

    2014-03-26 16:56:00
    1、modify table itab from wa ...modify用于更新和新增数据,当表没有数据时就新增,有就修改。 2、在使用binary search 时一定要先排序,并且排序的字段要和read语句的字段相同,否则有可能找不...

    1、modify table itab from wa Transporting f1 f2 ... 

    表示表itab中符合工作区wa 中关键字的一条数据的 f1 f2字段会被wa中对应的字段值更新。

     

    modify用于更新和新增数据,当表中没有数据时就新增,有就修改。

     

    2、在使用binary search 时一定要先排序,并且排序的字段要和read语句中的字段相同,否则有可能找不到数据。 

        sort itab by matnr.

        read table itab with key length ='7' binary search transporting no fields.

    注: binary search 采用二分法

    example:

    排序前:

    width  length
    53
    62
    29
    41
    87

    如果按照width排序:

    width  length
    23
    42
    59
    61
    87

    但是如果我们read的时候是按照length来read的话,数据会从中间数字9的地方分别往两边找,因为7<9所以会在表格的上半部分找,所以会出现找不到数据的情况。

    转载于:https://www.cnblogs.com/cindyLu/p/3625995.html

    展开全文
  • ABAP——modify内表和modify数据库表

    千次阅读 2021-04-07 16:47:44
    modify内表 一般的modify内表是需要嵌套在loop,或者在后面加上where判断条件,否者火报一个没有有效游标的错误。 modify数据库表 直接modify table就可以了。 modify table 数据库表 from 工作区.

    modify内表

    一般的modify内表是需要嵌套在loop中,或者在后面加上where判断条件,否者会报一个没有有效游标的错误。
    在这里插入图片描述在where前面需要加上transporting
    在这里插入图片描述

    modify数据库表

    直接modify 就可以了。

    modify 数据库表 from 工作区.
    
    展开全文
  • ABAP MODIFY

    千次阅读 2019-08-30 10:39:55
    代码文本 * ML10 取值逻辑  LOOP AT gt_alv INTO gw_alv. "内表放入结构体  gw_alv-sobkz = 'Q'. ... modify gt_alv FROM gw_alv. "根据结构体修改内表  ENDLOOP. 原理解析

    代码文本

    * ML10 取值逻辑
      LOOP AT gt_alv INTO gw_alv. "内表放入结构体
        gw_alv-sobkz = 'Q'.
        modify gt_alv FROM gw_alv. "根据结构体修改内表
        ENDLOOP.

    原理解析

    展开全文
  • ABAP MODIFY-TRANSPORTING

    2021-05-13 14:14:23
    1、使用CONCATENATE进行字符串拼接(i型和c型不能拼) 2、使用&&进行字符串拼接 3、MODIFY-TRANSPORTING 4、模糊查询 *&---------------------------------------------------------------------* *& REPORT Z_09_...

    1、使用CONCATENATE进行字符串拼接(i型和c型不能拼)
    2、使用&&进行字符串拼接
    3、MODIFY-TRANSPORTING
    4、模糊查询

    *&---------------------------------------------------------------------*
    *& REPORT Z_09_SELECTMARA
    *&---------------------------------------------------------------------*
    *&
    *&---------------------------------------------------------------------*
    REPORT Z_09_SELECTMARA.
    
    *DATA: BEGIN OF LS_MARA,
    *    MATNR LIKE MARA-MATNR,
    *    MAKTX LIKE MAKT-MAKTX,
    *    TEXT(80) TYPE C,
    *  END OF LS_MARA.
    *DATA: LT_MARA LIKE TABLE OF LS_MARA.
    *
    *DATA LV_DATE LIKE SY-DATUM.
    *LV_DATE = SY-DATUM - 300.
    *
    *SELECT
    *  A~MATNR
    *  B~MAKTX
    *  FROM MARA AS A
    *  LEFT JOIN MAKT AS B
    *  ON A~MATNR = B~MATNR
    *  INTO CORRESPONDING FIELDS OF TABLE LT_MARA
    *  WHERE A~ERSDA < LV_DATE
    *  AND A~MATNR LIKE 'RCT%' OR A~MATNR LIKE 'FP%'.
    *
    *
    *LOOP AT LT_MARA INTO LS_MARA.
    *  WRITE: / 'MARA=',LS_MARA-MATNR,
    *           'MAKT=',LS_MARA-MAKTX,
    *           'TEXT=',LS_MARA-TEXT.
    *ENDLOOP.
    
    *自定义结构类型
    TYPES: BEGIN OF TY_ITAB,
             MATNR    LIKE MARA-MATNR,
             MAKTX    LIKE MAKT-MAKTX,
             TEXT(80) TYPE C,
           END OF TY_ITAB.
    
    *定义工作区
    DATA LW_ITAB TYPE TY_ITAB.
    
    *使用自定义类型来定义表
    DATA LT_ITAB LIKE TABLE OF LW_ITAB.
    
    *定义一个时间变量
    DATA LV_DATE LIKE SY-DATUM.
    
    *给时间变量赋值
    LV_DATE = SY-DATUM - 300.
    
    *字符串拼接的变量声明
    DATA: STR1(10) TYPE C VALUE '当前是第',
          STR2(10) TYPE C,
          STR3(10) TYPE C VALUE '行'.
    
    *查询
    SELECT
      A~MATNR
      B~MAKTX
      FROM MARA AS A
      LEFT OUTER JOIN MAKT AS B
      ON A~MATNR = B~MATNR
      INTO CORRESPONDING FIELDS OF TABLE LT_ITAB
      WHERE A~ERSDA > LV_DATE
      AND A~MATNR LIKE 'FP%'
      OR A~MATNR LIKE 'RCT%'.
    *  AND B~SPRAS = SY-LANGU.
    
    **查询 UP TO * ROWS
    *SELECT
    *  A~MATNR
    *  B~MAKTX
    *  FROM MARA AS A
    *  LEFT OUTER JOIN MAKT AS B
    *  ON A~MATNR = B~MATNR
    *  INTO CORRESPONDING FIELDS OF TABLE LT_ITAB
    *  UP TO 5 ROWS
    *  WHERE A~ERSDA > LV_DATE
    *  AND A~MATNR LIKE 'FP%'
    *  OR A~MATNR LIKE 'RCT%'
    *  .
    
    *循环,给内表的TEXT赋值  使用CONCATENATE进行字符串拼接(i型和c型不能拼)
    LOOP AT LT_ITAB INTO LW_ITAB.
      STR2 = SY-TABIX.
      CONCATENATE STR1 STR2 STR3 INTO LW_ITAB-TEXT.
    *  LW_ITAB-TEXT = '当前是第' && SY-TABIX && '行'.
      MODIFY LT_ITAB FROM LW_ITAB.
    ENDLOOP.
    
    **循环,给内表的TEXT赋值  使用&&进行字符串拼接  MODIFY-TRANSPORTING
    *LOOP AT LT_ITAB INTO LW_ITAB.
    *  LW_ITAB-MATNR = '111'.
    *  LW_ITAB-TEXT = '当前是第' && SY-TABIX && '行'.
    *  MODIFY LT_ITAB FROM LW_ITAB TRANSPORTING TEXT.
    *ENDLOOP.
    
    **循环,给内表的text赋值 通过指针FIELD-SYMBOLS
    *FIELD-SYMBOLS: <F1> LIKE LINE OF LT-ITAB.
    
    
    *给内表插入抬头描述在第一行
    LW_ITAB-MATNR = 'MATNR'.
    LW_ITAB-MAKTX = 'MAKTX'.
    LW_ITAB-TEXT = 'TEXT'.
    INSERT LW_ITAB INTO LT_ITAB INDEX 1.
    
    *排序  降序
    *SORT LT_ITAB DESCENDING BY TEXT.
    
    *循环输出  FROM 1 TO 5输出前五行
    LOOP AT LT_ITAB INTO LW_ITAB FROM 1 TO 5.
      WRITE: / LW_ITAB-MATNR,
               LW_ITAB-MAKTX,
               LW_ITAB-TEXT.
    ENDLOOP.
    
    **循环输出 EXIT
    *LOOP AT LT_ITAB INTO LW_ITAB.
    *  WRITE: / LW_ITAB-MATNR,
    *           LW_ITAB-MAKTX,
    *           LW_ITAB-TEXT.
    *  IF SY-TABIX = 5.
    *    EXIT.
    *  ENDIF.
    *ENDLOOP.
    
    **循环输出 CHECK
    *LOOP AT LT_ITAB INTO LW_ITAB.
    *  WRITE: / 'CHECK BEFORE'.
    **CHECK 为true执行后面的语句,为false不执行
    *  CHECK SY-TABIX <= 5.
    *  WRITE: / LW_ITAB-MATNR,
    *           LW_ITAB-MAKTX,
    *           LW_ITAB-TEXT.
    *  WRITE: / 'CHECK AFTER'.
    *ENDLOOP.
    
    展开全文
  • ABAP Modify 的用法

    千次阅读 2017-03-09 15:21:00
    一、修改内表的一行 ... MODIFY 表itab FROM 工作区wa_ TRANSPORTING Field1 Field2.---- WHERE 条件1 and 条件2. 例子 :MODIFY IT_SO_DATA FROM LV_SO_DATA TRANSPORTING EDAT WHEREVBELN= LV_DELI_WEEK...
  • ABAP Modify 的用法(TRANSPORTING)

    千次阅读 2020-05-06 16:38:53
    MODIFY 表itab FROM 工作区wa_ TRANSPORTING Field1 Field2.---- WHERE 条件1 and 条件2. 例子 :MODIFY IT_SO_DATA FROM LV_SO_DATA TRANSPORTING EDAT WHERE VBELN = LV_DELI_WEEK-VBELN AND POSN...
  • ABAP SQL Modify 使用

    千次阅读 2012-05-16 10:55:54
    Modify会根据你提供的Workarea的字段对应Table的字段,通过匹配Primary Key 值来操作,记住这个Primary Key是Table的而不是Workarea或内表的非数值字段。  MODIFY dbtab- source   Syntax  ... FROM { {...
  • 结构的字段,只是没有备注。 名称   长度   说明 NAME 30  屏幕字段的名称 GROUP1 3  属于字段组 1 的字段 GROUP2 3  属于字段组 2 的字段 GROUP3 3  属于字段组 3 的...
  • ABAP 的搜索帮助

    万次阅读 2016-03-28 19:13:42
    abap中,我们用到的搜索帮助个人遇到的情况如下,进行简要总结:选中屏幕的搜索帮助 ;SE11创建搜索帮助;ALV的搜索帮助。
  • ABAP中的内表操作

    2020-05-08 23:36:02
    1:ABAP中有三种类型的内表: Index Tables Hashed Table Table Type STANDARD TABLE SORTED TABLE HASHED TABLE 通过索引访问 ...
  • abap中,利用write进行表单打印示例

    千次阅读 2015-04-23 10:30:37
    abap中,利用write进行表单打印示例
  • ABAP中的loop

    2020-11-29 16:52:07
    总结 1 原则 loop在ABAP中使用太多,尽量不要在loop中用loop.这样的结果是行数太多,非常的影响速度,这可能是几何倍数增加循环次数。但如果数据量很少,也可以使用,如果没办法,那只有使用,下面是一个DEMO,按...
  • abap中Tablecontrol隐藏列

    千次阅读 2017-08-31 11:43:09
    在dialog程序开发,有时候根据业务需求,需要隐藏某些列,下面是隐藏列的方法: CONTROLS: tb12 TYPE TABLEVIEW USING SCREEN 2000. "Table Control名称 DATA: lv_col LIKE LINE OF tb12-cols. "定义Table Control...
  • ABAP中内表操作

    千次阅读 2019-06-26 16:21:31
    abap修改内表常用的是modifymodify常常在循环使用 ***将i_list工厂为1000的数据物料修改为4001 LOOP AT i_list.  IF i_list-werks = '1000'.  i_list-matnr = '4001'.  ENDIF.  MODIFY i_list. ...
  • ABAP中数据库语法

    2016-02-19 15:51:39
    1、abap语言使用的数据库语言:open sql ,Nativesql(特定数据库自身sql) 2、使用OPen SQL注意的原则: a、尽可能减少满足条件的数据条目数量。 b、减少数据的传输量,以减少网络流量。 c、减少访问的数据库表量...
  • SAP ABAP中关于commit的一点解释

    千次阅读 2015-01-12 17:10:52
    SAP ABAP中关于commit的一点解释
  • ABAP中 Collect 的用法

    2020-06-27 17:05:33
    非数值字段不同的情况下,效果和append相同执行插入内表操作,当非数值字段相同的时候,则相当于modify的效果,只不过是将数值字段进行汇总相加后更新。 要点一:COLLECT实际运用loop的内表不需要排序,直接loop...
  • ABAP中Collect的用法

    万次阅读 2016-06-30 10:08:24
    ABAP编程,我们最常见的操作内表的写法基本就是上述几种用法,尤其是modify,在最后数据内表空余字段填充时都要用到。而insert可能用到的比较少,append也是很常用的写法,有时我们会习惯使用我们熟悉的常用的...
  • ABAP中范围值的使用

    2019-07-25 00:06:53
    ABAP程序开发过程,范围值是经常使用的。 在我以前的使用过程,我一般是这样使用的: data: lr_vbeln type range of vbap-vbeln with header line. select vbeln into lr_vbeln-low from vbap. lr_vbeln-sign ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,514
精华内容 1,405
关键字:

abap中modify