2012-06-13 2 views
3

Я довольно новичок в ABAP, и я пытаюсь изучить типы данных структуры. Я нашел 2 примера для создания первой структуры;В чем разница между «данными» и «типами», создающими структуру?

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 : BEGIN OF employee_information, 
      name TYPE c LENGTH 20, 
      surname TYPE c LENGTH 20, 
      tel_no TYPE n LENGTH 12, 
      END OF employee_information. 

Я прочитал эту ссылку: http://help.sap.com/saphelp_nw70/helpdata/en/fc/eb2ff3358411d1829f0000e829fbfe/content.htm для понимания разницы между типами и данными, но это не достаточно хорошо для понимания того, почему мы используем это отчетливое термин для создания типа структуры данных?

ответ

5

Прежде всего, создание TYPE - это новый и рекомендуемый метод использования.

Когда вы создаете DATA, скажем, для внутренней таблицы;

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) 

Например: Вы можете использовать этот тип для того, чтобы создать как можно больше внутренних таблицы, как вы хотите, таких как:

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) 
+6

Это правильный ответ, но следует отметить, что не только неявные рабочие области являются старым методом, они являются незаконными в объектах ABAP, а SAP специально рекомендует не использовать их везде. –

+0

Брайан Каин прав об этом. И даже когда вы создаете DATA вместо TYPE и пытаетесь использовать его, например, в цикле, расширенная проверка программы ABAP (SLIN) дает вам ошибку о том, о чем говорил Брайан. Спасибо, Брайан. – Mtu

+0

Спасибо за ваш ответ, это довольно ясный и всеобъемлющий – Merve

0

Прежде всего, этот код, который вы отправили, безусловно, неверен, вы начали использовать тип employee_information и закончили его как personel_bilgileri.

Дело в том, что второе объявление определяет переменную employee_information, которая имеет структуру name, surname and tel_no. Во втором случае вы определяете тип employee_information. Затем вы можете определить переменную этого структурированного типа, например, как DATA: l_str_employee_information TYPE employee_information`.

2

TYPES оператор создает тип данных, которые являются шаблонами для создания объектов данных ,
Оператор DATA создает объект данных, который является экземпляром типа данных и занимает столько места в памяти, которое указывает его тип.

Смежные вопросы