Использование преимуществ клиент-серверной архитектуры при проектировании приложений БД в Delphi, страница 8

    TempSQL.Open;

RepForm.QuickRep1.Preview;

    end;

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

Как и в MS Access, отчеты, формируемые в Delphi включают в себя: заголовок отчета, колонтитулы, область данных, (которая при необходимости разбивается на фрагменты, осуществляющие  группировку данных) и примечание отчета. В Delphi все эти части формируются с помощью такого компонента как QRBand – (“полоса” или “область” отчета). Что это за область определяет свойство BandType

rbTitle-                             Заголовок всего отчёта

rbPageHeader                  верхний колонтитул

rbPageFooter                    нижний колонтитул

rbColumnHeader             заголовок колонки

rbColumnFooter              примечание (“подошва”) колонки

rbGroupHeader                заголовок группы

rbGroupFooter                 примечание («подошва») группы

rbSummary                      примечание (завершение отчета)

rbDetail                            Область данных а также область дочернего отчета на этих компонентах-областях размещаются остальные элементы отчета:

QRLabel - текст, не связанный с содержимым БД, по сути - украшетельсвтво,

QRDBText  соответствует компоненту Access «поле данных» -тот компонент, в котором будут отображаться данные нашего отчета (ФИО студента, его шифр, дисциплина, которую он сдаёт и т.п.)

QRShape – позволяет помещать на отчет геометрические фигуры, в частности с его помощью можно создавать рамки, вертикальные и горизонтальные линии сетки и т.п. с его использованием предлагается разобраться самостоятельно.

QRExpr –Вычисляемое Выражение

Добавьте 3  компонента QrBand на форму  и назначьте их  свойству BandType сверху вниз следующие значения: RbTitle, RbColumnHeader, RbDetail

Чуть растяните по вертикали область RbTitle и поместите на неё три компонента QRLabel Задайте их свойству caption значения «Экзаменационная ведомость», «по дисциплине», «группа:». Поместите на эту же область два компонента QRText, и задайте свойствам Dataset значение DataModule1.TempSQL, а свойствам Datafield значения «Nazvanie» и «Gruppa» (или иные, если у вас по-другому названы поля в таблицах БД и, соответственно, в запросе Rep1Query)

Теперь будем заполнять наш отчет данными. Для этого поместите на область  RbDetail  6 компонентов QRText, настройте их аналогично таким же компонентам в «шапке» (в свойствах datafield следует указать «surname», «FirstName», «Otch», «St_bilet». «ozenka», «Data_Sdachi» ).

Запустите программу, нажмите кнопку предварительного просмотра отчетов. Посмотрите что у Вас получилось. В том случае, если вы все делали правильно, вы увидите «Шапку» и несколько строк вашей ведомости. Скорее всего формат отчета (размер шрифта, гарнитура, выравнивание) вас не устроит. Закройте окно просмотра, затем вашу программу и подкорректируйте шаблон путем перетаскивания компонентов в нужное вам место и настройки их свойств группы Font. В частности, в области ColumnHeader, как следует из ее названия следует разместить 6 компонентовQRLabel и задать их свойства Caption таким образом, чтобы они были адекватными заголовками формирующихся ниже на отчете колонок. С помощью нескольких компонентов QRShape можно организовать рамки, сетку и т.п.

Важный момент: чтобы в окне предварительного просмотра отчета появилась пиктограмма дискетки, означающая возможность сохранения отчета во внешний файл, на отчет необходимо добавить хотя бы один из компонентов QRTextFilter, QRCSVFilter, QRHTMLFilter, каждый из которых позволяет сохранить отчет во внешенем файле соответствующего формата (txt, csv, html).