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

6

Selection Screens Экраны Выбора (день 21)

Вопросы:

  • Экраны выбора

  • Использование внешних ключей для проверять правильность пользовательского ввода.

  • Форматирование элементов экрана выбора.

  • Вывод сообщений

1. Программирование событий экрана выбора

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

По умолчанию событие start-of-selection присоединено ко всем событиям в ABAP/4. В Ваших программах Вы можете определить блок обработки и прикрепить этот блок к ключевому слову события.

Основные события:

  • initialization

  • at selection-screen

  • at user-command

Событие initialization. Пример:

report ywhatyr.

tables: marc, mvke.

..

data: p_year for sy-datum.

Initialization.

if sy-datum ge '01012000'

p_year = '2000'.

else.

p_year = 'Yesteryear'.

endif.

При выполнении программы, в которой есть экран выбора, блок обработки initialization выполняется, устанавливая поле p_year параметра, равное значению в зависимости от системной даты в момент выполнения. Это - тот блок, в котором Вы определяете, что начальные значения по умолчанию Вашего экрана выбора, основанного на любых критериях, необходимых, чтобы поддержать целостность данных пользовательского ввода.

Событие at selection-screen.Событие at selection-screen обрабатывается после пользовательского ввода на активном экране выбора. Это событие используется для проверки правильности данных, выдачи предупреждающих сообщений, изменение состояния графического интерфейса пользователя

Событие at user-command. Кнопки, так же как много других управляемых событиями опций экрана выбора, могут быть очень полезными в поддержании пользовательского взаимодействия и проверке достоверности пользовательского ввода. Кнопки могут использоваться, чтобы вызвать событие at user-command и обработать пользовательский ввод. Синтаксис события selection-screen pushbutton:

selection-screen pushbutton example1 user-command 1234.

This statement, when used together with the at selection-screen command, is a great way to interact with the user as he enters data. The syntax is similar to that of a selection-screen comment except that data is passed when the user presses the button. Pushing the button triggers sccrfields-ucomm in the at selection-screen event and the input fields are imported. This data can then be validated and the user issued a message depending on the purpose of the button. This is an example of how you can use two pushbuttons to determine which language to report selected data in.

Этот оператор, при использовании с командой at selection-screen, является отличным способом взаимодействовать с пользователем, поскольку он вводит данные. Синтаксис аналогичен selection-screen comment за исключением того, что данные передаются, когда пользователь нажимает кнопку. Выталкивание кнопки вызывает sccrfields-ucomm в в случае экрана выбора, и входные поля импортированы. Эти данные могут тогда быть утверждены, и пользователь выпустил сообщение в зависимости от цели кнопки. Это - пример того, как Вы можете использовать две кнопки, чтобы определить который язык сообщить о выбранных данных в.

selection-screen pushbutton 10(20) text-003 user-command engl.

selection-screen pushbutton 50(20) text-004 user-command germ.

at selection-screen.

at user-command.

case sy-ucomm.

when 'engl'.

lang-english = 'Y'.

when 'germ'.

lang-german = 'Y'.

endcase.

В этом примере Вы можете проверить, какие из этих двух кнопок были нажаты пользователем при использовании оператора case. Когда пользователь вызывает событие at user-command, поле sy-ucomm держит уникальное четырех-байтовое название элемента, который выбрал пользователь.

Внешний ключ (foreign key) - одно или более полей, которым соответствует первичный ключ второй таблицы.