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

Глава 16

Пользовательский интерфейс для создания отчетов

Создание полей ввода критериев для экрана выбора

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

Составные критерии выборки

Использование событий на экране критериев выборки

178

Глава 16

 

 

 

 

При создании отчета с помощью логической базы данных первым рабочим экраном является экран, который позволяет задавать критерии выборки. При этом средства Logical Database считывают указанные данные из фактических таблиц базы данных и инициируют соответствующие события get.

Узнать, как задаются критерии для отчета, создаваемого с помощью Logical Database,

икак считываются табличные данные, можно, обратившись к главе 15.

Вданной главе будет рассмотрено определение полей ввода, которые специфичны для отчетов и отображаются на экране критериев выборки ниже предварительно определенных критериев Logical Database. Использование критериев выборки, вводимых с экрана, помогает разработчику писать простые и эффективные предложения where оператора select. Кроме того, будут описаны некоторые события, позволяющие устанавливать значения критериев выборки по умолчанию или проверять допустимость вводимых данных. Приведенные в этой главе события и команды языка АВАР/4 обеспечивают разработку удобного интерфейса пользователя для создания отчетов.

Разработка пользовательского интерфейса для внесения изменений в данные рассматривается в главе 19.

В АВАР/4 существует два типа полей ввода для стандартного экрана выбора:

Parameters

Единичные поля

Select-Options

Внутренние таблицы для задания составных критериев выборки

 

(рекомендуется для динамических предложений where и операторов select)

Определение критерия как параметра или составного критерия выборки автоматически задает соответствующее поле ввода на экране выбора, а также структуру данных в программе для сохранения введенной пользователем информации. С программной точки зрения критерии выборки Logical Database и данных отчета определяются одинаково. Различие лишь в том, что специфичные для данного отчета критерии выборки расположены на экране ниже критериев Logical Database. Заметим, что при создании отчета можно использовать поля ввода (для параметров и составных критериев), относящиеся к критериям Logical Database.

Определение параметров для экрана выбора

Определение параметров осуществляется почти так же, как и определение полей, которое использует оператор data. Рассмотрим тот же пример программы для туристического агентства. Программа, приведенная ниже, показывает, как определять параметры для города и даты рейса, а также дополнительное поле для проверки выбранных критериев:

Данные параметры показаны на экране рис. 16.1.

Одновременно каждый параметр определяет поле, которое может использоваться программой-отче- том как обычное поле, определенное с помощью оператора data. После ввода значения в поле ввода данного параметра на экране выбора и нажатия кнопки Execute (выполнить), это значение заносится в соответствующее поле, определенное параметром. Например, если пользователь задал Big City в поле ввода параметра p_city, будет проверяться следующее условие:

При вводе значений параметров или составных критериев выборки количество данных, извлекаемых из Logical Database, автоматически не ограничивается. Если разработчику необходимо получить в операторе select доступ к значениям, введенным пользователем, то соответствующие параметры в предложении where оператора select следует размещать так же, как и

обычные поля.

Поскольку параметры выполняют роль интерфейсных объектов экрана выбора, то в синтаксисе определения parameters и data есгь небольшие различия:

180

 

Глава16

 

 

 

 

write / customers-name. endselect.

При запуске программы-отчета пользователь может задать критерии выборки согласно рис. 16.2.

Рис. 16.2

Select-Option

с интервалом значений

В этом случае оператор select будет определять общее количество соответствующих клиентов, записанных в таблице базы данных customers. Приведенная программа-отчет будет эквивалентна следующей:

select * from customers

where name between 'A' and 'M'. write / customers-name.

endselect.

Очевидно, что Select-Options обеспечивает задание дополнительных критериев выборки без изменения исходного текста программы. Предположим, нужно выбрать всех клиентов, чьи фамилии начинаются на букву Е, с фамилией Smith, а также все фамилии в диапазоне от буквы M до Shuliz. Для этого нажмите кнопку Complex Selections справа от поля ввода критерия для клиентов. В появившемся диалоговом окне введите Е*, а в части окна под названием Single Value Selections (одно значение выборки) — Smith. В части окна Ranges (диапазон) задайте границы М и Shultz (рис. 16.3). При нажатии кнопки Cору (копировать) все критерии, заданные в диалоговом окне, копируются в составной критерий выборки, и на экран опять выводится стандартное окно выбора, где можно продолжить ввод или запустить программу создания отчета на выполнение. Нажав кнопку Selection Options, можно ввести дополнительные критерии выборки.

Составные критерии часто применяются при создании отчегов с помощью логической базы данных. Например, критерий выборки учебного отчета (см. главу 15) определяется через соответствующую Logical Database (рис. 15.3 — 15.5).

Каждый элемент Select-Option содержит ссылку на определенное поле (например, customers-name), которое указано после дополнения for и с которым производится сравнение в предложении where. Вся подстановка (на уровне select) осуществляется средствами логической базы данных после извлечения информации из таблиц реальной базы данных. Однако составной критерий для предложения where можно применять и в том случае, если информация не содержится в таблицах, принадлежащих логической базе (в частности, можно создать отчет, считывая все данные без логической базы данных). Аналогичным образом составной критерий используется и в других операторах SQL, и они могут быть переданы в программу-отчет, запущенную командой submit (см. главу 18).

Помимо операторов SQL, Select-Options можно применять в предложении where, которое записано

вцикле для внутренней таблицы: tables customers.

data all customers like customers occurs 200