Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ИП 2010-04-04 doc.doc
Скачиваний:
108
Добавлен:
13.05.2015
Размер:
5.96 Mб
Скачать

9.11. Формирование отчетов средствами DataReport

Конструктор отчетов DataReport обеспечивает только основные фун­к­ции печатию Для вызова кон­структора используется команда менюProject/Add Data Report (рис. 9.11.1).

Рис. 9.11.1. Окно и контекстное меню конструктора DataReport

Отчет состоит из разделов (рис. 9.11.1):

Report Header‑ заголовок отчета (наименование отчета, предприятия). Выводится один раз в начале отчета.

Report Footer‑ подножие отчета (итоги по отчету, подпись лица, утвер­ждающего отчет, число страниц). Выводится один раз в конце отчета.

Page Header‑ заголовок страницы отчета (наименование отчета, номер страницы, дата и время вывода и заголовки граф отчета). Выводится в начале каждой страницы.

Page Footer‑ подножие страницы (нижняя черта страницы).

Detail‑ область данных (строки с текущими значениями полей базы.

Group Header‑ заголовок управляемой группы (наименование группы).

Group Footer‑ подножие управляемой группы (итоги по группе).

Обычно отчет создается с использованием конструктора среды дан­ных (п. 9.8). Конструктор отчетов имеет собственную панель инстру­мен­тов для размещения объектов отчета: надписи (RptLabel), текстовых полей (RptTextbox), изображений (RptImage), линий (RptLine), контуров (Rpt­Sha­pe), итоговых полей (RptFunction). Каждый объект, включая отчет и груп­пу, имеет свойства, которые пользователь использует для настройки объ­екта отчета, как это делается при формировании формы.

Рассмотрим основные свойства группы отчета.

ForcePageBreak=n ‑ задает порядок смены листа: вывод на текущем листе (0), вывод на следующем листе (1), переход на следующий лист после вывода группы (2), вывод группы на отдельном листе (3).

KeepTogether=True ‑ выводит группу целиком на одном листе, без раз­бивки ее на различные страницы отчета, т.е. группа целиком переносится на следующий лист, если она не помещается на текущем листе.

Visible=False ‑ группа, которая не выводится в отчет.

Формирование простого отчета без группировкина примере базы “Строитель­ство” (рис. 9.11.2). Сам сфор­мированный конструк­тором отчет изоб­ра­жен на рис. 9.11.3.

1. Выполните команду Project/Add Data Reportдля включения в проект конструктора отчетов.

2. Создайте конструктор среды данных и запрос, используемый в отчете. В нашем примере в конструктор пе­ре­та­щим из папки Viewsокна просмотра базовый запросBazovii Zaproc(п. 9.8)

3. Для конструктора отчетов (объект DataReport) установите свой­­­ст­­воDataSourceравным имени конструктора среды данных или дру­гого источника данных. В нашем примере DataSource=DataEnvironment1.

  1. Если используется конструктор среды, установите свойство DataMemberобъектаDataReportравным соответствующей команде, в нашем примере укажем имя базового запросаBazovii Zaproc.

  2. Конструктор среды отобразит список полей; перетащите нужные поля и разместите их в соответствующих группах отчета. Наименования полей можно разместить в заголовке листа. В примере перенесем соответствующие поля базового запроса и изменим заголовки граф на русские слова. В разделе подножия отчета сформируем поля для итогового суммирования сметы и объемов выполненных работ по всем стройкам: в начале разместим эти поля, а затем на этих полях разместим элемент RptFunction для задания функции итогового суммирования Sum.

Для просмотра отчета используется метод Show. В примере на форме Form1 разместим командную кнопкуОтчет по стройкамс процедурой:

Private Sub Command1_Click() ‘обработка щелчка мышки на кнопке

Unload DataEnvironment1 ‘для повторного формирования среды (запроса)

DataReport1.Show ‘просмотр отчета в режиме предварительного просмотра

End Sub

Используя кнопкуExport, можно из окна предварительного просмотра отчета вывести отчет в обычный или HTML-текстовый файл.

Рис. 9.11.2. Окна конструктора отчетов, просмотра базы и среды данных

Рис. 9.11.3. Окно предварительного просмотра сформированного отчета

Формирование отчета с группировкой на примере отчета по на­се­лен­­ным пунк­там с итогами по населенным пунктам и отчету (рис. 9.6.5).

  1. Выполним первые четыре шага из предыдущего примера.

  2. Командой Propertiesконтекстного меню конструктора среды для базового запроса отк­роем окно его свойств.

  3. На странице Groupingэтого окна выберем поле группировкиNnp.

  4. На странице Aggregatesвыберем поляSsиSfдля итогового сум­ми­ро­ва­ния (Sum) по группе (Grouping) и в целом по отчету (Grand Total).

  5. Закроем окно свойств. В окне среды данных в запросе выделяют­ся три папки с итоговыми (Summary fields по группе, Grand Total по отчету) и обычными (Detail fields) полями.

  6. Выполним команду Insert Group He­a­der/Footerконтекстного ме­ню отчета и включим в отчет заголовок и подножие новой группы.

  7. Перенесем из папки Summary fieldsполеNnpв заголовок группы.

  8. Перенесем из папок Summary fieldsиGrand Totalитоговые поляSsиSfв подножие группы и отчета соответственно.

  9. Из папки Detail fileldsперенесем поляNz(наименование заказ­чи­ка),Ns(наименование стройки),Ss(смета),Sf(освоено) в детальную группу. Сформируем все остальные поля и надписи (рис. 9.6.5).