Программный модуль Отчеты (исполняемый файл report.exe) позволяет получать отчеты из базы данных СКУД Артонит. Программный модуль обеспечивает:
Ниже приводится описание механизма взаимодействия приложения 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 содержит список имеющихся отчетов.
Таблица 2 Содержимое таблицы REPORTS.
ID_REP | REP_INDEX | PRINTINDEX | PRINTCAPTION | REPTYPE | REPCAPTION |
---|---|---|---|---|---|
1 | RepCardList | 0 | Список пропусков | 512 | Cписок карточек |
2 | RepEventList | 1 | Журнал событий | 1024 | Журнал событий |
3 | RepWorkTime | 2 | Журнал рабочего времени | 2048 | Журнал рабочего времени |
4 | RepDelPep | 3 | Cписок уволенных сотрудников | 4096 | Журнал уволенных |
5 | RepPep | 3 | Cписок сотрудников | 16384 | Журнал сотрудников |
6 | RepWorkTimeDetail | 2 | Журнал рабочего времени | 2048 | Детальный журнал рабочего времени |
При необходимости добавить новый отчет начинать надо именно с этой таблицы.
Верхняя часть окна приложения Отчеты имеет следующую структуру: В блоке 1 выводится список отчетов, взятый из таблицы Reports.
В блоке 2 выводится набор закладок, связанных с выбранным отчетом.
Набор входных данных (закладки Сотрудники, категории доступа, Результат и т.п.) для расчета по каждому фиксирован и изменен быть не может.
Каждый отчет реализован как процедура. Набор выходных данных определяется в самой процедуре и может быть изменен путем редактирования процедуры.
При редактировании процедуры в FireBird необходимо помнить, что выходные параметры и переменные должны быть заявлены заранее: необходимо сначала заявить переменную, а уже затем вставлять её в текст процедуры.
При получении результатов отчета приложение Report.exe строит таблицу, названия колонок которых берет из таблицы REPORTCELLS. Количество полей процедуры должно совпадать с количество столбцов в отчете.
Как видно, расчет выполнен, и содержит 8 колонок.
Необходимо добавить табельный номер.
В таблице 2 видим, что это отчет ID_REP=3.
В таблицу REPORTCELLS добавляет строку, где указываем:
ID_CELL – null (не менять. Номер подставится автоматически при вставке),
ID_REP 3 (т.к. отчет имеет номер 3),
FIELDNAMR – tabNum название поля, которое будет выводится в этой колонке,
FIELDCAPTION – «Табельный номер» – название колонки.
Должно быть так: После ввода данных не забудьте нажать красную галочку commit.
Можно воспользоваться SQL-запросом для вставки необходимой строки:
INSERT INTO REPORTCELLS (ID_CELL,ID_REP,FIELDNAME,FIELDCAPTION) VALUES (NULL,3,'tabNum','Табельный номер');
В набор выводимых данных добавляем TABNUM, тип VARCHAR 50.
Так же добавляем переменную :tabnum в набор выводимых данных:
После добавления данных процедуру необходимо скомпилировать, нажав на кнопку . Как видно, процедура Report_WorkTime_Order использует результат работы процедуры REPORT_WORKTIME. Открываем процедуру REPORT_WORKTIME.
Добавляем переменную tabnum и в переменные, и в текст процедуры.
После добавления данных процедуру необходимо скомпилировать, нажав на кнопку .
После запуска приложения в отчет появляется новое поле «Табельный номер».
Все указанные процедуры могут выполнить сотрудник ООО «Артсек» на платной или бесплатной основе (в зависимости от лицензии).
4 июня 2019 г.