Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Рассмотрим теперь вторую часть руководства по созданию группирующего отчета, т.е. отчета с использованием группировки.




Группирующими называются отчеты, в которых вся информация разделяется на группы данных, объединенных каким-то общим признаком. Например, описания (характеристики), относящиеся к определенному цветку, или на другом примере – список товаров, поставленных конкретным поставщиком.

 

Спецификой группирующего отчета является то, что полосы с данными, относящимися какой-то группе, должны указывать на объект отображения данных в свойстве GroupView и на поле группировки в свойстве GroupKey (см. пункт 25). Поле группировки – это поле, изменение значения которого означает конец предыдущей группы и начало следующей. Обычно такое поле указывается первым в предложении ORDER BY или GROUP BY SQL-запроса.

 

Пусть, например, необходимо получить список всех описаний цветков с группировкой по полю p1 «Название цветка».

 

 

 

Для этого:

 

15. Размещаем в приложении на Модуле данных компонент GROUP (класса TADOQuery), подключенный к БД, со следующим текстом запроса:

 

SELECT * FROM t1, t2, t3

WHERE t1.i1=t2.i1 AND t3.i3=t2.i3

ORDER BY p1

 

 

 

16. С закладки Rave размещаем на Модуле данных компонент ConnectToGroup (класс TRvDataSetConnection), являющийся посредником для взаимодействия отчета с набором данных GROUP, и, заполнив свойство DataSet, связываем его с набором данных

 

 

17. В утилите Rave Reports Designer в уже разработанном проекте отчетов Reports.rav создаем новый отчет (главное меню File -> New Report), и переименовываем его в MyGroupReport

 

18. С помощью команды меню File -> New Data Object создаем в проекте отчетов объект отображения данных типа Direct Data View, ссылающийся на связной компонент ConnectToGroup (класс TRvDataSetConnection) в Delphi-приложении

 

 

19. На пустую страницу можно поместить надписи, графические изображения и другие элементы оформления с вкладок Drawing, Bar Code и Standard среды Rave Designer.

 

20. Далее, на страницу отчета помещаем область отображения данных Region
(с закладки Report) и устанавливаем нужные размеры этой области

 

 

21. В область отображения данных помещаем полосу заголовка отчета (это компонент Band с закладки Report). На нее размещаем компонент Text с закладки Standard, т.е. сам текст заголовка, который указывается в свойстве Text.

 

 

Обращаю внимание на то, что все компоненты, размещенные в проекте отчетов, отображаются справа в дереве конструирования! Отмечу, что те компоненты, у которых на иконке есть красная отметка (например, DataBand, DataText и др.) будут непосредственно связаны с данными, с полями набора данных!

22. Далее, ниже располагаем три полосы:

§ для отображения заголовка данных (полоса Band2);

§ для вывода собственно сгруппированных данных (полоса Data Band1);

§ для итога отображения (полоса Band3).

 

 

23. На заголовочной (Band2) и итоговой (Band3) полосах, а также полосе с детальными данными (DataBand1) располагаем необходимые компоненты DataText для отображения данных из отдельных полей НД, компоненты Bitmap, компоненты Text с названиями полей и, возможно, оформительские компоненты, например, расчерчивающие линии и т.д.

 

 

24. Каждый компонент, используемый для отображения данных из отдельных полей НД, через свойство DataView связываем с объектом отображения данных, а в его свойстве DataField указываем отображаемое компонентом поле данных или выражение с участием полей и системных переменных

 

 

 

25. Каждая из трех полос (Band2, DataBand1 и Band3) должна иметь ссылку на объект отображения данных в свойстве GroupDataView и группирующее поле в свойстве GroupKey! В нашем примере это поле p1 «Название цветка»

 

 

26. Кроме того, полоса с детальными данными DataBand1 должна быть связана с объектом отображения данных еще через свойство DataView!

 

 

27. В редакторе свойства BandStyle полосы Band2, используемой для отображения заголовка данных, устанавливаем флажок Group Header; у полосы Band3, используемой для итога отображения, – флажок Group Footer. В редакторе свойства BandStyle полосы DataBand1, используемой для отображения сгруппированных данных, флажки в группе Print Location можно не устанавливать

 

28. Заголовочная (Band2) и итоговая (Band3) полосы должны ссылаться на полосу с группой данных (DataBand1) в своем свойстве ControllerBand. Чтобы это стало возможным, средняя полоса с данными должна быть именно компонентом Data Band

 

 

На этом формирование проекта отчетов завершено. Теперь данный проект содержит два отчета: простой (отчет MySimpleReport) и группирующий (MyGroupReport)

 

29. Сохраняем проект под именем Reports.rav

 

 

30. Далее, напоминаю о том, что в Delphi-приложении должен быть размещен на модуле данных компонент MyProject (класс TrvProject) с указанием ссылки на созданный проект отчетов Reports.rav в свойстве ProjectFile, а также, компоненты класса TRvRenderXXXX для обеспечения возможности экспортировать содержимое отчетов в файл при выборе команды File -> Save As

 

 

31. Создаем для предусмотренного ранее подпункта главного меню N7 «Группирующий отчет (Цветы с описаниями)» процедуру-обработчик события OnClick, в которую записываем программный код по открытию группирующего НД, запуску проекта отчетов и формированию разработанного отчета MyGroupReport, и закрытию НД:

 

DM.GROUP.Open;

DM.MyProject.ExecuteReport('MyGroupReport');

DM.GROUP.Close;

 

 

J





Поделиться с друзьями:


Дата добавления: 2016-12-06; Мы поможем в написании ваших работ!; просмотров: 298 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Что разум человека может постигнуть и во что он может поверить, того он способен достичь © Наполеон Хилл
==> читать все изречения...

2456 - | 2271 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.