ABAP MODIFY-TRANSPORTING

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.
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: ABAP中的modify transporting是一种修改数据对象的方法,它可以在不影响其他数据对象的情况下修改指定的字段。使用该方法时,需要指定要修改的字段和其新值,并且需要使用TRANSPORTING选项来指定哪些字段需要被修改。这样可以避免不必要的数据更新,提高程序的效率和可维护性。 ### 回答2: ABAP Modify Transporting(修改传输)是SAP ABAP编程中的一个重要特性,它允许开发人员修改一个或多个字段的值而不改变其他字段的值,通常用于修改数据库中的数据。这种特性主要是通过使用MODIFY语句来实现的,该语句允许开发人员根据需要修改数据记录的特定字段。修改传输是一种灵活的方法,它可以使开发人员对数据进行更精细的控制,并且还可以以方便的方式将修改传输到其他环境中。 在修改传输过程中,通常需要指定哪些字段将被修改并传输,以及修改后的值。这些参数可以通过使用TRANSPORTING子句来完成。TRANSPORTING子句与ABAP MODIFY语句结合使用,可指定需要传输的字段,从而确保为其他环境中的记录进行任何更改。该子句还可用于指定在传输时需要保持不变的字段,以便确保这些字段的值在传输过程中不会被更改。 值得注意的是,如果开发人员修改数据记录并使用ABAP MODIFY语句进行传输时,确保事务处理可用。如果开发人员在传输时遇到错误或中断,或者未提交事务,就会导致数据丢失或不一致。因此,在使用ABAP MODIFY语句传输数据前,开发人员应该检查和确保事务处理是否正确。 总之,ABAP修改传输是一种使开发人员在SAP ABAP编程中更加灵活和精细地控制数据的方式。通过使用TRANSPORTING子句和事务处理,开发人员可以安全地将修改传输到其他环境中,并确保数据的精确性和一致性。 ### 回答3: ABAP是一种编程语言,用于SAP系统的开发。在ABAP中,MODIFY TRANSFERRING是一种修改操作,用于修改表格或内部表格中的数据。 当我们想要修改表格中的一行数据时,可以使用MODIFY语句。该语句需要两个参数:表格名和修改条件。例如,如果我们要将客户表格中ID为100的客户的电话号码修改为“123456789”,可以使用以下语句: MODIFY zcustomer TRANSPORTING telefone WHERE kunnr = '100'. 在这里,“zcustomer”是表格名,“telefone”是要修改的字段名,“kunnr = '100'”是修改条件。TRANSPORTING关键字告诉SAP系统,只修改指定的字段,而不是整行数据。 除了在表格中修改数据,我们还可以在内部表格中使用MODIFY操作。和表格一样,我们需要指定内部表格的名称以及修改条件。例如,如果我们要修改一个内部表格中的数据,可以使用以下语句: MODIFY itab TRANSPORTING field WHERE condition. 在这里,“itab”是内部表格的名称,“field”是要修改的字段名,“condition”是修改条件。TRANSPORTING关键字告诉系统,只修改指定的字段数据。 MODIFY操作对于修改SAP系统中的数据非常有用。它可以帮助我们快速而准确地修改表格或内部表格中的数据。但是,在使用MODIFY操作时需要谨慎,以避免意外修改数据带来的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值