Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

BC400_RU_ECC_2005

.pdf
Скачиваний:
1521
Добавлен:
21.05.2015
Размер:
40.8 Mб
Скачать

BC400

Урок: Работа с элементарными объектами данных

Упражнение 5: Базовые ABAPоператоры

Цели упражнения

Выполнив это упражнение, вы сможете

определять элементарные объекты данных

присваивать значения

внедрять ветви условий

выполнять вычисления

Практический пример

Требуется создать простую ABAP-программу для четырех базовых правил расчета. На экране выбора необходимо ввести значения и арифметическую операцию. Результат должен выводиться в виде списка.

Задание 1:

Создание программы

1.Создайте исполняемую программу ZBC400_##_COMPUTE без

“TOP-INCLUDE”.

Задание 2:

Определите входные параметры (неявное определение экрана выбора).

1.Определите входные параметры двух целых значений (рекомендуемое имя: pa_int1, pa_int2) и арифметическую операцию (рекомендуемое имя: pa_op).

Задание 3:

Выполните вычисления и создайте список вывода.

1.Кроме того, определите элементарный объект данных для результата; тип: упакованное число с двумя десятичными разрядами (рекомендуемое имя: result).

2.Выполните вычисление в зависимости от указанной арифметической операции.

Для ветви используйте оператор CASE.

3.Результат должен выводиться в виде списка.

Продолжение на следующей странице

 

© 2006 г. SAP AG All rights reserved. Авторские

101

06-04-2006

права защищены.

Глава 4: Основные языковые элементы ABAP

BC400

Задание 4:

Выполните поиск ошибок.

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

Для проверки используйте оператор IF.

2.При попытке деления на нуль в списке должно выводиться сообщение об ошибке.

Рекомендация: Выполнение поиска ошибок с использованием более “удобного” диалога пользователя описывается в одном из следующих уроков.

102

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

BC400

Урок: Работа с элементарными объектами данных

Решение 5: Базовые ABAP-операторы

Задание 1:

Создание программы

1.Создайте исполняемую программу ZBC400_##_COMPUTE без

“TOP-INCLUDE”.

a)Этот шаг выполняется в соответствии с обычной процедурой.

Задание 2:

Определите входные параметры (неявное определение экрана выбора).

1.Определите входные параметры двух целых значений (рекомендуемое имя: pa_int1, pa_int2) и арифметическую операцию (рекомендуемое имя: pa_op).

a)См. выдержку из исходного текста в примере решения.

Задание 3:

Выполните вычисления и создайте список вывода.

1.Кроме того, определите элементарный объект данных для результата; тип: упакованное число с двумя десятичными разрядами (рекомендуемое имя: result).

a)См. выдержку из исходного текста в примере решения.

2.Выполните вычисление в зависимости от указанной арифметической операции.

Для ветви используйте оператор CASE.

a)См. выдержку из исходного текста в примере решения.

3.Результат должен выводиться в виде списка.

a)См. выдержку из исходного текста в примере решения.

Задание 4:

Выполните поиск ошибок.

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

Для проверки используйте оператор IF.

a)См. выдержку из исходного текста в примере решения.

Продолжение на следующей странице

 

© 2006 г. SAP AG All rights reserved. Авторские

103

06-04-2006

права защищены.

Глава 4: Основные языковые элементы ABAP

BC400

2.При попытке деления на нуль в списке должно выводиться сообщение об ошибке.

Рекомендация: Выполнение поиска ошибок с использованием более “удобного” диалога пользователя описывается в одном из следующих уроков.

a)См. выдержку из исходного текста в примере решения.

Результат

Фрагмент исходного текста: SAPBC400TSS_COMPUTE

REPORT sapbc400tss_compute.

PARAMETERS: pa_int1 TYPE i, pa_op(1) TYPE c, pa_int2 TYPE i.

DATA result TYPE p DECIMALS 2.

IF NOT ( pa_op = ’+’ OR pa_op = ’-’ OR pa_op = ’*’ OR pa_op = ’/’ ).

WRITE: ’Invalid operator!’(iop).

ELSEIF pa_op = ’/’ AND pa_int2 = 0.

WRITE: ’No division by zero!’(dbz).

ELSE.

CASE pa_op.

WHEN ’+’.

result = pa_int1 + pa_int2. WHEN ’-’.

result = pa_int1 - pa_int2. WHEN ’*’.

result = pa_int1 * pa_int2.

Продолжение на следующей странице

104

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

BC400

Урок: Работа с элементарными объектами данных

WHEN ’/’.

result = pa_int1 / pa_int2. ENDCASE.

WRITE: ’Result:’(res), result.

ENDIF.

Примечание: Дополнения для оператора WRITE, указанные в скобках, описываются в одном из следующих уроков. На данном этапе эти дополнения можно опустить.

 

© 2006 г. SAP AG All rights reserved. Авторские

105

06-04-2006

права защищены.

Глава 4: Основные языковые элементы ABAP

BC400

Резюме по уроку

Теперь вы сможете:

определять элементарные объекты данных (простые переменные)

использовать базовые ABAP-операторы с элементарными объектами данных

выполнять и анализировать программы в режиме отладки

106

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

BC400

Урок: Работа со структурами

Урок: Работа со структурами

Обзор урока

На этом уроке продолжается описание структурированных объектов данных (структурных переменных) и их анализ с использованием ABAP-отладчика. Кроме того, рассматриваются возможности использования базовых ABAP-операторов для структурированных объектов данных.

Цели урока

Прослушав этот урок, вы сможете

определять структурированные объекты данных (переменные структуры)

использовать базовые ABAP-операторы для структурированных объектов данных

анализировать структурированные объекты данных в режиме отладки

Практический пример

Необходимо обработать первые собственные структуры данных и выполнить поиск семантических ошибок в программах с помощью ABAP-отладчика.

 

© 2006 г. SAP AG All rights reserved. Авторские

107

06-04-2006

права защищены.

Глава 4: Основные языковые элементы ABAP

BC400

Работа со структурами

Рисунок 64: Определение структур с глобальными типами данных

ВABAP можно определять структурированные объекты данных (называемые

структурными переменными или просто структурами). Это позволяет комбинировать значения, логически составляющие один объект данных. Структуры могут быть вложенными. Это означает, что компоненты могут состоять из нескольких структур или даже внутренних таблиц.

Впрограмме структурные переменные определяются с помощью оператора DATA аналогично элементарным объектам данных. При выборе типов можно использовать следующие источники:

структуру словаря;

прозрачную таблицу (которая в этом случае используется в качестве типа структуры);

тип структуры, локально описанный в программе.

.

На следующем рисунке представлено определение структурной переменной с помощью локально описанного типа структуры.

108

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

BC400

Урок: Работа со структурами

Рисунок 65: Определение структур с локальными типами данных

Для определения локальных типов структур может использоваться оператор TYPES. Здесь компоненты находятся внутри следующих операторов:

BEGIN OF structure_type_name,

... ,

END OF structure_type_name.

. Каждому компоненту можно присвоить любой тип посредством добавления TYPE. Для получения дополнительной информации см. документацию по ключевым словам оператора TYPES.

Объект данных определяется непосредственно обычным способом.

При необходимости можно также непосредственно определить структурированный объект данных. Для этого необходимо заменить ведущее ключевое слово TYPES словом DATA.

DATA: BEGIN OF structure_name,

... ,

END OF structure_name.

 

© 2006 г. SAP AG All rights reserved. Авторские

109

06-04-2006

права защищены.

Глава 4: Основные языковые элементы ABAP

BC400

Рисунок 66: Обращение к структурным компонентам

Структурные компоненты всегда выделяются дефисом: structure_name-component_name.

Поэтому использовать дефисы в именах не следует.

Рисунок 67: Копирование структурных компонентов с одним и тем же именем

110

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

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