Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие авар.doc
Скачиваний:
62
Добавлен:
02.09.2019
Размер:
2.34 Mб
Скачать

Использование цветов

Дополнение COLOR команды WRITE позволяет задать цвет фона для каждого поля.

WRITE: / 'Head' COLOR COL_HEADING,

/ 'Key field' COLOR COL_KEY,

'Background',

'Negative' COLOR COL_NEGATIVE,

/ 'Total sum' COLOR COL_TOTAL INTENSIFIED OFF.

Результат выполнения такой программы будет выглядеть следующим образом:

Рисунок 23

Ниже показан список некоторых цветов.

Рисунок 24

События и управление выполнением программы

События

В ABAP/4 для описания взаимодействия программы с пользователем и системой существует набор событий. Для примера рассмотрим работу события AT LINE-SELECTION, которое возникает при двойном щелчке мышью на строке выходной страницы экрана.

TABLES: ABAPTREE.

SELECT * FROM ABAPTREE.

WRITE / ABAPTREE-REPNAME.

ENDSELECT.

AT LINE-SELECTION.

WRITE: / 'This line appears after drill-down'.

Условия

В ABAP/4 предусмотрены две базовые конструкции для определения условий.

Условие IF

DATA: N(4) TYPE N VALUE '123'.

IF N > 0.

WRITE / '>0'.

ELSEIF N = 0.

WRITE / 'zero'.

ELSE.

WRITE / 'other'.

ENDIF.

Логическое выражение в операторе IF во многом схожи с теми, что используются в других языках программирования.

При сравнении символьных строк могут использоваться следующие отношения:

  • a CA b (содердит любой) - a содержит как минимум один символ b;

  • a CO b (содержит только) - a содержит только символы из b (в любом порядке);

  • a CS b (содержит строку) - a содержит символьную строку b;

  • a CP b (содержит шаблон) - a содержит шаблон b (* - означает любую символьную строку, + - отдельный символ).

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

DATA: A(6) VALUE 'ABAP/4'.

IF A CP '*AP++'.

WRITE / 'a contains AP followed by two more characters'.

ENDIF.

Условие CASE

DATA: COLOR(10) VALUE 'yellow'.

CASE COLOR.

WHEN 'red'. WRITE 'color is red'.

WHEN 'green'. WRITE 'color is green'.

WHEN 'yellow'. WRITE 'color is yellow'.

WHEN OTHERS. WRITE 'non-standard color'.

ENDCASE.

Циклы

Повторяющиеся операции в ABAP/4 могут выполняться с помощью следующих элементарных операций.

Безусловный цикл

Предположим необходимо вычислить квадраты первых 100 чисел:

DATA: SQUARE_NUMBER TYPE I.

DO 100 TIMES.

SQUARE_NUMBER = SY-INDEX ** 2.

WRITE / SQUARE_NUMBER.

ENDDO.

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

DO.

IF SY-INDEX > 5.

EXIT.

ENDIF.

WRITE / SY-INDEX.

ENDDO.

Цикл с условием завершения

Для организации цикла с неизвестным числом шагов, но при этом известно некое условие завершения цикла, используется конструкция WHILE.

WHILE SY-INDEX <= 5.

WRITE / SY-INDEX.

ENDWHILE.

Подпрограммы и функции

Для разработки модулей, предназначенных для многократного использования, ABAP/4 предлагает разработчикам различные средства, например:

  • Формы (или подпрограммы) - программные модели, локализованные в конкретной программе;

  • Функции - глобальные программные компоненты, которые могут вызываться из разных программ.

Формы (или подпрограммы)

Форма, или подпрограмма, выделяется операторными скобками FORM...ENDFORM и вызывается из основной программы с помощью оператора PERFORM:

DATA: FLAG VALUE 'G'.

WRITE FLAG.

PERFORM SET_FLAG.

WRITE FLAG.

FORM SET_FLAG.

FLAG = 'L'.

WRITE FLAG.

ENDFORM.

Результатом выполнения программы будет строка 'GLL', т.к. строка подпрограммы FLAG = 'L' изменяет глобальную переменную FLAG. Чтобы подпрограмма не изменяла значения глобальной переменной FLAG - необходимо объявить локальные переменные внутри подпрограммы:

...

FORM SET_FLAG.

DATA: FLAG.

FLAG = 'L'.

WRITE FLAG.

ENDFORM.

В данном случае результатом будет - 'GLG'.

Определение подпрограмм должно располагаться в конце исходного текста программы. Формы в ABAP/4 не возвращают значений. Возвращаемая из формы информация, ровно, как и передаваемая, определяется с помощью параметров интерфейсов.