ABAP:include type与field-symbols的用法

首先先看一个简单的报表:

*&---------------------------------------------------------------------*

*& Report  ZTEST007

*&

*&---------------------------------------------------------------------*

*&

*&

*&---------------------------------------------------------------------*


REPORT  ZTEST007.


TYPES: BEGIN OF TY_MARA.

  INCLUDE TYPE MARA.

TYPES END OF TY_MARA.


DATA:

      IT_MARA TYPE TABLE OF TY_MARA,

      WA_MARA TYPE TY_MARA,

      RESULT TYPE STRING.


FIELD-SYMBOLS .


SELECT * FROM MARA INTO CORRESPONDING FIELDS OF WA_MARA.

  INSERT WA_MARA INTO TABLE IT_MARA.

ENDSELECT.


LOOP AT IT_MARA INTO WA_MARA.

  ASSIGN WA_MARA TO .

  WA_MARA = .

  WRITE : /  WA_MARA-MATNR.

ENDLOOP.

正如代码所示:

include type可以把已经存在的类型包含进来,相当于JAVA里面的extends效果,把交结构继承了下来,自己还可以再自定义其他一些结构。

field-symbols其实是一个直接对内存操作的一个指针,他可以不指明类型,当对他进行ASSIGN操作的时候,自动转换成该类型。但不建议大量使用,会降低代码可读性。


你可能感兴趣的:(ABAP:include type与field-symbols的用法)