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

5. Системные переменные

Системные переменные всегда доступными в пределах Вашей программы, они автоматически обновляются системой. Все системные переменные начинаются с префикса sy-.

Текущая системная дата доступна в системной переменной sy-datum, текущее время – sy-uzeit.

Все системные переменные определены в структуре DDIC syst. (Её можно просмотреть как обычную таблицу БД, с помощью se11), или двойной щелчок на названии любого поля sy в программе.

Две системных переменные очень часто используются в операторе select

  • sy-subrc – используется, чтобы определить, возвратил ли оператор select какие-нибудь строки. Если строки были найдены, значение sy-subrc будет 0. Если строки не были найдены, значение будет 4.

report ztx0206.

tables ztxlfa1.

select * from ztxlfa1 where lifnr > 'Z'.

write / ztxlfa1-lifnr.

endselect.

if sy-subrc <> 0.

write / 'No records found'.

endif.

No records found

  • sy-dbcnt – используется, чтобы определить число строк, возвращенных оператором select (проверьте значение sy-dbcnt после endselect). Вы можете также использовать эту системеую перемнную как счетчик цикла; между операторами select и endselect системная переменная sy-dbcnt содержит номер текущей итерации. После первого прохода цикла sy-dbcnt будет 1, после второго – 2, и так далее. После endselect она сохранит свое значение и, таким образом, будет содержать число выбранных строк.

report ztx0207.

tables ztxlfa1.

select * from ztxlfa1 order by lifnr.

write / sy-dbcnt.

write ztxlfa1-lifnr.

endselect.

write / sy-dbcnt.

write 'records found'.

1 1000

2 1010

3 1020

4 1030

5 1040

6 1050

7 1060

8 1070

9 1080

10 1090

11 2000

12 V1

13 V10

14 V11

15 V12

16 V2

17 V3

18 V4

19 V5

20 V6

21 V7

22 V8

23 V9

23 records found

Косая черта (/) начинает новую строку.

6. Цепной Оператор

Двоеточие (:) называется цепным оператором. Он используется, чтобы объединить строки программы, которые начинаются с одного и того же слова или последовательности слов. Например:

tables ztxlfa1.

tables ztxlfb1.

Или, можно использовать цепной оператор:

tables: ztxlfa1, ztxlfb1.

Цепные операторы используются, чтобы улучшить читаемость программы.

report ztx0208.

tables ztxlfa1.

select * from ztxlfa1 order by lifnr.

write: / sy-dbcnt, ztxlfa1-lifnr.

endselect.

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

7. Оператор select single

select single оператор используется, чтобы получить единствунную запись базы данных. Упрощенный синтаксис для select single:

select single * from t1 [into wa] [where f1 op v1 and/or f2 op v2 ...].

* указывает, что в таблице должны быть получены все поля

t1 – название таблицы, ранее определенной на операторе tables wa – название рабочей области, которая соответствует структуре таблицы. f1 – название поля в таблице t1. op - один из следующих логических операторов: = <>> = <<=. v1 – литерал или переменная. Особенности оператора:

  • select single, не начинает цикл, потому что возвращает только одну строку. Поэтому endselect не используется.

Пример:

report ztx0209.

tables ztxlfa1.

select single * from ztxlfa1 where lifnr = 'V1'.

if sy-subrc = 0.

write: / ztxlfa1-lifnr, ztxlfa1-name1.

else.

write 'record not found'.

endif.

V1 Quantity First Ltd.

8. Комментарии. Есть два вида комментариев:

  • * (звездочка) в столбце указывает, что вся строка – комментарий. При этом закомментированная строка станет красной.

  • " (двойные кавычки) где-нибудь в строке указывают, что остаток строки – комментарий. Строка не будет выделена красным цветом.

Например:

* This is a comment

tables ztxlfa1. " This is also a comment

Нет никакого символа конечного комментария. Комментарий заканчивается в конце текущей строки.