Созданный Мастером отчет может быть изменен с целью улучшения его оформления, чтобы устранить наложение заголовков

Созданный Мастером отчет может быть изменен с целью улучшения его оформления, чтобы устранить наложение заголовков, увеличить или уменьшить ширину поля для выводимого значения и т.д.. Например, в отчете, показанном на рис.3, целесообразно предусмотреть расширение поля для даты приема служащего на работу, задать русскоязычные заголовки столбцов, отображение даты генерации, ввести нумерацию страниц, выделить столбцы и строки вертикальными и горизонтальными линиями.

Изменения вносятся в проект отчета, открытый в дизайнере отчетов, и затем сохраняются командой File | Save. Наложение заголовков устраняется выделением одного из них и его перемещением с помощью мыши или одновременным нажатием CTRLи клавиши со стрелкой нужного направления. Изменение размера выделенного заголовка, поля или другого компонента производится перемещением зеленых маркеров, обозначающих границы компонента или нажатием SHIFTи клавиш со стрелками влево-вправо. Выравнивание взаимного положения нескольких компонентов осуществляется командами контекстного меню после выделения компонентов при нажатой клавише SHIFT.  Размер и другие параметры шрифта задаются свойством Font.

Изменение заголовка столбца или другой надписи осуществляется после их выделения в проекте отчета корректировкой значения свойства Text на панели свойств.

Многие системные параметры отчета, в том числе текущая дата и номер текущей страницы, задаются в компоненте DataText, расположенном в палитре компонентов на закладке Report. Его свойство DataField позволяет не только ссылаться на нужное поле данных, но и использовать системные переменные в выражениях.

Для формирования даты генерации отчета со списком служащих разместим сразу под заголовком отчета компонент Da­taText (закладка Report) и установим для него следующие свойства: Left=0, Width=7,9, Top=0,6, Font Justify=pjCenter, Font=MS Sans Serif, 12, Bold. В свойство DataField поместим следующий текст: «от «&Report.DateLong, т.е. вместо имени поля в свойство можно поме­щать произвольное выражение с участием системных переменных (в нашем слу­чае — с переменной Report.DateLong, содержащей текущую дату в полном фор­мате ДД Meсяц ГГГГ). Значения этого свойства можно сформировать также с помощью редактора, нажав кнопку в правом углу значения свойства: в поле Data Text окна Data Text Editor введем ‘от ‘ +, раскроем список Report Variables и выберем в нем пункт DateLong, после чего щелкнем на кнопке Insert Report Var.

Чтобы вставить в отчет нумерацию страниц, нужно предусмотреть в проекте отчета пространство для размещения компонента DataText. Мастер создания от­чета отводит для заголовков и данных всю страницу. Щелкнем на компоненте DataViewlRegion в дереве объектов (предварительно раскроем узлы ReportLibrary, Reportl, MainPage) и установим в его свойство Height значение 7,9. С помощью вертикальной полосы прокрутки сместим изображение страницы в окне Page Designer к самому ее концу и вставим под серым пространством компонент DataText и в его свойство DataField поместим такую строку:

Стр. ‘+Report.RelativePage+’ из ‘+Report.TotalPages

Установим для этого компонента шрифт MS Sans Serif, 14, Bold.

Чтобы расчертить отчет линиями, поместим на среднюю полосу (объект DataViewlBand в дереве проекта) компонент HLine (закладка Drawing), а также 7 компонентов VLine с необходимыми размерами и положением. На нижнюю полосу с данными также поместим компонент HLine и компоненты VLine, сохраним проект и предварительно просмотрим отчет, чтобы убедиться в правильности внесенных изменений.

Создание простого отчета без использования Мастера осуществляется в приводимой ниже по­следовательности.

1.           Создать в отчете связанный с данными объект отображения DirectDataView, если отчет связан с набором данных (например, таблицей) из приложения C++Builder.

2.           На пустую страницу поместите надписи, графические изображения и другие элементы оформления (с закладок Drawing и Standard среды RaveReportsDesigner), которые должны печататься на каждой странице.

3.           На страницу поместить компонент Region (закладка Report), соответствующий области просмотра данных. Его размеры и по­ложение на странице должны быть такими, чтобы не закрывать оформитель­ские элементы сверху, снизу или по бокам страницы.

4.           Поместить в область просмотра данных полосы Band (закладка Report) для заголовка отчета и названий полей. Каждая помещаемая в область полоса занимает весь ее горизонтальный размер. Для полосы заголовка отчета в редакторе свойства BandStyle должны быть установлены флажки BodyHeader и First, для полосы названий полей — флажки BodyHeader, First и NewPage.

5.           За полосами заголовка поместить полосу DataBand (закладка Report). Своим свойством DataView она связывается с объектом отображения данных.

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

Создание отчета с группировкой данных. Отчет, в котором вся информация разделяется на груп­пы данных, объединенных каким-то общим признаком, называется отчетом с группировкой данных. Например, таким отчетом будет список компаний-покупателей, упорядо­ченный по штатам, с данными из таблицы Customer.

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

Рассмотрим пример создания проекта отчета со списком компаний-покупателей с груп­пировкой по штатам (рис.7). Предусмотрим в приложении, создаваемом в системе C++Builder, компонент TQuery со следую­щим текстом запроса в его свойстве SQL:

SELECT Company,City,State,FAX,TaxRate,Contact FROM  Customer ORDER BY State

Ссылка на основную публикацию
Adblock detector