Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Р. Кречмер, В. Вейс - Разработка приложений SAP R3 на языке АВАР4.pdf
Скачиваний:
503
Добавлен:
17.02.2016
Размер:
29.74 Mб
Скачать

194

Глава 17

 

 

 

 

Положение курсора и скрытая информация

При использовании событий at line-selection и at user-command разработчику, как правило, необходима дополнительная информация о выбранном элементе списка, чтобы найти и вывести на экран в форме всплывающего окна или стекового списка подробную информацию об элементе. К такой дополнительной информации относятся:

1.Поля, принадлежащие выбранной строке (например, customers-id или customers-name)

2.Название и содержимое поля, на котором находился курсор во время двойного щелчка мыши

Вязыке АВАР/4 существует несколько методов для получения этой информации. Рассмотрим использование двух альтернатив:

Сохранение содержимого поля с помощью hide

Команду get cursor с дополнениями field и value

Команда hide

Предположим, что программа должна вывести на экран список клиентов с невидимыми идентификаторами:

Команда hide временно сохраняет содержимое поля all_customers-id текущей строки в контролируемой системой области памяти, называемой Hide Area (скрытая область). При интерактивном событии, связанном с действиями пользователя, содержимое поля all_customers-id восстанавливается из Hide Area. Например, если пользователь выберет какую-нибудь строку, то поле all_customers-id будет содержать идентификатор пользователя (например, 87654321), и программа сможет далее использовать этот номер:

В данном примере Hide Area содержит идентификаторы всех клиентов. При двойном щелчке на строке выполняется событие at line-selection, и в поле all_customers-id заносится номер выбранного клиента. Далее команда чтения использует этот номер в качестве ключа для извлечения данных из внутренней таблицы all_customers и выводит подробные данные выбранного клиента в стековом списке.

Команда get cursor

Рекомендуем использовать команду get cursor, если для однозначного определения необходимой строки сохраненной информации недостаточно, например, при создании списка строк различного типа. Команда get cursor возвращает имя поля, на которое указывает курсор, передавая его в дополнительное поле, определенное после дополнения field. Значение поля передается в другое поле, определеннее после дополнения value.

198

Глава17

 

 

 

 

Рис. 17.15

Изменение текстовых

символов

специальные события top-of-page (начало страницы) и end-of-page (конец страницы), характеризующие запись первой строки новой страницы и переход на последнюю строку текущей страницы. Очевидно, что эти события полностью независимы от управляющей структуры программы. Например, событие top-of-page может произойти внутри цикла. Кроме того, оно может быть вызвано командой new-page (новая страница).

Иногда в основном списке не нужен стандартный зависящий от языка заголовок списка. Для отказа от стандартного заголовка в определении отчета указывается дополнение no standard page heading (без стандартного заголовка).

При пролистывании списка отчета заголовок страницы всегда находится в верхней строке экрана. Например, вторая страница отчета, согласно приведенной ниже программе, будет выглядеть так, как показано на рис. 17.16:

Рис. 17.16

При пролистывании списка отчета заголовок страницы всегда находится в верхней строке экрана