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

168

 

Глава 15

 

 

 

 

В этой главе читатель узнает, что такое Logical Databases и как можно их использовать для создания в АВАР/4 отчетов — программ, которые выбирают данные из базы, группируют их согласно различным критериям и выводят информацию на экран в форме списков. Но сначала обсудим способы доступа к данным одной или нескольких таблиц базы и вывода на экран результатов.

Создание отчета

Отчеты можно создавать любым из следующих трех способов:

Задать размещение информации на экране с помощью средств АВАР/4 Query, позволяющих сгенерировать программу автоматически

Написать текст программы, генерирующей отчет, с применением Logical Database, что упрощает доступ к базе данных

Использовать простейшие команды select

Каждый из этих способов имеет свои преимущества.

Средства АВАР/4 Query позволяют задать размещение элементов в списке, после чего программа генерируется автоматически. С помощью этих средств, которые легко освоить, можно очень быстро создавать отчеты. При выполнении стандартных запросов предпочтительнее использовать утилиту запросов — АВАР/4 Query. Если же необходимо задействовать всю гибкость языка АВАР/4, возможно, придется выбрать другой метод.

Работа с АВАР/4 Query описана в приложении В.

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

Концепция Logical Databases отличает АВАР/4 от многих других языков программирования. С программной точки зрения Logical Database не является базой данных в смысле СУБД, а представляет собой многократно используемые программные средства для упрощения инкапсуляции поиска данных.

Вчастности, в Logical Database инкапсулируются следующие программные объекты:

Свободно компонуемые представления данных в базе данных

Экраны для задания критериев выборки, которые обеспечивают удобный диалог с пользователем

Детали доступа к базе данных (например, особая форма оператора select)

Как и в других случаях многократного использования данных и методов, преимущества Logical Database становятся очевидными тогда, когда необходимо создать большое количество отчетов. В частности, Logical Database позволяет применять перечисленные выше средства сразу к нескольким отчетам: ускорив например, доступ к базе данных в одной Logical Database, можно сразу увеличить производительность при выполнении всех отчетов.

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

Сравнение двух отчетов, разработанных с использованием разных средств

Преимущества применения Logical Databases наиболее очевидны при сравнении двух программ отчетов, строящих один и тот же список разными методами:

Посредством операторов select

С помощью Logical Database и событий get

Для примера используются две таблицы: customers (таблица 15.1) и bookings (таблица 15.2).

 

Считывание данных с помощью Logical Databases

 

 

169

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 15.1

Пример содержимого таблицы customers

 

 

 

 

 

00000001

Edwards

Small Town

 

654-321-1234

 

 

 

 

 

 

00000002

Young

Village

 

333-444-2222

 

 

 

 

 

 

00000017

Smith

Big City

 

717-161-5151

 

 

 

 

 

87654321

Edison

Fort Mayers

 

111-111-1111

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 15.2

Пример содержимого таблицы bookings

 

 

 

 

 

 

ABC

1000

19991230

001

00000017

19990101

 

 

 

 

 

ABC

1234

19991230

002

00000002

19991229

 

 

 

 

 

ABC

1234

19991231

005

00000017

19990101

 

 

 

 

 

AIR

0007

19990430

010

87654321

19990101

 

 

 

 

AIR

1234

19990901

011

00000002

19990101

 

 

 

 

 

XYZ

0006

19990606

008

00000001

19990101

 

 

 

 

 

XYZ

0007

19990505

007

87654321

19990101

 

 

 

 

Предположим, необходимо распечатать список всех заказчиков, которые вылетают после 05/01/1999 и забронировали места на рейс 01/01/1999. Список должен содержать даты авиарейсов и выглядеть так, как на рис. 15.1.

Рис. 15.1

Список заказчиков и их регистрация

Создание программного текста

Такой список можно получить с помощью следующей программы, состоящей из двух вложенных циклов select:

tables: customers, bookings. select * from customers.

170

 

Глава15

 

write / customers-name.

 

 

select

* from bookings

where customid = customers-id and fldate > '19990501'

and order_date = '19990101'. write at /3 bookings-fldate.

endselect.

endselect.

Тот же самый список можно получить с помощью другой программы, которая использует соответствующую логическую базу (Logical Database) и два события get:

tables: customers, bookings. get customers.

write / customers-name. get bookings.

write at /3 bookings-fldate.

Имя Logical Database является атрибутом программы и должно быть задано на экране атрибутов (рис. 15.2).

Рис.15.2

Ввод имени логической базы на экране атрибутов программы создания отчета

Задание атрибутов программы см. в главе 3.

Система R/3 содержит приблизительно 150 вариантов логических баз (Logical Databases), которые обеспечивают требования большинства бизнес-приложений. Например, Logical Databases можно использовать для следующих целей:

Обработки финансовых бухгалтерских документов

Поддержки центров оплаты

Обработки документов по продажам

Движения запасов

Обработки заказов

Считывание данных с помощью Logical Databases

171

 

 

 

Задание параметров выборки

В начале выполнения второй из приведенных выше программ пользователь увидит экран выбора, на котором он сможет ввести необходимые значения параметров. Сначала нужно задать нижнюю границу даты рейса и заказа (рис. 15.3).

Рис. 15.3

Экран выбора для отчета учебного примера

Нажав кнопку Selection Options на экране выбора, можно задать оператор Greater Than (больше чем) для даты полета (рис. 15.4). Использование этого оператора обеспечивает поиск только чисел, превосходящих указанное минимальное значение.

Рис. 15.4

Задание параметров выборки для отчета учебного примера