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

Просто передача внутренней таблицы обычно недостаточна — нужно также описать подпрограмме структуру внутренней таблицы. Если не описать структуру внутренней таблицы в операторе form, то компоненты внутренней таблицы будут неизвестны в подпрограмме. Поэтому доступ к любой компоненте в подпрограмме приведет к синтаксической ошибке.

Синтаксис описания внутренней таблицы подпрограмме:

Метод

Синтаксис

Правильные значения для x

Со строкой заголовка

tables it structure x

Field String

Структура DDIC

Таблица DDIC

Внутренняя таблица со строкой заголовка

 

tables it like x

Внутренняя таблица без строки заголовка

Тело внутренней таблицы (it[])

Без строки заголовка

using it[] like x

Внутренняя таблица без строки заголовка

Тело внутренней таблицы (it[])

После structure должно быть задано имя Field String, структуры или таблицы DDIC или имя внутренней таблицы, у которой есть строка заголовка.

После like должно быть тело таблицы. Если у внутренней таблицы нет строки заголовка, то it или it[] обращается к телу it. Если у it есть строка заголовка, то для обращения к телу it может использоваться it[].

Если передается только тело, то в подпрограмме нужна рабочая область для добавления записей во внутреннюю таблицу. Для ее определения можно использовать local, data или statics. Если для определения рабочей области используется оператор data, то доступно дополнение like line of itabbody. Оно определяет Field String с использованием только тела внутренней таблицы. Получающаяся Field String точно соответствует строке тела внутренней таблицы itabbody. Например,

data fs like line of it[].

определяет Field String с именем fs. Она имеет ту же структуру, что и строка it.

  1. Передача внутренней таблицы со строкой заголовка.

Если у внутренней таблицы есть строка заголовка, и нужно передать в подпрограмму и строку заголовка, и тело, используют синтаксис tables it structure x. Тогда передается и строка заголовка, и тело, и они передаются по ссылке. Поэтому изменения, сделанные в подпрограмме или в строке заголовка, или в теле внутренней таблицы, немедленно отражаются в оригинале.

Если у внутренней таблицы нет строки заголовка, а нужно передать в подпрограмму тело и создать там строку заголовка, можно также использовать синтаксис tables it structure x. Это передает тело по ссылке и создает строку заголовка локально в подпрограмме. Изменения, сделанные в теле внутренней таблицы в подпрограмме, немедленно отражаются в оригинале.

Если у внутренней таблицы нет строки заголовка, и нужно передать тело, автоматически не создавая строку заголовка в подпрограмме, можно использовать синтаксис tables it like x. При использовании этого синтаксиса можно передать тело по ссылке, по значению или по значению и результату. Если it передается по ссылке, то изменения, сделанные в теле внутренней таблицы в подпрограмме, будут немедленно отражены в оригинале. Если it передается по значению, создается локальная копия it, и изменения не сохраняются при выходе из подпрограммы и освобождении локальной памяти для it. Если it передается по значению и результату, изменения копируются назад в оригинал при выполнении оператора endform. Оператор stop в подпрограмме вызовет отказ от всех изменений в it и передачу управления непосредственно end-of-selection.

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