Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 9 День 9 Присваивание преобразование выч...doc
Скачиваний:
6
Добавлен:
21.11.2019
Размер:
299.01 Кб
Скачать

9

Тема 9 Операторы присваивания, преобразования и вычисления

Основные вопросы:

  • системные переменные;

  • оператор clear и его действие на переменные и Field Strings;

  • выполнение присваивания с использованием операторов move и move-corresponding;

  • преобразования данных с использование операторов присваивания;

  • правила записи математических выражений.

1. Работа с системными переменными

Есть 171 системная переменная, доступная в каждой программе ABAP/4. Системные переменные не нужно определять, они автоматически определены и всегда доступны. Чтобы отобразить список системных переменных, выполните транзакцию se11 и отобразите структуру DDIC syst.

При использовании в программе системных переменных используются псевдонимы syst или sy (они эквивалентны). Однако большинство программистов использует sy. (Например sy-datum или syst-datum).

Обычно используемые системные переменные

Имя

Описание

sy-datum

Текущая дата

sy-uzeit

Текущее время

sy-uname

Текущий пользовательский id

sy-subrc

Последний код возврата

sy-mandt

Мандант

sy-pagno

Номер текущей страницы вывода

sy-colno

Номер текущего столбца вывода

sy-linno

Номер текущей строки вывода

sy-vline

Вертикальная линия

sy-uline

Горизонтальная линия

sy-repid

Текущее название отчета

sy-cprog

Имя основной программы

sy-tcode

Код текущей транзакции

sy-dbcnt

В операторе select, содержит текущий итеративный счетчик. После endselect, содержит число строк, которые соответствуют выражению where.

Пример 1. Использование базовых системных переменных

report ztx0901.

tables ztxlfa1.

parameters land1_1 like ztxlfa1-land1 obligatory default 'US'.

write: / 'Current date:', sy-datum,

/ 'Current time:', sy-uzeit,

/ 'Current user:', sy-uname,

/ 'Vendors having country code', land1,

/.

select * from ztxlfa1

where land1 = land1_1

order by lifnr.

write: / sy-dbcnt, ztxlfa1-lifnr.

endselect.

write: / sy-dbcnt, 'records found'.

if sy-subrc <> 0.

write: / 'No vendors exist for country', 'land1.

endif.

Current date: 1998/02/22

Current time: 14:38:24

Current user: KENGREENWOOD

Vendors having country code US

1 1040

2 1080

3 1090

4 2000

5 V1

6 V2

7 V3

8 V4

9 V5

10 V7

10 records found

Пример 2. Использование системных переменных

Необходимо написать программу, которая, учитывая код страны как входной параметр, выписывает описание страны от таблицы ztxt005t на текущем языке входа в систему пользователя. ztxt005t – текстовая таблица, содержащая описания кода страны на различных языках. Первичный ключ – mandt, spras (язык), и land1.

Текущий язык входа в систему сохраняется в системной переменной sy-langu.

report ztx0903.

tables ztxt005t.

parameters land1_1 like ztxlfa1-land1 obligatory default 'US'.

select single * from ztxt005t

where spras = sy-langu "current logon language

and land1 = land1_1.

if sy-subrc = 0.

write: 'Description:', ztxt005t-landx.

else.

write: 'No description exists for', land1_1.

endif.

Description: United States