Конструирование отчетов в VeralTest

В состав VeralTest Professional входит мощный генератор отчетов FastReport, при помощи которого можно не только редактировать существующие отчеты, поставляемые вместе с программой, но и конструировать свои собственные отчеты, используя любые данные о пользователях, тестах, результатах, хранящихся на сервере тестирования.

Процесс конструирования отчетов в дизайнере FastReport достаточно нагляден и не вызовет у вас затруднений, если вам, по роду своей деятельности, уже приходилось сталкиваться с программами – генераторами отчетов, однако, для новичков в данной области все может оказаться не на столько очевидно. Но даже если вы никогда не составляли отчетов, спешу вас уверить, что это не так уж и сложно – процесс освоения FastReport не займет у вас много времени, а полученные знания, несомненно, позволят вам наиболее полно адаптировать программу VeralTest под свои нужды.

Эта статья открывает цикл публикаций, посвященных конструированию отчетов. Изложение материала, построено исключительно на примерах, что, как мне кажется, позволит гораздо быстрее «войти в тему», чем простое изложение теории, но, конечно, не отменяет ее изучение. Поэтому, я настоятельно рекомендую, в дополнение к данным статьям ознакомиться так же с документацией по FastReport, которая входит в состав справочной системы VeralTest.

И так, давайте начнем. Для того чтобы пробежаться по всем этапам разработки отчета, и не увязнуть при этом в деталях, давайте попробуем начать с простого примера. Пусть наш первый, самостоятельно написанный отчет, просто печатает список пользователей, зарегистрированных на сервере тестирования.

Все действия с отчетами в программе TestAdmin сосредоточены в окне «Настройка отчетов», которое можно вызвать из меню «Отчеты/Настройка отчетов».

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

Добавим наш новый отчет, нажав одноименную кнопку на панели инструментов, и в открывшемся окне «Параметры отчета» на закладке «Опции отображения» введем название отчета.


Поскольку наш отчет касается пользователей, то в параметре «Раздел» мы оставили значение «Пользователи». Это означает, что команда вызова отчета будет доступна только в разделе «Пользователи» главного окна TestAdmin.

Перейдем теперь на вкладку «Шаблон отчета».

Здесь сгруппированы настройки формирования данных для отчета. Мы пока не будем подробно разбирать назначение всех параметров на этой вкладке, поскольку для нашего первого отчета никаких изменений не требуется, а лучше сразу перейдем к самому интересному - конструированию шаблона отчета.

Нажимаем кнопку «Редактор шаблона», и перед нами открывается окно дизайнера отчета FastReport.

Как видно из рисунка, окно дизайнера прямо таки пестрит разнообразием различных кнопок, команд, панелей, и, на первый взгляд кажется, что в этом великолепии легко запутаться, но на самом деле интерфейс дизайнера логично сгруппирован по нескольким областям (самые важные из которых я пометил цифрами). Давайте рассмотрим каждую область более подробно.

Область под цифрой 1 – это рабочее место дизайнера, где, собственно, и рисуется сам шаблон отчета. Сейчас мы видим здесь заготовку страницы для нашего будущего отчета.

Под цифрой 2 обозначена панель объектов отчета. Объекты отчета – это все, что может быть добавлено в отчет: текст, рисунки, диаграммы и т.д. Чтобы поместить какой-нибудь объект в отчет нужно щелкнуть на значок этого объекта в панели объектов, а затем поместить указатель мыши в нужное место на странице шаблона и снова нажать кнопку мыши.

Область номер 3 содержит в себе настройки текущего объект отчета и называется «Инспектор объектов». Для объекта «Текст», например, в инспекторе объектов хранятся настройки шрифта, цвета, а для объекта «Рисунок» - имя файла картинки.

И, наконец, цифрой 4 обозначено «Дерево данных», показывающее нам: какие данные мы можем поместить в отчет. Если представить себе, что данные в наш отчет поступают в виде некой таблицы (на самом деле по большому счету так оно и есть), то каждый перечисленный пункт в дереве данных (УИД, Логин, ФИО и т.д.) является столбцом этой таблицы.

Давайте посмотрим еще раз на страницу шаблона отчета (область 1). Мы видим, что на странице уже размещены какие-то полоски. Зачем они нужны? Эти полоски называются бэнды (band), и применяются они для логической группировки объектов отчета.

Бэнд под цифрой 1 – это бэнд заголовка отчета. Объекты, помещенные в него, выводятся только вверху первой страницы отчета.

Бэнд под цифрой 2 – это, так называемый, дата-бэнд, он связан с таблицей данных. Объекты, размещенные в дата-бэнде, повторяются в отчете столько раз, сколько строк в таблице.

И, наконец, бэнд 3 – это «подвал» страницы, он выводится внизу каждой страницы отчета. Сейчас в этом бэнде размещен текстовый объект, который формирует номер страницы.

Теперь, когда мы в общих чертах разобрались со структурой дизайнера FastReport, давайте приступим непосредственно к конструированию нашего отчета.

Первым делом поместим на страницу заголовок. Для этого на панели объектов выберем объект «Текст», щелкнув мышкой на его значке, затем переместим курсор мышки внутрь бэнда заголовка и щелкнем еще раз.

В открывшемся окне редактора текста введем текст заголовка

После нажатия кнопки «ОК» наш объект с тестом заголовка появится в бэнде.

На рисунке видно, что весь текст не уместился внутри объекта. Это можно поправить, если увеличить ширину объекта, потянув его за рамку (помечено красным), но мы сделаем по-другому: Давайте посмотрим на панель инспектора объектов (область под цифрой 3) и найдем настройку с названием Align. Эта настройка отвечает за размещение объекта внутри бэнда. Текущее значение этой настройки baNone – положение и размеры объекта настраиваются вручную. Давайте заменим это значение на baWidth, выбрав его из списка.

После выбора этого значения мы увидим, что наш текст автоматически растянулся на всю ширину бэнда. Как видите, этот способ позиционирования текста гораздо удобнее, чем ручное растягивание границ объекта, кроме того, при таком подходе ширина объекта «текст» будет автоматически изменятся при любых изменениях самого бэнда (например, при изменении размеров страницы).

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

Настало время добавить данные в наш отчет. Снова выберем объект текст на панели объектов, но на этот раз поместим его в дата-бэнд. При добавлении объекта снова откроется окно редактор текста, но мы не будем вводить текст, а воспользуемся кнопкой «Вставить выражение».

В открывшемся окне «Редактор выражений» на вкладке «Поля БД» перечислены все поля (столбцы) нашей таблицы данных, которые мы можем добавить в отчет. Выберем поле «Логин», щелкнув на нем дважды мышкой и подтвердим выбор выражения, нажав кнопку «Ок». Вернувшись в окно редактора теста, так же нажмем «Ок», после чего объект «текст» с выбранным выражением отобразится в дата-бэнде.

На этом этапе мы уже можем посмотреть наш отчет в работе, нажав на кнопку предварительного просмотра на панели задач дизайнера.

Теперь мы видим, как работают бэнды нашего отчета: Бэнд заголовка отобразил заголовок нашего отчета в начале страницы, а дата-бэнд вывел значение поля логин, причем вывод повторился три раза, поскольку в системе зарегистрировано три пользователя.

Добавим еще два текстовых объекта в дата-бэнд и свяжем их с полями «ФИО» и «Группа» точно так же, как мы это сделали с полем «Логин». Вот что должно получиться в итоге:

Запустим снова предварительный просмотр и посмотрим на результат:

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

Первым делом добавим «шапку» к таблице. Для этого нам нужно вставить новый бэнд на страницу отчета. На панели объектов нажмем кнопку «вставить бэнд» и из раскрывшегося меню выберем бэнд «заголовок данных»

После того как новый бэнд появится на странице отчета, перетащим его мышкой вверх, так чтобы он расположился над дата-бэндом.

Поместим в бэнд три текстовых объекта и в качестве текста для каждого объекта введем название соответствующего столбца, а так же сделаем шрифт жирным, чтобы заголовки выделялись на фоне данных.

Чтобы при печати отчета рисовалась рамка таблицы, установим обводку у текстовых объектов. Для этого нужно выделить объект мышкой и нажать кнопку «Все линии рамки» на панели инструментов.

Запустим еще раз предварительный просмотр.

Видим, что таблица рисуется, но с некоторыми недочетами: во-первых, хотелось бы, чтобы ячейки таблицы занимали всю ширину страницы; а, во-вторых, необходимо убрать промежутки между строками таблицы.

Для исправления этих недостатков необходимо растянуть текстовые объекты так, чтобы они занимали по ширине весь дата-бэнд и бэнд заговка, а высоту самих бэндов уменьшить, чтобы между рамкой текстового объекта и границей бэнда не оставалось пустого места.

В качестве последнего штриха увеличим немного высоту бэнда заголовка, чтобы он не «прилипал» к таблице данных.

Наш отчет готов. Теперь можно просто закрыть окно дизайнера и, вернувшись в окно параметров отчета, нажать кнопку «Ок», чтобы отчет сохранился на сервере.

После сохранения отчета, он появится в меню «Отчеты» главного окна программы TestAdmin (напомню, что отчет будет виден только в том случае, если выбран раздел «Пользователи»).

А вот так наш отчет выглядит в окончательном варианте

На этом наш первый урок по конструированию отчетов в VeralTest завершен. Надеюсь, что изложенный материал не вызвал у вас особых затруднений. В следующих статьях мы рассмотрим более сложные и более полезные с точки зрения практического использования примеры.