
- •1.2. Установка рабочей директории
- •1.3. Создание таблиц базы данных
- •1.4. Установление связей между таблицами (определение ссылочной целостности)
- •1.6. Запуск сервера Firebird
- •1.7. Создание базы данных Firebird
- •1.8. Подключение базы данных Firebird
- •1.9. Создание и редактирование таблиц Firebird
- •1.10. Связи между таблицами Firebird
- •1.11. Перенос базы данных на другой компьютер
- •2.1. Создание формы для работы с одной таблицей
- •2.2. Ввод данных в таблицу с помощью созданной формы
- •2.3. Создание формы для работы с двумя таблицами
- •2.4. Редактирование формы
- •2.5. Ввод данных через отдельные компоненты
- •2.6. Редактирование данных через компоненты
- •3. Реализация сортировки, вычислений и фильтрациИ данных
- •3.1. Реализация сортировки
- •3.1. Вид формы для сортировки
- •1 Вариант – с использованием имени индекса:
- •2 Вариант - с использованием имени поля, по которому создан индекс:
- •3.2. Реализация вычислений
- •3.3. Реализация фильтрации записей
- •4.3. Создание запроса с групповыми вычислениями
- •4.4. Создание параметрического запроса
- •4.5. Параметрический запрос для поиска поля, выбранного из списка
- •5.1. Создание отчета в Delphi
- •5.2. Создание отчета на основе одной таблицы
- •5.3. Создание отчета с группировкой записей по определенному полю
- •Список книг
- •5.4. Создание отчета на основе параметрического запроса
- •Разработка автоматизированной системы продажи железнодорожных билетов
- •Справка о проданных билетах
- •Справка об остановках маршрута
- •Справка о продаже билетов
- •Справка о расписании групп
- •Списки групп
- •Тренеры
- •Списки больных, стоящих на учете
- •Список сотрудников
- •Список больных
- •Разработка приложения «Больница»
- •Медицинский персонал
- •Процедуры
- •Список больных
- •Разработка автоматизированной системы продажи авиационных билетов
- •Продажа билета
- •Список самолетов
- •Список автомобилей
- •Список водителей
- •Транзисторы
- •Справка о продаже транзисторов
- •Заказы на ремонт
- •Выпрямительные диоды
- •Закупка приборов
- •Список устройств
- •Расходная ведомость
- •Библиографический список
- •Оглавление
5.3. Создание отчета с группировкой записей по определенному полю
Предположим, что существует следующее задание:
Создать отчет на основе таблицы «Книги», записи сгруппировать по области знаний, рассчитать стоимость книг по каждому шифру книги, по группе записей из одинаковой области знаний и ведомости в целом:
Список книг
Шифр книги |
Название |
Авторы |
Кол-во экз. |
Цена |
Стоимость книг |
Область знаний |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
Итого |
|
||||
Общий итог |
|
Порядок создания отчета с группировкой записей следующий.
1. Первоначально, следует создать запрос на выборку данных из таблиц Разделы знаний (Razd_zn) и Книги (Knigi) с созданием вычисляемого поля «Стоимость книг» и сортировкой данных по полю «Область знаний».
Чтобы
создать запрос необходимо поместить
на главную форму компонент Query
из закладки BDE
-
.
В свойстве DataBaseName
выбрать имя базы данных. В свойстве SQL
компонента следует ввести запрос
следующего вида (щелкнув по кнопке …):
SELECT R.R_zn, K.Sh_kn, K.Nazv, K.Avt, K.Kol_ikz, K.Zena, (K.Zena*K.Kol_ikz) As Stoim
FROM Knigi K, Razd_zn R
Where K.Kod_r = R.Kod_r
ORDER BY R.R_zn
Активировать запрос, выбрав в свойстве Active - true.
2.
После создания
запроса следует поместить на главную
форму компонент RvQueryConnections
из закладки Rave
-
.
В его свойстве Query
необходимо указать имя запроса – Query1.
3. Затем необходимо перейти в утилиту создания отчетов RaveDesigner, выбрав пункты меню Tools/Rave Designer.
Дальнейшие действия осуществляются утилитой Rave Designer.
4. Если при загрузке Rave Designer открылся какой-то отчет, то следует выбрать пункт меню File/New. Откроется окно создания нового отчета.
Следующий шаг – создание источника данных для отчета. Для этого выбирают пункт меню File/New Data Object. В открывшемся окне со списком необходимо выбрать Direct Data View и нажать кнопку «Next». В появившемся окне следует выбрать RvQueryConnection1 и нажать кнопку «Finish».
5.
Далее необходимо сформировать структуру
отчета. На пустую область отчета следует
поместить компонент Region
из закладки Report
-
.
Все компоненты структуры данных отчета
будут наноситься на этот компонент.
Компонент Region
(серого цвета) следует растащить по
всему белому листу, оставив небольшие
белые поля.
6.
На компонент Region
нужно поместить несколько компонентов
Band
и один компонент DataBand
из закладки Report
-
и
в следующем порядке.
Band1 – здесь будет размещаться заголовок отчета;
Band2 – шапка таблицы отчета;
Band3 – значение поля группировки данных отчета;
DataBand1 – данные отчета;
Band4 - итог по группам данных отчета;
Band5 – общий итог по данным отчета.
7. Теперь необходимо настроить свойства компонентов структуры отчета.
Для
компонента Band1
следует выбрать свойство BandStyle
и щелкнуть по кнопке
.
В открывшемся окне в группе опций Print
Location
надо включить опцию Body
Header.
Аналогично следует включить опцию:
для Band2 – Row Header;
для Band3 – Group Header;
для Band4 – Group Footer;
для Band5 – Body Footer.
Для компонента DataBand1 необходимо в свойстве DataView указать значение DataView1 (или DataView2, в зависимости от имени источника данных).
8.
На компонентах Band1
и Band2
(заголовок и шапка таблицы отчета)
следует разместить компоненты Text
из закладки Standard
()
и задать им необходимые значения
(например: в свойстве Text
указать название; в свойстве Font
выбрать шрифт MS
Sanc
Serif
и другие характеристики шрифта; в
свойстве FontJustify
указать выравнивание). Для прорисовки
шапки таблицы следует воспользоваться
компонентами HLine
и VLine
из закладки Drawing
(
и
).
9. Для настройки заголовка и итога группы используют компоненты Band3 и Band4. В свойстве GroupDataView обоих компонентов следует указать DataView1 (или другой источник данных), а в поле GroupKey – R_zn (R_zn - это поле «Раздел знаний», по которому будет осуществляться группировка данных). В поле ControllerBand следует указать DataBand1 (область данных, которая будет группироваться).
Для
вывода на экран значения поля группировки
на компонент Band3
следует поместить компонент DataText
из закладки Report
().
В его свойствах DataView
и DataField
следует указать источник данных
(DataView1
или какой-то другой)
и R_zn
соответственно.
10.
На компоненте DataBand1
следует разместить компоненты DataText
для отображения значений полей данных
таблицы. В его свойствах DataView
и DataField
следует указать источник данных
(DataView1
или какой-то другой)
и выбрать имя поля из списка. Также для
подсчета итоговой суммы по полю
«Стоимость» на DataBand1
следует поместить компонент CalcController
из закладки Report
().
Он является невидимым компонентов – к
его свойствам можно обратиться только
через дерево объектов (находится в
правой части экрана). В данном случае,
изменение свойств этого компонента не
требуется.
11.
На компоненте Band4
(итог по группам) следует разместить
компонент CalcText
из закладки Report
().
В его свойстве DataView
следует указать источник данных
(DataView1
или какой-то другой),
в свойстве DataField
– Stoim
(поле «Стоимость»), в свойстве Controller
– CalcController1
(чтобы связать поле с областью данных).
12. Аналогичные операции следует проделать и на компоненте Band5 (общий итог), поместив на нем компонент CalcText (настройки его свойств будут такими же).
13. Можно также добавить ряд поясняющих надписей (компонент Text).
14. Далее следует сохранить отчет с помощью команды меню File/Save, задав файлу проекта какое-либо имя (например Project1.rav или Project2.rav, или какое-то другое).
Закрыть утилиту RaveDesigner и вернуться в Delphi.
Вид отчета в режиме редактирования представлен на рис. 5.1.
Рис.
5.1. Вид отчета в режиме редактирования
15.
Затем следует поместить на форму, где
находится главное меню, компонент
RvProject
из закладки Rave
().
В его свойстве ProjectFile
следует указать имя файла проекта отчета
и путь к нему.
16. Создать в программе обработчик нажатия какой-либо кнопки или выбора пункта меню (например, двойной щелчок по пункту меню) и включить в него следующую строчку:
RvProject1.Execute; (или RvProject2.Execute;)
После запуска программы при выборе определенного пункта меню или при щелчке по кнопке появится окно просмотра отчета (рис. 5.2).
Рис. 5.2. Окно просмотра отчета