Creatio development guide
PDF
Это документация Creatio версии 7.16.0. Мы рекомендуем использовать новую версию документации.

Настройка отчетов в Creatio

Glossary Item Box

Общие сведения

Возможность настраивать пользовательские отчеты доступна в Creatio версии 7.15.3 и выше.

Раздел [Настройка отчетов] позволяет пользователям создавать отчеты средствами Creatio и выполнять их настройку с помощью дизайнера отчетов FastReport. С обзором раздела и описанием интерфейса (рис. 1) можно ознакомиться в статье "Раздел "Настройка отчетов".

Рис. 1. — Страница настройки отчета

Управление доступом к разделу [Настройка отчетов]

По умолчанию доступ к основным системным операциям есть только у администраторов системы. Но его можно настроить для определенных пользователей или групп пользователей. Чтобы предоставить доступ к разделу [Настройка отчетов] ([Report setup]), выполните следующие действия:

  1. Перейдите в дизайнер системы по кнопке . В блоке [Пользователи и администрирование] ([Users and administration]) перейдите по ссылке [Права доступа на операции] ([Operation permissions]).
  2. Выберите системную операцию [Доступ к разделу "Настройка отчетов"] ([Access to "Report setup" section]) (код [CanManageReports]).
  3. На детали [Доступ к операции] ([Operation permission]) нажмите и укажите получателя прав (например, [Офис продаж] ([Sales Department]). Запись появится на детали со значением [Да] ([Yes]) в колонке [Уровень доступа] ([Access level]), а пользователи, входящие в роль [Офис продаж] ([Sales Department]), получат доступ к системной операции [Доступ к разделу "Настройка отчетов"] ([Access to "Report setup" section]) (рис. 2).

    Рис. 2. — Настройка доступа к системной операции [Доступ к разделу "Настройка отчетов"]

Подробно настройка системных операций описана в статье "Права доступа на системные операции".

Алгоритм создания отчета

Общий порядок действий при создании отчета:

  1. Установите дизайнер отчетов FastReport (выполняется единоразово).
  2. Создайте отчет в разделе [Настройка отчетов] ([Report setup]).
  3. Укажите источники данных для отчета.
  4. Создайте провайдер данных отчета, который будет реализовывать логику обработки данных.
  5. Скачайте файл с источниками данных и настройте его в дизайнере отчетов FastReport.
  6. Загрузите настроенный шаблон отчета в Creatio.

Установка дизайнера отчетов FastReport

Для работы дизайнера отчетов требуются следующие компоненты:

  1. Операционная система Windows.
  2. 64-разрядный Microsoft .Net Framework 4.7.2.

Для установки дизайнера отчетов FastReport необходимо скачать zip-архив с установочными файлами по ссылке.

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

Чтобы создать новый отчет, выполните следующие действия:

  1. Перейдите в дизайнер системы по кнопке . В блоке [Настройка системы] перейдите по ссылке [Настройка отчетов] ([Report setup]).
  2. Выполните действие [Добавить отчет] —>[FastReport] ([New report] —>[FastReport]).
  3. В области настройки параметров отображения (рис. 1, 2) для нового отчета задайте заголовок, раздел, к которому относится отчет, параметры отображения.

Указание источников данных для отчета

В блоке [Укажите источники данных для отчета] ([Specify data sources for the report]) рабочей области страницы (рис. 1, 4) укажите перечень объектов, их колонки и связи, которые будут использоваться для получения данных. При необходимости, укажите локализуемые строки. Для указания источников данных используйте формат json. Пример представления источника данных:

{
    // Название класса провайдера данных.
    "ProviderName": "YourProviderName",
    // Структура таблиц для шаблона отчета.
    "Schemas": {
        // Имя таблиц базы данных или виртуальных таблиц, колонки которых необходимо добавить в отчет.
        "TableName1": {
            // Имя колонки, которую необходимо добавить в отчет.
            "ColumnName1": {
                // Тип данных колонки.
                "DataValueType": DataValueType1
            },
            "ColumnName2": {
                "DataValueType": DataValueType2
            }
        },
        "TableName2": {
            "ColumnName1": {
                "DataValueType": DataValueType1
            },
            "ColumnName2": {
                "DataValueType": DataValueType2
            }
        },
        // Локализуемые строки отчета.
        "LocalizableStrings": {
            // Имя локализуемой строки отчета.
            "LocalizableString1": {
                // Тип данных локализуемой строки.
                "DataValueType": 1
            },
            "LocalizableString2": {
                "DataValueType": 1
            }
        }
    }
}

Параметр DataValueType содержит значение из перечисления Terrasoft.core.enums.DataValueType.

Чтобы сохранить данные, нажмите кнопку [Применить] ([Apply]) на панели инструментов (рис. 1, 1).

Создание провайдера данных отчета

Провайдер данных отчета — это пользовательский класс на языке C#. Чтобы его создать, выполните следующие действия:

  1. В пользовательском пакете разработки создайте схему типа [Исходный код] ([Source Code]).
  2. В исходном коде схемы создайте класс сервиса. Задействуйте пространство имен Terrasoft.Configuration или любое вложенное в него. Пометьте класс атрибутом [DefaultBinding] с необходимыми параметрами. Класс сервиса должен быть наследником Terrasoft.Configuration.Reporting.FastReport.IFastReportDataSourceDataProvider.
  3. Добавьте в класс реализацию метода GetLocalizableStrings(UserConnection). Метод реализовывает локализацию полей отчета.
  4. Добавьте в класс реализацию метода ExtractFilterFromParameters(UserConnection, Guid, IReadOnlyDictionary). Метод реализовывает добавление фильтров интерфейса.
  5. Добавьте в класс реализацию метода GetData(UserConnection, IReadOnlyDictionary), который должен возвращать значение типа Task<ReportDataDictionary>. В методе необходимо описать реализацию логики получения данных отчета.
  6. Опубликуйте схему исходного кода.

Пример реализации логики обработки данных отчета:

namespace Terrasoft.Configuration
{
    using System.Collections.Generic;
    using System.Threading.Tasks;
    using Terrasoft.Configuration.Reporting.FastReport;
    using Terrasoft.Core;
    using Terrasoft.Core.Factories;
    
    // Название класса провайдера данных для отчета, логику которого необходимо реализовать.
    [DefaultBinding(typeof(IFastReportDataSourceDataProvider), Name = "YourProviderName")]
    public class YourProviderName : IFastReportDataSourceDataProvider
    {
        // Код реализации логики получения данных для отчета.
        
        // Локализация полей отчета.
        private IEnumerable<IReadOnlyDictionary<string, object>> GetLocalizableStrings(UserConnection userConnection) {
            var localizableStrings = _localizableStringNames.ToDictionary(
                x => x,
                x => (object)(new LocalizableString(userConnection.ResourceStorage, _resourceManagerName, $"LocalizableStrings.{x}.Value")).Value);
            return new[] { localizableStrings };
        }
        
        // Добавление фильтров интерфейса.
        private IEntitySchemaQueryFilterItem ExtractFilterFromParameters(UserConnection userConnection, Guid entitySchemaUId,
                IReadOnlyDictionary<string, object> parameters) {
            var managerItem = userConnection.EntitySchemaManager.GetItemByUId(entitySchemaUId);
            return parameters.ExtractEsqFilterFromReportParameters(userConnection, managerItem.Name) ?? throw new Exception();
        }
        
        // Добавление данных в отчет.
        public Task<ReportDataDictionary> GetData(UserConnection userConnection, IReadOnlyDictionary<string, object> parameters) {            
            
        }
    }
}

Настройка шаблона в дизайнере отчетов FastReport

Скачайте файл с источниками данных. Для этого в блоке [Скачайте файл с источниками данных и сформируйте шаблон отчета] ([Download file with data sources to design a report in the FastReport Designer]) страницы (рис. 1, 4) нажмите кнопку [Скачать файл] ([Download file]). Файл будет иметь расширение *.frx.

Двойным кликом откройте скачанный файл в дизайнере отчетов FastReport и настройте внешний вид шаблона. Выполнение настройки описано в документации FastReport.

В файле сохраняется структура источников данных, которая была реализована в разделе настройки отчетов.

Дизайнер отчетов FastReport является сторонним приложением, и функция предпросмотра настроенного отчета недоступна.

Загрузка настроенного шаблона в Creatio

Загрузка подготовленного шаблона отчета в Creatio выполняется нажатием кнопки [Загрузить шаблон] ([Upload template]) в блоке [Загрузите настроенный шаблон отчета в Creatio] ([Import a file with the report template]) (рис. 1, 4). После загрузки шаблона отчет можно сформировать в реестре, на странице записи или в аналитике раздела. Это определяется настройками в области параметров отображения (рис. 1, 2). Готовый отчет будет сохраняться в формате pdf.

Кнопки [Печать] ([Print]) и [Отчеты] ([Reports]) в разделе системы и на страницах записи отображаются при наличии хотя бы одного отчета, настроенного и опубликованного для данного раздела.

Мультиязычные элементы интерфейса в отчетах

Раздел [Переводы] ([Translations]) дизайнера системы позволяет установить значение элементов интерфейса для отчета на разных языках. Выполнить поиск локализуемых ранее строк отчета можно по ключу Configuration:НазваниеCхемы (например, Configuration:UsrContactDataSourceCode). Поиск поля отчета можно выполнить по ключу Configuration:НазваниеСхемы:НазваниеПоля.Value (например, Configuration:UsrContactDataSourceCode:LocalizableStrings.ReportTitle.Value).

При установленных признаках [Отображать в разделе] ([Show on the section list review]) и [Отображать на странице записи] ([Show on the section record page]) необходимо выполнить перевод отображаемого названия отчета. Его поиск можно выполнить по ключу Configuration:НазваниеСхемы:Caption (например, Configuration:UsrContactDataSourceCode:Caption). При установленном признаке [Отображать в аналитике раздела] ([Show in the section analytics view]) (рис. 1, 2) необходимо выполнить перевод отображаемого названия отчета. Его поиск можно выполнить по ключу Data:SysModuleAnalyticsReport.Caption:ИдентификаторПоля (например, Data:SysModuleAnalyticsReport.Caption:d52e8b78-772b-77ee-3394-bdb3616d859a).

Работа с разделом [Переводы] ([Translations]) описана в статье "Как выполняется перевод интерфейса и элементов системы".

Перенос пакета с отчетом на другую среду разработки

Чтобы перенести пакет с отчетом на другую среду, в разделе [Конфигурация] ([Configuration]) перейдите на вкладку [Данные] ([Data]) и выполните привязку данных следующих элементов:

  • FastReportTemplate_ReportName — шаблон отчета. Подключается по Id шаблона из таблицы [dbo.FastReportTemplate] базы данных.
  • FastReportDataSource_ReportName — источник данных отчета. Подключается по Id источника из таблицы [dbo.FastReportDataSource] базы данных.
  • SysModuleReport_ReportName — отчет. Подключается по Id отчета из таблицы [dbo.SysModuleReport] базы данных.

Посмотреть Id записи в таблице базы данных без доступа к ней можно, отобразив системную колонку Id в окне привязки данных к пакету.

Смотрите также:

© Terrasoft 2002-2020.

Был ли данный материал полезен?

Как можно улучшить эту статью?