Конструктор отчетов ТЦУ. Создание простого отчета.

Автор:   Алимова Елена, elena@andriy.co

В системе ТЦУ имеется более ста отчетов в различных вариантах. Не смотря на это, удовлетворить разнообразные потребности пользователей способен только Конструктор отчетов ТЦУ. Он позволяет создавать отчеты под свои специфические требования.

Компания СофтКБ постаралась реализовать интерфейс конструктора по подобию конструктора отчетов Microsoft Access. Такое решение имеет ряд преимуществ:

  1. Конструктор отчетов MS Access знаком большому количеству пользователей, поскольку является частью пакета MS Office.
  2. Наличие большого количества литературы по конструктору MS Access дает возможность получить информацию о работе конструктора ТЦУ.

Для извлечения необходимой информации из базы данных в конструкторе отчетов ТЦУ используются запросы на языке SQL (Structured Query Language – язык структурированных запросов). В программе имеется специальный инструмент для создания SQL- запросов.

Рассмотрим, как создать простейший отчет Прайс-лист. Наша цель - показать, как легко и быстро можно создавать собственные отчеты в ТЦУ.

Открываем Мастер отчетов и создаем новый отчет.

Откроется окно конструктора с макетом пустого отчета. Справа от него расположено окно свойств для объекта TCU Report. В разделе Report Wizard (Мастер отчетов) обратим внимание на свойства ReportWizardName и ReportVariantName.

ReportWizardName (Имя отчета в Мастере) – вид отчета из перечня доступных отчетов. В нашем случае это Price List, так как этот вид отчета был выбран на момент создания нового отчета.

ReportVariantName хранит название варианта отчета для текущего вида отчета. В эту строку запишем название нашего отчета Прайс-лист.

В макете нового отчета изначально имеется элемент DataControl (Управление данными), расположенный в области данных. Именно через этот элемент осуществляется связь отчета с базой данных. Выделим мышью элемент DataControl, чтобы открыть окно свойств для данного объекта. В строку свойства Source (Источник) необходимо поместить текст SQL запроса. Нажмем на кнопку «…» в строке свойства Source.

Откроется окно конструктора SQL запросов. Рассмотрим его структуру.

1. Область таблиц запроса – это место, где размещаются таблицы и устанавливаются связи между ними.

2. Бланк запроса – предназначен для определения полей и условий, которые будут использованы для извлечения результирующего набора данных.

3. Дерево доступных таблиц БД.

4. Дерево таблиц и полей текущего запроса.

5. Область результирующего SQL кода.

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

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

Необходимые нам данные содержатся в следующих таблицах: kat, tovar, izmer.

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

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

Укажем поля для построения запроса. Выделим необходимое поле в макете таблицы и перетащим (или двойным щелчком) в нужную строку бланка запроса.

В столбце Expression содержатся имена полей из таблиц или выражения (вычисляемые поля). Установленный флажок Output определяет, будет ли присутствовать (отображаться) данное поле в результирующем наборе данных. Это удобно, когда поле используется для указания критериев отбора, но нет необходимости выводить на экран значения данного поля. Например, в прайс-лист не должны быть включены товары, являющиеся возвратной тарой. В таком случае, выбираем поле [tara] в таблице Tovar, снимаем флажок вывода на экран, а в поле условия отбора (Criteria) указываем значение =False.

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

Закроем конструктор SQL, сохранив сделанные изменения. Обратите внимание, теперь свойство Sourse содержит строку SQL-запроса. Кнопка Сохранить как… вызывает диалоговое окно «Save TCU Report file». Присвоим имя файла «Прайс-лист» и сохраним. ТЦУ автоматически помещает отчет в папку Reports в каталоге TCU3. После перезапуска программы сохраненный отчет можно увидеть в перечне вариантов отчета.

Теперь создадим макет отчета. Отчеты могут содержать следующие разделы:

ReportHeader – заголовок отчета, печатается только в начале отчета, используется на титульной странице.

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

GroupHeader – заголовок группы, печатается в начале каждой группы.

Ditail – область данных, где обрабатывается и печатается каждая запись из динамического набора данных запроса.

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

PageFooter – примечание страницы (нижний колонтитул), печатается внизу каждой страницы, сюда обычно помещается номер страницы.

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

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

Основными элементами отчета являются надпись и поле. С помощью элемента «Надпись»(label) в отчете можно отобразить нужный текст, например, заголовок, подпись и т.д. С помощью элемента «Поле» (field) в отчете отображается информация из базы данных. В поле можно использовать любой тип данных: текстовый, числовой, логический, дата/время и т.д.

Щелкнем по значку «Надпись» на панели элементов, поместим курсор в нужное место в разделе ReportHeader и перетащим указатель мыши (удерживая левую кнопку), чтобы образовался прямоугольник. Мы создали объект label. Чтобы поместить текст в элемент, в строке свойства Caption (текст надписи) наберем «Прайс-лист». В строке свойства Font (Шрифт) нажмем на кнопку «…». В появившемся диалоговом окне «Шрифт» зададим свойства шрифта общепринятым в приложениях Microsoft Office способом. Цвет шрифта и фона задается в свойствах ForeColor и BackColor.

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

Используя элемент «Надпись», создадим заголовки столбцов отчета. Для этого целесообразно использовать раздел PageHeader. В этом случае наименования столбцов будут печататься в начале каждой страницы, что удобно для многостраничного отчета.

Цвет, толщину, стиль границ элемента «Надпись» можно установить через контекстное меню, Format Border или на панели инструментов, как это принято в приложениях MS Office.

В любой момент можно открыть отчет в режиме просмотра. Для этого переключаемся на вкладку «Прайс-лист», предварительно сохранив изменения в режиме конструктора. Затем двойным щелчком мыши по названию варианта отчета (справа) обновим отчет. На данном этапе должно выглядеть вот так:

Создадим поля, в которых будет отображаться необходимая нам информация из базы данных.

Заголовок группы следует поместить в разделе GroupHeader. При помощи элемента «Поле» на панели элементов создадим объект field. Для свойства DataField укажем источник записей. Из выпадающего списка выберем необходимое поле, по которому сортируются записи (в нашем случае это kat_name).

Теперь приступим к созданию области данных для нашего отчета. В разделе Detail поместим семь объектов field и установим размеры так, чтобы поля располагались непосредственно под наименованиями столбцов. Далее установим формат границ (аналогично объекту label) и укажем в свойствах DataField источники записей для каждого объекта.

Следует обратить внимание на то, что в области данных под элементами управления и над ними нет пустых мест, что позволяет отображать записи области данных в отчете как единое целое.

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

Сортировка записей итогового набора данных устанавливается с помощью отдельного свойства SortingOrder для объекта TCUReport. Отсортируем наши записи сначала по группам товаров, затем по наименованиям товаров.

Сортировка производится по полю ext_kat_namе для того, чтобы учесть и вложенные группы (подгруппы) товаров.

Такой вид имеет готовый отчет в режиме просмотра.

Напоследок еще несколько замечаний.

При выборе таблиц и полей для создания запроса можно воспользоваться описанием базы данных ТЦУ, обратившись по ссылке.

Если необходимо вернутся к работе с ранее созданным элементом, его можно выбрать, кликнув по нему мышью или выбрав необходимый элемент из выпадающего списка в окне «Свойства объекта».

Готовый отчет (в том числе и пользовательские отчеты ТЦУ), можно изменить или доработать, добавив в запрос отчета необходимые таблицы и поля. Предварительно по кнопке Сохранить как… сохраняем отчет под другим именем, чтобы не затереть оригинальный отчет. В окне конструктора отчетов создать новые элементы управления – надписи и поля.

Видеоурок по конструктору отчетов

Статья включена в следующие темы:

Вверх