Формирование отчетов

В дистрибутив программы Деканат входит ряд шаблонов для формирования разного рода отчетов. Кроме этого, Вы можете создавать свои шаблоны на основе Word, Excell и "движка" Fast Report

Формирование отчетов в frx (FastRerport)

Для формирования и редактирования отчетов в папке с программой Деканат должен находиться каталог Report, где лежат файлы программы DekReport.exe


Рисунок 1 - Папка Report

Отчеты в формате frx формируются и редактируются в специальном конструкторе, который можно открыть через программу Деканат (Меню Администрирование - Конструктор отчетов frx) или если запустить DekReport.exe.


Рисунок 2 - Меню "Администрирование"

При выборе этого пункта откроется проводник, где нужно будет выбрать шаблон с расширением frx. На рисунке, открыт шаблон файла "ЗачетнаяКнижка.frx", который Вы можете найти в папке с обновлением программы Деканат.

Если Вы хотите создать свой шаблон, то Вы можете сделать копию любого, подходящего шаблона frx и внести в него изменения.

Рисунок 3 - Конструктор FastReport

Для создания отчета понадобится:

  • Создать источник данных (Connection)- настройки подключения к БД Деканат.

  • Создать запрос в источнике данных (Table) - SQL запрос, который будет выполнен при формировании отчета.

  • Создать макет отчета.


Рисунок 4 - Настройка источника данных FastReport 

 

Источник данных

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

1. Кликните правой кнопкой по названию источника и выберите "Редактировать"


Рисунок 5 - Меню

 

2. Нажмите кнопку "Редактировать" и укажите настройки подключения к БД Деканат.


Рисунок 6 - Настройка соединения с сервером

3. После изменения нажмите Вперед и затем кнопку "Готово"

Изменения запроса

Для создания запроса используется SQL запрос к БД Деканат. При его составлении Вы можете использовать переменные, которые при формировании будут заменены на данные из программы Деканат.

1. Чтобы изменить запрос кликните по названию объекта (Table) и выберите пункт редактировать.


Рисунок 7 - Редактор запроса

2. Нажмите "Вперед" и затем в текстом поле внести запрос. Можно воспользоваться конструктором запроса.
Создать запросы можно только на чтение (SELECT FROM).

При составлении запроса Вы можете использовать следующие переменные:

  • @StudID - код студента

  • @GroupID - код группы

  • @SpecID - код специальности

  • @FacID- код факультета

  • @VedKafID - код ведомости


Рисунок 8 - Редактор запроса

3. Нажмите кнопку "Вперед"
4. Если Вы использовали переменные, то необходимо объявить их на следующем шаге. Если Вы хотите проверять отчеты прям в конструкторе, то укажите значение по умолчанию (DefaultValue)
В поле DataType укажите значение Int


Рисунок 9 - Параметры запроса

5. Для завершения нажмите кнопку "Вперед" и затем "Готово"

Создание макета

В этой инструкции дается только обще представление о работе с шаблонами frx.
Конструктор Fast Report позволяет Вам создавать шаблоны от простых до очень сложных.
Если Вы хотите изучить, как самостоятельно создавать шаблоны, Вы можете скачать инструкции с официально сайта программы:
https://www.fastreport.ru/ru/download/documentation

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

Формирование отчетов в WORD

Одним из вариантов создания отчетов в ИС «Деканат» является использование шаблонов созданных в MS Office Word.
Чтобы добавить новый отчет в программу необходимо в конце названия файла написать ключевое слово «–Word.doc» и скопировать файл в папку с программой в каталог «Templates».

Теги

Слово -word.doc нужно обязательно указать в конце имени файла. При запуске программы, файлы, имеющие такой префикс, автоматически добавятся в меню «Отчет».

Пример: Отчет- word.doc

Для заполнения отчета данными из базы «Деканат» используются специальные теги, заключенные в квадратные скобки:

[!НазваниеПоле]

Пример: Для того чтобы вывести ФИО студента достаточно написать [!Фамилия] [!Имя] [!Отчество]

Также, можно использовать теги [!ФИО1] [!ФИО2] [!ФИО3] ….[!ФИО6] для вывода ФИО студента в нужном падеже.

Пример других базовых тегов:

[!Дата_Рождения]
[!МестоРождения]
[!Гражданство]
[!Тип_Образ_Документа]
[!Год_Окончания_УЗ]
[!Страна_ПП], [!Регион_ПП], [!Город_ПП], [!Улица_ПП], [!Дом_Кв_ПП]

Любой тег можно использовать несколько раз в отчете.

По умолчанию, для заполнения тегов, используется запрос «ДекВсеДанныеСтудента». Чтобы узнать весь перечень тегов нужно открыть этот запрос в программе «Среда SQL Server Management Studio» или в файле admin.adp
(входит в дистрибутив серверной части программы «Деканат»)


Рисунок 10 -  Список полей запроса "ДекВсеДанныеСтудента"

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


Рисунок 11– Свойства документа

Важно: При использовании другого запроса, теги по умолчанию могут не работать. Если Вы используете др. запрос, убедитесь, что в проекте вашего запроса добавлены поля «Фамилия», «Имя», «Отчество».

Вывод табличных данных

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

1. Ключевое слово и запрос.

Чтобы программа поняла, что запрос должен быть обработан, в самой первой строке нужно написать ключевое слово [@Запрос]. Как составить код запроса будет показано в примере.

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

2. Разметка таблицы и теги

В последней строке, должны идти названия колонок из запроса. Имя колонки нужно заключить в квадратные скобки [НазваниеКолонки]

При составлении макета таблицы нужно придерживаться следующих правил:

- В ячейку нельзя вписывать название нескольких полей;
- Не объединяйте ячейки по вертикали.

!

[Тег1][Тег2]

[Тег2]

Приведем пример.

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

Родство

ФИО

Телефон

Добавим в начале таблицы еще две строки для указания ключевого поля и запроса. Ячейки в 1-й и 2-й строке должны быть объединены:

[@ Запрос ]

SELECT * FROM СЕМЬЯ WHERE КОД _ СТУДЕНТА = @ID

Родство

ФИО

Телефон

Любой запрос Вы можете начинать с ключевого слова Select * FROM
Эти строки означают, что при выполнении запроса будут загружены ВСЕ (*) колонки.

Иначе говоря, в этих словах вы даете команду: « Выделить ВСЕ ИЗ» далее следует имя таблицы – Семья. Теперь нужно добавить фильтр по коду студента. Что установить фильтр нужно после названия таблицы/запроса написать слово WHERE + Имя колонки = @параметр

Личное дело студента связано с таблицей «Семья» по полю «Код_студента».


Рисунок 12 - Проект таблицы «Семья»

Чтобы запись были отфильтрованы по коду студента, которого мы выбрали в программе «Деканат» нужно указать параметр: @ ID Теперь, в последней строке таблицы, укажем названия колонок из таблицы «Семья», чтобы они загрузились в таблицу при формировании отчета.

[@ Запрос ]

SELECT * FROM СЕМЬЯ WHERE КОД _ СТУДЕНТА = @ID

Родство

ФИО

Телефон

[ Родство ]

[ ФИО ]

[ Телефон ]

Параметры, которые можно использовать при формировании запросов:

@ID – Код студента;
@КодФакультета – код факультета;
@КодГруппы – Код группы

Также можно задать сортировку по любому полю таблицы указав в конце ключевое слово ORDER BY НазваниеПоля. Так, чтобы задать сортировку по ФИО нужно указать:

[@ Запрос ]

SELECT * FROM СЕМЬЯ WHERE КОД _ СТУДЕНТА = @ID ORDER BY ФИО

Родство

ФИО

Телефон

[ Родство ]

[ ФИО ]

[ Телефон ]

Начиная с версии 4.3.851, в состав программы входит шаблон «ЛичнаяКарточка2013-Word.doc». Используйте его как образец, или измените отчет под ваши требования.

Вставка фотографии студента

С помощью таблицы, вы можете добавить фотографию студента в отчет. Для этого в первой ячейки таблицы (первая строка, первый столбец) нужно добавить тег [@Фото]

[@Фото]

Формирование отчетов в Excel

Отчеты в Excel формируются на основе запросов, также как и в Word. Каждый макет использует определенный SQL запрос, по которому строится отчет. В документе можно указать два запроса:

  • Первый запрос указывается в поле «Примечания» - по нему будут заполняться все именованные ячейки в документе (титульная часть)
  • Второй запрос (основной) указывается в поле «Категории». По этому запросу строится таблица (табличная часть).
Свойства документа
Рисунок 13 - Свойства документа

Титульная часть (Запрос примечания)

Рассмотрим для примера, стандартный шаблон «Список группы». В шаблоне есть шапка, где выводится три атрибута: название группы, название факультета и название направления (подчеркнуты красными линиями). Ячейки можно объединять. Ячейки, в которых выводится факультет, группа и специальность объединены в колонках А по D.

Макет отчета
Рисунок 14 - Макет отчета
 
Именованные ячейки имеют имя, которое можно увидеть при выделении соответствующей ячейки. Данные ячейки обрабатываются на всем листе, т.е вы можете их расположить в любом месте, кроме табличной части

Название ячеек для титульной части отчета
Рисунок 15 - Название ячеек для титульной части отчета

Если выделить любую другую ячейку, то она имеют имя в виде адреса - строка-столбец (Е1 или R1C5). Такие ячейки не обрабатываются при построении отчета.

 
Именованные ячейки в шаблоне имеют имена: «Группа», «Факультет», «Специальность». Эти ячейки будут заполняться на основе первого запроса из поля «Примечание». Чтобы они были заполнены, в запросе должны быть созданы поля с такими же именами. Запрос, который располагается в примечании, должен возвращать результат в виде 1 строки. Если их будет больше, заполнение ячеек произойдет по 1 строке. К этом примере, запрос возвращает информацию о выбранной группе.
Запрос для титульной части
Рисунок 16 - Запрос для титульной части, поле "Примечание"
 

Табличная часть (Запрос категории)

Запрос из поля категории формирует табличную часть отчета.

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

 

Макет табличной части
Рисунок 17 - Макет табличной части - диапазон Шапка
 
Список – определяет нижнюю грань. Также, ячейки данного диапазона определяют имена полей из БД, которые будут, записывается в эту колонку. При формировании отчета между строками «Шапка» и «Список» удаляются все строки. 
На рисунке ниже, в выпадающем меню «Имя» (возле поля функции) выбран диапазон «Список» и он же выделен в шестой строке.
 
Запрос для титульной части - Список
Рисунок 18 - Запрос для титульной части, диапазон "Список"
 
Если выделить конкретную ячейку из этого диапазона «Список», то можно увидеть, что ячейка имеет имя. Данное имя соответствует имени колонки из запроса из поля «Категория».

Запрос в поле категория
Рисунок 19 - Запрос для табличной части, поле "Категория"

Вы можете выделить любую ячейку в диапазоне "Список" и увидеть в поле "Имя" название ячейки.

Именование ячейки ФИО
В ячейке ФИО выводится ФИО студента
 
Именование ячейки зачетная книжка
Рисунок 20 - Именование ячеек для табличной части

В макете можно скрывать, удалять колонки, менять форматирование текста.

Примечание: Размер шрифта, цвет, переносы, типы данных определяется строкой, где находится диапазон список.
 
Если Вы, к примеру, хотите сделать чтобы колонка ФИО была 12 шрифтом, а стиль текста был «курсив», то премините данное форматирование к ячейке с именем «ФИО».
Для добавления нового столбца, в котором будет выводиться информация, необходимо добавить данный столбец в диапазон «Список», и указать имя ячейки, которое соответствует названию поля в запросе.

 

Создание нового отчета

Для создания нового отчета Вам нужно:

  • Создать макет в Excel, титульную и табличную части (Рисунок 14);
  • Подготовить sql-запрос для титульной части и добавить его в свойствах документа, в поле "Примечание" (Рисунок 16);
  • Подготовить sql-запрос для табличной части, и добавить его в свойствах документа, в поле "Категория" (Рисунок 19);
  • Заполнить на основании запросов (названия колонок) титульную и табличную часть;
    • Для титульной части необходимо задать имя ячейки, куда будут выводиться данные из запроса "Примечание" (Рисунок 20);
    • Для табличной части необходимо задать диапазоны "Шапка" и "Список" и затем, в диапазоне "Список", задать имена ячейкам по запросу "Категория" (Рисунок 18).
  • Скопировать шаблон в папку Templates, в конце названия файла должно присутствовать слово -Отчет.xls

Пример именования файлов
Рисунок 21 - Пример именования файлов

Для формирования запроса Вы можете использовать ключевые слова, для замены на выбранное значение в программе Деканат:

  • @КодВыбранногоСтудента – код выбранного студента;
  • @КодВедомости – код ведомости;
  • @КодВыбраннойГруппы – код группы
  • @КодВыбранногоФакультета - код факультета
  • @КодПриказа - код приказа (модуль приказы)

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

SELECT Код, Фамилия + ' ' + Имя + ' ' + Отчество AS ФИО, Номер_Зачетной_Книжки, Основания, Изучаемый_Язык FROM Студенты WHERE Код_Группы=@КодВыбраннойГруппы ORDER BY Фамилия, Имя