Установка необходимого ПО
Для создания отчетов используется Telerik Report Designer (ссылка на скачивание).
Для подключения Telerik Report Designer к базе данных PostgreSQL необходим драйвер Npgsql версии 3.2.7 (ссылка на скачивание).
Npgsql 3.2.7
- Запустить установку из скачанного MSI
- На этапе выбора компонентов изменить параметр Npgsql GAC Installation на Will be installed on local hard drive
- Завершить установку
Telerik Report Designer
- Распаковать содержимое архива в удобное месторасположение
- Для запуска выполнить Telerik.ReportDesigner.exe
Разработка шаблона отчета об аудите действий пользователя
Пример создания простого шаблона отчета
Отчет должен представлять собой таблицу со списком действий определенного пользователя над объектами системы.
Укрупненный план действий при создании шаблона отчета:
- Настройка подключения к БД
- Подготовка данных из таблицы БД (составление простого запроса к двум соединенным таблицам из базы данных)
- Построение простого визуального отчета в виде таблицы
- Настройка фильтрации (на сегодняшнюю дату и на период)
Наименование отчета: Аудит действий пользователя
Фильтры данных: Пользователь, Период (дата начала периода, дата окончания периода)
Сортировка данных в таблице: по полю Дата, от нового к старому
Столбцы табличной части: Дата, Пользователь, Тип события, Событие, Объект (Путь до объекта)
- Запустить Telerik Report Designer и выбрать в боковом меню «New». В отобразившемся списке выбрать «Blank Report» и нажав «Browse» задать путь сохранения и имя файла отчета.
I. Настройка источников и наборов данных - В загрузившемся интерфейсе дизайнера перейти на вкладку «Data» в ленточном меню и выбрать в качестве добавляемого в отчет источника данных - «SQL Data Source»
- В окне мастера настройки источника данных выбрать вариант создания нового подключения к источнику - «Buiild new data connection», и установить в выпадающем списке в качестве желаемого провайдера данных «Npgsql Data Provider»
- В поле «Connection string» прописать строку соединения с базой данных в формате: Host=vitrodbhost;Database=vitrodb;Username=vitroadm;Password=vitroadm
параметры строки соединения
- Host – имя или IP адрес сервера БД
- Database – имя база данных
- Username – имя пользователя для подключения к БД
- Password – пароль пользователя для подключения к БД
- На следующем шаге выбрать что настройки соединения необходимо включить в файл отчета - «Embedded in the report definition»
- На шаге настройки команд источника данных можно вставить предварительно подготовленный SQL запрос в поле «Select statement» или воспользоваться построителем запросов (рассмотрим именно этот вариант)
- Для вызова построителя запросов нажмем кнопку «Query Builder». В открывшемся окне дизайнера запросов, в левой части, в дереве объектов БД выбираем интересующие нас таблицы (в нашем примере это "public"."audit" и "public"."audit_event_type"), развернув узлы таблиц отмечаем необходимые столбцы ( "public"."audit_event_type"."name", "public"."audit_event_type"."id", "public"."audit"."name", "public"."audit"."audit_source_item_link", "public"."audit"."ins_user_name", "public"."audit"."data", "public"."audit"."event_type_id", "public"."audit"."ins_date")
Выбранные столбцы отобразятся в соответствующей секции окна дизайнера ( «Selected fields» ) - В секции «Relationships» настраиваем соединение таблиц. В параметр «Left Table» подставляем таблицу "public"."audit" . В качестве типа соединения («Join Type») указываем Inner, а в качестве правой таблицы соединения - "public"."audit_event_type" . Связь таблиц будет осуществляться по сопаставлению значений в столбцах "public"."audit"."event_type_id" и "public"."audit_event_type"."id"
- В секции Filters добавляем условия отбора записей из связанных таблиц: ( "public"."audit"."event_type_id" IsNotNull , "public"."audit"."ins_user_name" equal @audit_ins_user_name , "public"."audit"."ins_date" GreaterThen @start_date , "public"."audit"."ins_date" LessThen @end_date).
- После завершения настройки нажимаем «OK»
После закрытия окна дизайнера запросов, поле «Select statement» будет заполнено кодом SQL запроса.Код SQL запроса
SELECT "public"."audit_event_type"."name",
"public"."audit_event_type"."id",
"public"."audit"."name" AS "auditname",
"public"."audit"."audit_source_item_link",
"public"."audit"."ins_user_name" AS "auditins_user_name",
"public"."audit"."data",
"public"."audit"."event_type_id",
"public"."audit"."ins_date"
FROM ("public"."audit"
INNER JOIN "public"."audit_event_type"
ON "public"."audit"."event_type_id" = "public"."audit_event_type"."id")
WHERE "public"."audit"."event_type_id" IS NOT NULL
AND "public"."audit"."ins_user_name" = @audit_ins_user_name
AND "public"."audit"."ins_date" > @start_date
AND "public"."audit"."ins_date" < @end_date
- Для сохранения результатов настройки источника данных нажимаем кнопку «Finish» в окне настройки команд источника.
- После возвращения в основной интерфейс документа в дизайнере отчетов выбираем вновь созданный источник «sqlDataSource1» и в секции «Properties» в правой части окна разворачиваем раздел «Parameters» настраиваем типы данных параметров запроса:
@audit_ins_user_name – String
@start_date - DateTime2
@end_date - DateTime2
II. Настройка входных параметров отчета
- Переходим к настройке входных параметров отчета. В секции Report Explore (вкладка Report Explore в правой верхней части окна) в дереве объектов отчета выбираем самый верхний уровень (сам отчет «SimpleAuditReport»), и в секции «Properties» , в разделе «Data» находим свойство «RepertParameters» нажимаем на «многоточие» с правой стороны соответствующей строки.
- В открывшемся модальном окне нажать «Добавить», изменить значение свойства «Name» (имя параметра) на user_name . В качестве значения свойства «Text» (отображаемое имя параметра) задать Пользователь. Значение для свойства «Visible» установить в True
- Добавить еще один параметр отчета. Изменить значение свойства «Name» на start_date . В качестве значения свойства «Text» задать Начала периода. Свойство «Type» (тип данных) установить в «DateTime». Значение для свойства «Visible» установить в True
- Добавить еще один параметр отчета. Изменить значение свойства «Name» на end_date . В качестве значения свойства «Text» задать окончание периода. Свойство «Type» установить в «DateTime». Значение для свойства «Visible» установить в True
- Закрыть окно настройки параметров отчета, нажав «ОК».
- Выбрать источник данных «sqlDataSource1» и в секции «Properties» в правой части окна разворачиваем раздел «Parameters» и настраиваем сопоставление значений параметров запроса в свойстве «Value» соответствущим входным параметрам отчета (как на следующем скриншоте)
III. Настройка визуальной формы отчета.
- В секции Report Explore (вкладка Report Explore в правой верхней части окна), в дереве объектов отчета выбираем раздел заголовка отчета В секции Report Explore (вкладка Report Explore в правой верхней части окна) в дереве объектов отчета выбираем. В ленточном меню дизайнера отчета вызываем вкладку «Insert» и выбираем элемент «Text Box». В верхнем колонтитуле отчета появится новое поле, которое заполним названием отчета
- В секции Report Explore (вкладка Report Explore в правой верхней части окна) в дереве объектов отчета выбираем «detailSection1» . В ленточном меню дизайнера отчета вызываем вкладку «Insert» и выбираем в выпадающем меню «Table» пункт «Table Wizard»
- В открывшемся окне мастера выбираем существующий источник данных «sqlDataSource1». Переходим к следующему шагу, нажав кнопку «Next»
- Выбираем необходимые для конечной таблицы отчета поля из набора источника.
- На следующем шаге можем выбрать тему оформления таблицы.
Сверив настройки, закрываем окно мастера нажатием «Finish»
- Форматируем добавленную таблицу, и редактируем названия колонок, в шапке.
- Для проверки работоспособности отчета до его публикации в системе можем воспользоваться функцией предпросмотра. В ленточном меню дизайнера отчета вызываем вкладку «Home» и вызываем «Preview». Заполняем входные параметры, и нажимаем кнопку «Preview». Если все было сделано правильно должен быть сгенерирован отчет и отображен в зоне документа.
Публикация отчета в системе
- Сохраненный файл шаблона отчета SimpleAuditReport.trdp следует разместить на портале системы в списке «Отчеты». Сгенерировать опубликованный отчет можно вызвав его из списка «Отчеты» двойным кликом по названию. В открывшемся окне Веб-вьюера отчетов, на правой панели параметров заполнить соответствующие значения и нажать «Просмотр»
































