/h - start debugging
/hs - system debugging
/ha - debugging - no screens
l_ - локальная переменная с единственным значением
lt_ - локальная таблица
ls_ - локальная структура
lr_ - локальная переменная типа Range
lv_ - локальная переменная
lty_ - локальный тип
t_ - локальный тип
p_ - параметр
so_ - selection option
<ls_> - field symbol на структуру (все остальное по аналогии)
lcl_ - локальный класс
lo_ - объект
rg_ - range
В общем виде, если очень на пальцах и быстро, ракурс служит для скрытия физических имен таблиц и полей и предоставления общего интерфейса доступа к базе данных разработчикам клиентской части. Например у меня есть таблица ZZZZ и пять полей с именами Z1 по Z5, я делаю ракурс без объединения таблиц с именем ZYZ и делаю присвоение полей типа
ZYZ-ID = ZZZZ-Z1
ZYZ-NAME = ZZZZ-Z2
ZYZ-DESC = ZZZZ-Z3
Разработчик программы работает с ракурсом, при этом если в дальнейшем я решу разбить таблицу ZZZZ на две или переименовать поля, я просто пересоздам ракурс, но так как поля ракурса останутся таким же, то с точки зрения программы работающей с ракурсом ничего не поменяется, все останется в рабочем состоянии.
1. Для каждого экрана обработка двух событий:
РВО - обработка логики перед выводом на экран
РВО-модули (Process Before Output - обработка событий до раскрытия экрана);
РАI - обработка логики после ввода с экран
РАI-модули (Process After Input - обработка событий после ввода команды пользователем с экрана);
2. Модули этих событий обрабатываются последовательно друг за другом.
3. Для выполнения модуля диалоговому процессору передается контроль и управление.
4. После обработки всех модулей событий РВО содержимое всех одноименных полей программы копируются в соответствующие поля экрана.
5. Перед обработкой первого модуля событий РАI содержимое одноименных полей из шаблона экрана копируются в соответствующие поля АВАР/4-программы.
6. По ОК-коду можно узнать и обработать код введенной команды.
/hs - system debugging
/ha - debugging - no screens
l_ - локальная переменная с единственным значением
lt_ - локальная таблица
ls_ - локальная структура
lr_ - локальная переменная типа Range
lv_ - локальная переменная
lty_ - локальный тип
t_ - локальный тип
p_ - параметр
so_ - selection option
<ls_> - field symbol на структуру (все остальное по аналогии)
lcl_ - локальный класс
lo_ - объект
rg_ - range
range это внутренняя таблица, которая состоит из 4 полей: sign, options, low и high. По сути range это аналог select-options и заполняется точно также: SIGN = 'I' (включить) или 'E' (исключить), OPTIONS содержит отношение (EQ, NE, LT, LE, GE, GT, ... ), а LOW и HIGH конкретные значения. Удобство range в том, что его можно привязывать к любым полям любых таблиц (АВАР/внутренние)
Структуры содержат фиксированное число полей и служат для объединения простых полей в более сложный, например, данные о сотруднике. Структуры объявляются служебными словами BEGIN OF и END OF.
Структуры содержат фиксированное число полей и служат для объединения простых полей в более сложный, например, данные о сотруднике. Структуры объявляются служебными словами BEGIN OF и END OF.
В системе предусмотрена глобальная структура SYST, которая хранит системные данные. Доступ к ней в программе осуществляется по имени SY. Некоторые значения системных переменных указаны ниже.
SY-DATUM Актуальная дата сервера приложений
SY-UZEIT Актуальное время сервера приложений
SY-INDEX Счетчик цикла DO
SY-TABIX Индекс в цикле LOOP
SY-SUBRC Код возврата, содержит результат последней выполненной операции. SY-SUBRC = 0 в случае успешного выполнения.
SY-LANGU Язык входа в систему
SY-BATCH Программа выполняется в фоновом режиме
SY-BINPT Программа выполняется в рамках пакетного ввода
SY-REPID Имя текущей программы
SY-UNAME Имя пользователя
В общем виде, если очень на пальцах и быстро, ракурс служит для скрытия физических имен таблиц и полей и предоставления общего интерфейса доступа к базе данных разработчикам клиентской части. Например у меня есть таблица ZZZZ и пять полей с именами Z1 по Z5, я делаю ракурс без объединения таблиц с именем ZYZ и делаю присвоение полей типа
ZYZ-ID = ZZZZ-Z1
ZYZ-NAME = ZZZZ-Z2
ZYZ-DESC = ZZZZ-Z3
Разработчик программы работает с ракурсом, при этом если в дальнейшем я решу разбить таблицу ZZZZ на две или переименовать поля, я просто пересоздам ракурс, но так как поля ракурса останутся таким же, то с точки зрения программы работающей с ракурсом ничего не поменяется, все останется в рабочем состоянии.
1. Для каждого экрана обработка двух событий:
РВО - обработка логики перед выводом на экран
РВО-модули (Process Before Output - обработка событий до раскрытия экрана);
РАI - обработка логики после ввода с экран
РАI-модули (Process After Input - обработка событий после ввода команды пользователем с экрана);
2. Модули этих событий обрабатываются последовательно друг за другом.
3. Для выполнения модуля диалоговому процессору передается контроль и управление.
4. После обработки всех модулей событий РВО содержимое всех одноименных полей программы копируются в соответствующие поля экрана.
5. Перед обработкой первого модуля событий РАI содержимое одноименных полей из шаблона экрана копируются в соответствующие поля АВАР/4-программы.
6. По ОК-коду можно узнать и обработать код введенной команды.
Комментарии
Отправить комментарий