5

我找到了 2 个创建结构的示例。

这个有TYPES

TYPES : BEGIN OF employee_information,
            name TYPE c LENGTH 20,
            surname TYPE c LENGTH 20,
            tel_no TYPE n LENGTH 12,
          END OF employee_information.

而另一个DATA

DATA : BEGIN OF employee_information,
            name TYPE c LENGTH 20,
            surname TYPE c LENGTH 20,
            tel_no TYPE n LENGTH 12,
          END OF employee_information.

我阅读了 SAP 库中的文档主题“语句类型和数据”,但我不明白为什么我们使用这些不同的术语TYPESDATA创建结构化数据类型。

你能解释一下区别吗?

4

3 回答 3

8

首先,创建 TYPE 是较新且推荐使用的方法。

当您创建一个数据时,假设是一个内部表;

DATA: BEGIN OF employee_information OCCURS 0,             "itab with header line
            name TYPE c LENGTH 20,
            surname TYPE c LENGTH 20,
            tel_no TYPE n LENGTH 12,
      END OF employee_information.

您可以拥有带有标题行的内部表。但这是旧方法。

当你使用 TYPE 来声明一个内部表时,你可以同时使用它的标题和它的内容;

  TYPES: BEGIN OF t_employee_information,
            name TYPE c LENGTH 20,
            surname TYPE c LENGTH 20,
            tel_no TYPE n LENGTH 12,
  END OF t_employee_information.

  DATA: employee_information TYPE STANDARD TABLE OF t_employee_information INITIAL SIZE 0,      "itab
        employee_information TYPE t_employee_information.                    "work area (header line)

例如:您可以使用此 TYPE 来创建任意数量的内部表,例如:

  DATA: employee_information_1 TYPE TABLE OF t_employee_information, "itab1
        employee_information_1 TYPE t_employee_information.          "work area1 (header line)
  DATA: employee_information_2 TYPE TABLE OF t_employee_information, "itab2
        employee_information_2 TYPE t_employee_information.          "work area2 (header line)
  DATA: employee_information_3 TYPE TABLE OF t_employee_information, "itab3
        employee_information_3 TYPE t_employee_information.          "work area3 (header line)
于 2012-06-13T12:28:55.447 回答
4

TYPES语句创建一个数据类型,它是用于创建数据对象的模板。
DATA语句创建一个数据对象,它是数据类型的一个实例,并占用与其类型指定的内存空间一样多的内存空间。

于 2012-06-13T12:31:45.247 回答
0

首先是您发布的这段代码肯定是错误的,您将类型开头为employee_information并以personel_bilgileri.

问题是第二个声明定义了employee_information具有结构的变量name, surname and tel_no。在第二种情况下,您定义一个 type employee_information。然后您可以定义这种结构化类型的变量,例如DATA: l_str_employee_information TYPEemployee_information`。

于 2012-06-13T12:27:49.103 回答