====== Настройка отчетов в программе Отчеты====== ====== Настройка модуля отчетов. Инструкция. ====== ===== Введение. ===== Программный модуль Отчеты (исполняемый файл report.exe) позволяет получать отчеты из базы данных СКУД Артонит. Программный модуль обеспечивает: - 1. Выбор типа отчета. - 2. Вывод и выбор базовой информации для формирования отчета. - 3. Получение результата расчета и вывод информации на экран монитора. - 4. Сохранение результата в файл в различных форматах. Ниже приводится описание механизма взаимодействия приложения report.exe с базой данных. ===== База данных ===== База данных называется shieldpro.gbd, работает под управлением FireBird 1.5. В ходе работы база использует UDFShieldPro.dll. ===== Конфигурационный файл. ===== C:\ProgramData\CardSoft\DuoSE\Access\Report.ini. ===== Соединение с базой данных. ===== Приложение report.exe подключается к БД с помощью компоненты fbclient.dll. ===== Запуск приложения. ===== Приложение запускается как приложение windows. Путь по умолчанию: C:\Program Files (x86)\CardSoft\DuoSE\Access\ Report.exe. Подключение к БД происходит под паролем суперадминистратора (вкомпилирован в программу). После запуска приложение требует ввод логина и пароля и подключается к базе данных. Этот набор логина и пароля определяет набор данных, разрешенных для просмотра. Приложение работает со следующими ресурсами базы данных: Таблица 1 таблиц, используемых в приложении Report. ^№ п/п^Ресурс^Название^Содержание |1|таблица|REPORTS|Перечень отчетов |2|таблица|REPORTCELLS| |3|процедуры|Названия используемых процедур указаны в таблице REPORTS| При запуске приложение по умолчанию открывает отчет ID=1 "Список пропусков". ===== Содержимое таблицы REPORTS. ===== Таблица REPORTS содержит список имеющихся отчетов. Таблица 2 Содержимое таблицы REPORTS. ^ID_REP^REP_INDEX^PRINTINDEX^PRINTCAPTION^REPTYPE^REPCAPTION^PROCNAME |1|RepCardList|0|Список пропусков|512|Cписок карточек|Report_GetCardList |2|RepEventList|1|Журнал событий|1024|Журнал событий|Report_GetEventList |3|RepWorkTime|2|Журнал рабочего времени|2048|Журнал рабочего времени|Report_WorkTime_Order |4|RepDelPep|3|Cписок уволенных сотрудников|4096|Журнал уволенных|Report_PepInfo |5|RepPep|3|Cписок сотрудников|16384|Журнал сотрудников|Report_PepInfo |6|RepWorkTimeDetail|2|Журнал рабочего времени|2048|Детальный журнал рабочего времени|Report_WorkTimeDetail При необходимости добавить новый отчет начинать надо именно с этой таблицы. ===== Структура экранной формы приложения REPORT.exe. ===== Верхняя часть окна приложения Отчеты имеет следующую структуру: {{ :photo4_-_копия.jpg?nolink |}} В блоке 1 выводится список отчетов, взятый из таблицы Reports. В блоке 2 выводится набор закладок, связанных с выбранным отчетом. ===== Формирование набора входных данных для расчета. ===== Набор входных данных (закладки Сотрудники, категории доступа, Результат и т.п.) для расчета по каждому фиксирован и изменен быть не может. ===== Формирование выходного набор данных результата расчета. ===== Каждый отчет реализован как процедура. Набор выходных данных определяется в самой процедуре и может быть изменен путем редактирования процедуры. При редактировании процедуры в FireBird необходимо помнить, что выходные параметры и переменные должны быть заявлены заранее: необходимо сначала заявить переменную, а уже затем вставлять её в текст процедуры. ==== Вывод результатом отчета на экранную форму. ==== При получении результатов отчета приложение Report.exe строит таблицу, названия колонок которых берет из таблицы REPORTCELLS. Количество полей процедуры должно совпадать с количество столбцов в отчете. ===== Пример добавления поля Табельный номер в отчет рабочего времени. ===== ==== Экран приложения после запуска отчета Журнал рабочего времени. ==== {{ :report1.jpg?nolink |}} Как видно, расчет выполнен, и содержит 8 колонок. Необходимо добавить табельный номер. ===== Добавление названия поля в отчете. ===== В таблице 2 видим, что это отчет ID_REP=3. В таблицу REPORTCELLS добавляет строку, где указываем: ID_CELL – null (не менять. Номер подставится автоматически при вставке), ID_REP 3 (т.к. отчет имеет номер 3), FIELDNAMR – tabNum название поля, которое будет выводится в этой колонке, FIELDCAPTION – "Табельный номер" – название колонки. Должно быть так: {{ :report2.jpg?nolink |}} После ввода данных не забудьте нажать красную галочку commit. Можно воспользоваться SQL-запросом для вставки необходимой строки: ''INSERT INTO REPORTCELLS (ID_CELL,ID_REP,FIELDNAME,FIELDCAPTION) VALUES (NULL,3,'tabNum','Табельный номер');'' ==== Добавление поля в процедуру Report_WorkTime_Order. ==== В набор выводимых данных добавляем TABNUM, тип VARCHAR 50. Так же добавляем переменную :tabnum в набор выводимых данных: {{ :report4.jpg?nolink |}} После добавления данных процедуру необходимо скомпилировать, нажав на кнопку {{ :compil.jpg?nolink |}} . Как видно, процедура Report_WorkTime_Order использует результат работы процедуры REPORT_WORKTIME. Открываем процедуру REPORT_WORKTIME. {{ :report5.jpg?nolink |}} Добавляем переменную tabnum и в переменные, и в текст процедуры. После добавления данных процедуру необходимо скомпилировать, нажав на кнопку {{ :compil.jpg?nolink|}}. === Запуск приложения Report c новым набором выходных параметров. === После запуска приложения в отчет появляется новое поле "Табельный номер". {{ :report6.jpg?nolink |}} === Контакты. === Все указанные процедуры могут выполнить сотрудник ООО "Артсек" на платной или бесплатной основе (в зависимости от лицензии). [[www.artonit.ru]] 4 июня 2019 г.