Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SAP(Контрольная работа №4).doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
318.46 Кб
Скачать
  1. Определение рабочей области tables.

Переменные, определенные с использованием оператора tables, всегда являются глобальными переменными. Размещение оператора tables вверху программы определяет глобальную Field String. Размещение этого же оператора в подпрограмме также определяет глобальную Field String с тем же именем. Поэтому не нужно использовать оператор tables в подпрограмме, так как такое определение — всегда глобальная переменная; глобальные определения должны быть помещены вверху программы.

Локальная рабочая область таблицы в подпрограмме определяется с использованием local вместо оператора tables. Синтаксис — такой же, как у tables, но он определяет локальную Field String вместо глобальной. Переменные, определенные при использовании local, видимы изнутри подпрограммы и всех подпрограмм, которые она вызывает.

Точнее, переменная известна в программе только после точки, в которой она определена. Например, если переменная определяется в строке 10, к ней можно обратиться в строке 11 и позже, но не в строках перед строкой 10. В случае определения local можно обратиться к глобальной версии переменной в любой точке перед определением local.

  1. Передача параметров без контроля типов.

В дополнение к определению переменных c использованием tables, local, data и statics переменные могут быть определены также непосредственно в операторе form. Они известны как параметры. Параметры могут быть или локальными переменными или ссылкой на глобальные переменные. Память для локальных параметров выделяется при вызове подпрограммы и освобождается при её завершении.

Если переменные определяются в операторе form, perform должен передать значение каждой из этих переменных.

Параметры, задаваемые в операторе form, называют формальными параметрами, а параметры, задаваемые в операторе performфактическими параметрами.

  1. Передача типизированных параметров.

Формальные параметры могут быть типизованными или нетипизованными.

Типизованный параметр — формальный параметр, для которого указан тип данных после его имени в операторе form.

Нетипизованный параметр — формальный параметр, для которого не указан тип данных после его имени в операторе form

Нетипизованные формальные параметры позволяют передавать переменную любого типа данных или длины. Формальный параметр использует атрибуты фактического параметра. Например, если нетипизованному формальному параметру p1 передается четырехбайтовое целое число, то p1 становится четырехбайтовым целым числом. Если этому же параметру передается строка длиной 3 символа, то он станет строкой длины 3.

Синтаксис передачи типизированных параметров:

form s1 using u1 type t value(u2) type t

changing c1 type t value(c2) type t.

где:

s1 — имя подпрограммы

u1, u2, c1 и c2 — формальные параметры

t — или тип данных ABAP/4, или тип данных, определенный пользователем

Особенности оператора:

  • в операторе form может быть определен только тип данных, длина не может быть определена

  • при определении формального параметра, используя тип данных фиксированной длины (типы d, t, i и f), длина фактического параметра должна соответствовать типу данных формального параметра

У типизированных параметров есть три преимущества:

  • Они более эффективны. Необходимо меньше времени работы центрального процессора при распределении памяти для типизованного параметра, чем для нетипизованного

  • Они помогают предотвращать ошибки кодирования. Поскольку невозможно передать параметр несовместимого типа, проверка синтаксиса укажет на ошибку, если попытаться передать несовместимый параметр

  • Они помогают предотвращать ошибки во время выполнения программы. Например, если программа принимает переменную без контроля типов и выполняет над ней арифметическую операцию, возможно передать символьные данные в эту подпрограмму. Если это случится во время выполнения, произойдет ошибка

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]