Установка необходимого ПО

Для создания отчетов используется Telerik Report Designer (ссылка на скачивание).
Для подключения Telerik Report Designer к базе данных PostgreSQL необходим драйвер Npgsql версии 3.2.7 (ссылка на скачивание).

Npgsql 3.2.7

  1. Запустить установку из скачанного MSI
  2. На этапе выбора компонентов изменить параметр Npgsql GAC Installation на Will be installed on local hard drive
  3. Завершить установку

Telerik Report Designer

  1. Распаковать содержимое архива в удобное месторасположение
  2. Для запуска выполнить Telerik.ReportDesigner.exe

Разработка шаблона отчета об аудите действий пользователя

Пример создания простого шаблона отчета

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

Укрупненный план действий при создании шаблона отчета:

  • Настройка подключения к БД
  • Подготовка данных из таблицы БД (составление простого запроса к двум соединенным таблицам из базы данных)
  • Построение простого визуального отчета в виде таблицы
  • Настройка фильтрации (на сегодняшнюю дату и на период)

 Наименование отчета: Аудит действий пользователя
 Фильтры данных: Пользователь, Период (дата начала периода, дата окончания периода)
 Сортировка данных в таблице: по полю Дата, от нового к старому
 Столбцы табличной части: Дата, Пользователь, Тип события, Событие, Объект (Путь до объекта)

  1. Запустить Telerik Report Designer и выбрать в боковом меню «New». В отобразившемся списке выбрать «Blank Report» и нажав «Browse» задать путь сохранения и имя файла отчета.



    I. Настройка источников и наборов данных

  2. В загрузившемся интерфейсе дизайнера перейти на вкладку «Data» в ленточном меню и выбрать в качестве добавляемого в отчет источника данных - «SQL Data Source»
  3. В окне мастера настройки источника данных выбрать вариант создания нового подключения к источнику - «Buiild new data connection», и установить в выпадающем списке в качестве желаемого провайдера данных «Npgsql Data Provider»
  4. В поле «Connection string» прописать строку соединения с базой данных  в формате: Host=vitrodbhost;Database=vitrodb;Username=vitroadm;Password=vitroadm 

    параметры строки соединения

    • Host – имя или IP адрес сервера БД
    • Database – имя база данных
    • Username – имя пользователя для подключения к БД
    • Password – пароль пользователя для подключения к БД



  5. На следующем шаге выбрать  что настройки соединения необходимо включить в файл отчета - «Embedded in the report definition»




  6. На шаге настройки команд источника данных можно вставить предварительно подготовленный SQL запрос в поле «Select statement»  или воспользоваться построителем запросов (рассмотрим именно этот вариант)



  7. Для вызова построителя запросов нажмем кнопку «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» )



  8. В секции «Relationships» настраиваем соединение  таблиц. В параметр «Left Table» подставляем таблицу "public"."audit" . В качестве типа соединения («Join Type») указываем Inner, а в качестве правой таблицы соединения -  "public"."audit_event_type" . Связь таблиц будет осуществляться по сопаставлению значений в столбцах  "public"."audit"."event_type_id" и  "public"."audit_event_type"."id"





  9. В секции 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).
  10. После завершения настройки нажимаем «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

  11. Для сохранения результатов настройки источника данных нажимаем кнопку «Finish» в окне настройки команд источника.
  12. После возвращения в основной интерфейс документа в дизайнере отчетов выбираем вновь созданный источник «sqlDataSource1» и в секции «Properties» в правой части окна разворачиваем раздел «Parameters» настраиваем типы данных параметров запроса:

    @audit_ins_user_name – String

    @start_date - DateTime2

     @end_date - DateTime2



    II. Настройка входных параметров отчета

  13. Переходим к настройке входных параметров отчета. В секции Report Explore (вкладка Report Explore в правой верхней части окна) в дереве объектов отчета выбираем самый верхний уровень (сам отчет «SimpleAuditReport»), и в секции «Properties» , в разделе «Data» находим свойство «RepertParameters» нажимаем на «многоточие» с правой стороны соответствующей строки.



  14. В открывшемся модальном окне нажать «Добавить», изменить значение свойства «Name» (имя параметра) на user_name . В качестве значения  свойства «Text» (отображаемое имя параметра) задать Пользователь. Значение для свойства «Visible» установить в True



  15. Добавить еще один параметр отчета. Изменить значение свойства «Name»  на start_date . В качестве значения  свойства «Text» задать Начала периода. Свойство «Type» (тип данных) установить в «DateTime». Значение для свойства «Visible» установить в True



  16. Добавить еще один параметр отчета. Изменить значение свойства «Name»  на end_date . В качестве значения  свойства «Text» задать окончание периода. Свойство «Type»  установить в «DateTime». Значение для свойства «Visible» установить в True



  17. Закрыть окно настройки параметров отчета, нажав «ОК».
  18. Выбрать источник данных «sqlDataSource1» и в секции «Properties» в правой части окна разворачиваем раздел «Parameters» и настраиваем сопоставление значений параметров запроса в свойстве «Value» соответствущим входным параметрам отчета (как на следующем скриншоте)




    III. Настройка визуальной формы отчета.

  19. В секции Report Explore (вкладка Report Explore в правой верхней части окна), в дереве объектов отчета выбираем раздел заголовка отчета В секции Report Explore (вкладка Report Explore в правой верхней части окна) в дереве объектов отчета выбираем. В ленточном меню дизайнера отчета вызываем вкладку «Insert» и выбираем элемент «Text Box». В верхнем колонтитуле отчета появится новое поле, которое заполним названием отчета



  20. В секции Report Explore (вкладка Report Explore в правой верхней части окна) в дереве объектов отчета выбираем «detailSection1» . В ленточном меню дизайнера отчета вызываем вкладку «Insert» и выбираем в выпадающем меню «Table» пункт «Table Wizard»



  21. В открывшемся окне мастера выбираем существующий источник данных «sqlDataSource1». Переходим к следующему шагу, нажав кнопку «Next»



  22. Выбираем необходимые для конечной таблицы отчета поля из набора источника.



  23. На следующем шаге можем выбрать тему оформления таблицы.



    Сверив настройки, закрываем окно мастера нажатием «Finish»


  24. Форматируем добавленную таблицу, и редактируем названия колонок, в шапке.





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




    Публикация отчета в системе

  26. Сохраненный файл шаблона отчета  SimpleAuditReport.trdp следует разместить на портале системы в списке «Отчеты». Сгенерировать опубликованный отчет можно вызвав его из списка  «Отчеты» двойным кликом по названию. В открывшемся окне Веб-вьюера  отчетов, на правой панели параметров заполнить соответствующие значения и нажать «Просмотр»






  • No labels