Назначение

Позволяет распечатать данные из базы данных.


Описание

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



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




Структура БД, которая используется для данного примера:




Выберите для данной кнопки действие «Отчет», настройка данной кнопки показана на рисунке ниже:




Подробно рассмотрим данную настройку по шагам:


  1. Выберите компоненты участвующие в поиске

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



  1. Выберите таблицу базы данных для поиска

Мы будем печатать информацию о клиенте, соответственно выбираем таблицу БД Client.



  1. Формирование результата

Выбираем поля таблицы, которые нам необходимы в отчете.



  1. Выберите шаблон отчета

Так как шаблон отчета нам еще предстоит создать, в данной настройке должно быть выбрано «Открыть дизайнер отчета…»

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




Тут стоит упомянуть об одном нюансе. Как видно из настроек в п.2, для формирование результата мы выбираем поля из 4 различных таблиц (Client, Equipment, Rent, CustomerType), как правило, в других программах необходимо составлять SQL запрос, в котором вручную указывается, каким образом одна таблица, связывается с другой таблицей и в какой последовательности.


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


К сожалению, не всегда программа может предвидеть, каким образом необходимо связать таблицы, чтобы в результате получить данные, которые вы хотели бы видеть. Такая ситуация может возникнуть, когда вам необходимо связать 3 и более таблицы и если между ними нет очевидных связей. Так, например, между таблицей «Client» и «Equipment» нет связей, связь между этими таблицами осуществляется посредством другой таблицы «Rent».


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


Примерами словарных таблиц может служить таблица, в которой содержаться названия стран, статусы (Открыт, Закрыт),  типы (Юридическое лицо, Физическое лицо), наименование с ценами, и т.д.


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


В данном случае к словарными таблицам можно отнести «CustomerType» (тип клиента) и «Equipment» (техника), для данных таблиц необходимо установить галочку «Таблица является словарем» под данными таблицами, таким образом, вы поможете программе правильно связать таблицы.



Чтобы создать шаблон отчета, необходимо запустить проект

В запущенном проекте, нажмите на данную кнопку с действием отчет, таким образом, вы откроете дизайнер отчета.


Данный отчет будет чуть сложней, чем предыдущий, так как в нем будут использованы так называемые блоки (или Band). Блоки позволяют создать почти любую структуру отчета. С некоторыми из них мы сейчас познакомимся.


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









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


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

Поместим в данный блок название отчета. В результате у вас должно получиться, как показано на рисунке ниже:




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


В данном блоке мы поместим информацию о клиенте. Также поместим заголовки для таблицы, которая будет расположена в следующем блоке.

Поместите в данный блок текст и поля с данными, как показано на рисунке ниже:




Следующий блок, который необходимо поместить в отчет, это Master Data.


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


Поместите данный блок в отчет, выбрав его из меню. Перед тем как он появится в отчете, вы увидите окно с заголовком Select DataSet, в котором необходимо выбрать источник данных. Выберите из списка источник данных с названием Report и нажмите OK.


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




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

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


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




После этого ваш шаблон отчета должен выглядеть так, как показано на рисунке ниже:





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

Поместите в данный блок системную переменную Page# из правой части дизайнера отчета (вкладка Variables), просто перетащите мышкой:




Теперь ваш шаблон отчета полностью готов



Зайдя в меню File > Preview или просто нажав Ctrl+P вы можете посмотреть, как будет выглядеть ваш отчет.


Сохраните шаблон отчета в папку Report вашего проекта, меню File > Save As….  Дайте файлу имя, например «клиент-техника», как показано на рисунке ниже:




Осталось снова зайди в настройки данной кнопки и выбрать данный шаблон отчета, чтобы он использовался при печати:





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




Порой бывает удобно, поместить данную кнопку для печати непосредственно на форму добавления/редактирования записи. В этом случае, в настройках кнопки, оставьте пустым список «1. Выберите компоненты участвующие в поиске». Так как, если кнопка с действием «Отчет» размещена на форме предназначенная для добавления/редактирования, она автоматически распознает, какую именно запись необходимо отправить на печать.