Отчеты MS Word

Легкий

Отчет MS Word (печатная форма) — документ, который сгенерирован на основе записей разделов Creatio в формате *.docx. Например, отчеты раздела [ Договоры ] ([ Contracts ]) позволяют распечатать формуляры договоров, а отчеты раздела [ Активности ] ([ Activities ]) можно использовать для распечатки электронных писем, формирования протоколов встреч и т. д. Отчеты MS Word описаны в блоке статей Отчеты и печатные формы.

В зависимости от использования макросов, Creatio позволяет создать различные виды отчетов MS Word.

Виды отчетов MS Word, которые позволяет создать Creatio:

  • Простой отчет.
  • Отчет с использованием базовых макросов.
  • Отчет с использованием пользовательских макросов.

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

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

Чтобы настроить доступ к разделу [ Настройка отчетов ] ([ Report setup ]):

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

В результате запись отобразится на детали [ Доступ к операции ] ([ Operation permission ]) в колонке [ Уровень доступа ] ([ Access level ]) со значением [ Да ] ([ Yes ]). Пользователи, которые входят в указанную роль, получат доступ к системной операции [ Доступ к разделу "Настройка отчетов" ] ([ Access to "Report setup" section ], код CanManageReports).

Создать простой отчет MS Word 

  1. Установите Creatio MS Word Report Designer (выполняется однократно). Для этого воспользуйтесь инструкцией, которая приведена в статье Установить плагин Creatio для Word.

    Плагин MS Word (Creatio MS Word Report Designer) — программный модуль, который динамически подключается к Creatio. Назначение плагина MS Word — формирование шаблона отчета MS Word на основе данных Creatio в формате *.docx.

  2. Создайте отчет MS Word.

    1. Перейдите в дизайнер системы по кнопке . В блоке [ Настройка системы ] ([ System setup ]) перейдите по ссылке [ Настройка отчетов ] ([ Report setup ]).
    2. Выполните действие [ Добавить отчет ] —>[ MS Word ] ([ New report ] —>[ MS Word ]).

    3. На панели свойств заполните свойства отчета:

      • [ Название отчета ] ([ Report name ]) — пользовательское название отчета (обязательное свойство). Отображается на соответствующей панели инструментов, которая зависит от установленных признаков [ Отображать в разделе ] ([ Show in the section list view ]) и [ Отображать на странице записи ] ([ Show in the section record page ]).
      • [ Раздел ] ([ Section ]) — выберите раздел, из которого планируется генерировать отчет (обязательное свойство). Например, чтобы отобразить отчет в разделе [ Контрагенты ] ([ Accounts ]), в выпадающем списке выберите соответствующий раздел.
      • [ Тип ] ([ Type ]) — тип отчета (обязательное свойство). Заполняется автоматически и недоступно для редактирования.
      • Признак [ Отображать в разделе ] ([ Show in the section list view ]) — указывает необходимость отображения отчета в выпадающем меню кнопки [ Печать ] ([ Print ]) панели инструментов раздела.
      • Признак [ Отображать на странице записи ] ([ Show in the section record page ]) — указывает необходимость отображения отчета в выпадающем меню кнопки [ Печать ] ([ Print ]) панели инструментов страницы записи.
  3. Настройте поля отчета.

    1. В блоке [ Настройте поля отчета ] ([ Set up report data ]) рабочей области страницы настройки отчета нажмите .
    2. В выпадающем списке [ Колонка ] ([ Column ]) выберите колонку, которую планируется добавить в отчет. Например, чтобы в отчет добавить колонку [ Название ] ([ Name ]), в выпадающем списке выберите соответствующую колонку.

    3. Нажмите [ Выбрать ] ([ Select ]).
    4. На панели инструментов страницы настройки отчета нажмите [ Применить ] ([ Apply ]).
  4. Настройте шаблон отчета.

    1. Запустите приложение MS Word.
    2. На вкладке плагина Creatio панели инструментов нажмите кнопку [ Connect ].

    3. Введите логин и пароль пользователя в Creatio.

    4. Подключите сервер приложения Creatio.

      1. Возле поля [ Server ] нажмите .
      2. В окне [ Available Servers ] нажмите [ New ].

      3. Заполните свойства сервера:

        • [ Name ] — пользовательское имя сервера.
        • [ Link ] — адрес сервера приложения Creatio, в котором выполнялась настройка отчета.
      4. В окне [ Server Connection Setup ] нажмите [ OK ] для сохранения параметров подключения сервера Creatio.
      5. В окне [ Available Servers ] выберите сервер приложения Creatio, в котором выполнялась настройка отчета (опционально), и нажмите [ OK ].
    5. В окне [ Login ] нажмите [ OK ] для подключения к выбранному серверу Creatio.
    6. Выберите отчет MS Word, который планируется настроить.

      1. На вкладке плагина Creatio панели инструментов нажмите кнопку [ Select report ].

      2. В окне [ Creatio Word reports ] выберите отчет, шаблон которого планируется настроить.
      3. В окне [ Creatio Word reports ] нажмите [ OK ] для выбора отчета.

      В результате открывается панель [ Word report data ] выбранного отчета.

    7. Настройте шаблон отчета. Для этого воспользуйтесь инструкцией, которая приведена в статье Настроить отчет в плагине Word и загрузить в Creatio.
    8. Загрузите настроенный шаблон отчета в Creatio. Для этого на вкладке плагина Creatio панели инструментов нажмите кнопку [ Save to Creatio ].

    В результате настроенный шаблон отчета загружен в Creatio и отображается на панели свойств.

Создать отчет MS Word с использованием базовых макросов 

  1. Выполните шаги 1-3 алгоритма создания простого отчета MS Word.
  2. К колонке отчета добавьте тег макроса.

    1. Откройте страницу настройки колонки, к которой планируется добавить тег макроса.

      Способы открытия страницы настройки колонки:

      • В блоке [ Настройте поля отчета ] ([ Set up report data ]) рабочей области страницы настройки отчета дважды кликните по колонке, к которой необходимо добавить тег макроса.
      • В блоке [ Настройте поля отчета ] ([ Set up report data ]) рабочей области страницы настройки отчета в строке колонки, к которой необходимо добавить тег макроса, нажмите .
    2. Измените значение поля [ Заголовок ] ([ Title ]) на "НазваниеКолонки[#ИмяМакроса#]". [#ИмяМакроса#] — тег макроса, который выполняет необходимое действие. Для корректной работы макроса название колонки объекта (поле [ Колонка ] ([ Column ])) должно совпадать с названием колонки с макросом (поле [ Заголовок ] ([ Title ])). Например, для колонки [ Name ] поле [ Заголовок ] ([ Title ]) должно содержать значение Name[#ИмяМакроса#] (например, Name[#Upper#], где [#Upper#] — тег макроса, который конвертирует значение строки в верхний регистр).

    3. На панели инструментов страницы настройки колонки нажмите [ Сохранить ] ([ Save ]).
  3. Выполните шаг 4 алгоритма создания простого отчета MS Word.

Создать отчет MS Word с использованием пользовательских макросов 

  1. Выполните шаг 1 алгоритма создания простого отчета MS Word.
  2. Реализуйте пользовательские макросы.

    1. Создайте схему типа [ Исходный код ] ([ Source code ]). Для этого воспользуйтесь инструкцией, которая приведена в статье Исходный код.
    2. В дизайнере исходного кода реализуйте класс макроса.

      • В классе макроса реализуйте интерфейс IExpressionConverter. Базовый интерфейс IExpressionConverter реализован в схеме ExpressionConverterHelper пакета NUI.
      • Для макроса добавьте атрибут ExpressionConverterAttribute с указанием имени макроса. Этот атрибут позволяет вызвать пользовательский макрос из шаблона отчета.

        Пример атрибута приведен ниже.

        Пример атрибута CurrentUser
        Код скопирован
        [ExpressionConverterAttribute("CurrentUser")]
                                
      • Реализуйте метод интерфейса Evaluate(object value, string arguments = ""). В качестве параметра принимает значение поля из шаблона отчета MS Word. Возвращает значение типа string, которое подставляется на место этого поля в сформированном отчете.
  3. Выполните шаги 2-4 алгоритма создания простого отчета MS Word. На шаге 2 в список полей отчета добавьте колонку [ Id ], которая является входящим параметром для пользовательского макроса.

Привязать отчет MS Word к пакету 

  1. Перейдите в раздел [ Конфигурация ] ([ Configuration ]) и выберите пользовательский пакет, в который будет добавлена схема.
  2. На панели инструментов реестра раздела нажмите [ Добавить ] —> [ Данные ] ([ Add ] —> [ Data ]).

  3. Выполните привязку данных. Для этого воспользуйтесь инструкцией, которая приведена в статье Привязать данные к пакету.

    Элементы, привязку которых необходимо выполнить:

    • SysModuleReport_ReportName — отчет. Подключается по идентификатору отчета (колонка [Id] таблицы [SysModuleReport] базы данных).
    • SysModuleReportTable_ReportName — табличная часть отчета. Подключается по идентификатору отчета (колонка [Id] таблицы [SysModuleReportTable] базы данных).
Создать отчет MS Word (базовые макросы)
Легкий

Пример. На страницу раздела [ Контрагенты ] ([ Accounts ]) и страницу контрагента добавить отчет [ Информация контрагента ] ([ Account Info ]).

Поля, которые содержит отчет [ Информация контрагента ] ([ Account Info ]):

  • [ Название ] ([ Name ]) — название контрагента.
  • [ Тип ] ([ Type ]) — тип контрагента.
  • [ Основной контакт ] ([ Primary contact ]) — основной контакт контрагента.

1. Создать отчет 

  1. Перейдите в дизайнер системы по кнопке . В блоке [ Настройка системы ] ([ System setup ]) перейдите по ссылке [ Настройка отчетов ] ([ Report setup ]).
  2. Выполните действие [ Добавить отчет ] —>[ MS Word ] ([ New report ] —>[ MS Word ]).

  3. На панели свойств заполните свойства отчета:

    • [ Название отчета ] ([ Report name ]) — "Информация контрагента" ("Account Info").
    • [ Раздел ] ([ Section ]) — выберите "Контрагенты" ("Accounts").
    • Установите признак [ Отображать в разделе ] ([ Show in the section list view ]).
    • Установите признак [ Отображать на странице записи ] ([ Show in the section record page ]).

2. Настроить поля отчета 

  1. В блоке [ Настройте поля отчета ] ([ Set up report data ]) рабочей области страницы настройки отчета нажмите .
  2. В выпадающем списке [ Колонка ] ([ Column ]) выберите колонку [ Название ] ([ Name ]).

  3. Нажмите [ Выбрать ] ([ Select ]). Далее к этой колонке необходимо добавить тег базового макроса.
  4. Аналогично добавьте колонки [ Тип ] ([ Type ]) и [ Основной контакт ] ([ Primary contact ]).

    В результате в отчет добавлены поля, которые представлены на рисунке ниже.

  5. К колонке [ Название ] ([ Name ]) добавьте тег макроса.

    1. Откройте страницу настройки колонки [ Название ] ([ Name ]).

      Способы открытия страницы настройки колонки:

      • В блоке [ Настройте поля отчета ] ([ Set up report data ]) рабочей области страницы настройки отчета дважды кликните по колонке, к которой необходимо добавить тег макроса.
      • В блоке [ Настройте поля отчета ] ([ Set up report data ]) рабочей области страницы настройки отчета в строке колонки, к которой необходимо добавить тег макроса, нажмите .
    2. Измените значение поля [ Заголовок ] ([ Title ]) на "Название[#Upper#]" ("Name[#Upper#]"). [#Upper#] — тег макроса, который конвертирует значение строки в верхний регистр.

    3. На панели инструментов страницы настройки колонки нажмите [ Сохранить ] ([ Save ]).

    В результате в отчет добавлены поля, которые представлены на рисунке ниже.

  6. На панели инструментов страницы настройки отчета нажмите [ Применить ] ([ Apply ]).

3. Настроить шаблон отчета 

  1. Запустите приложение MS Word.
  2. На вкладке плагина Creatio панели инструментов нажмите кнопку [ Connect ].

  3. Введите логин и пароль пользователя в Creatio.

  4. Подключите сервер приложения Creatio.

    1. Возле поля [ Server ] нажмите .
    2. В окне [ Available Servers ] нажмите [ New ].

    3. Заполните свойства сервера:

      • [ Name ] — пользовательское имя сервера.
      • [ Link ] — адрес сервера приложения Creatio, в котором выполнялась настройка отчета.
    4. В окне [ Server Connection Setup ] нажмите [ OK ] для сохранения параметров подключения сервера Creatio.
    5. В окне [ Available Servers ] выберите сервер приложения Creatio, в котором выполнялась настройка отчета (опционально), и нажмите [ OK ].
  5. В окне [ Login ] нажмите [ OK ] для подключения к выбранному серверу Creatio.
  6. Выберите отчет MS Word, который планируется настроить.

    1. На вкладке плагина Creatio панели инструментов нажмите кнопку [ Select report ].

    2. В окне [ Creatio Word reports ] выберите отчет [ Информация контрагента ] ([ Account Info ]).

    3. В окне [ Creatio Word reports ] нажмите [ OK ] для выбора отчета.

    В результате открыта панель [ Word report data ] отчета [ Информация контрагента ] ([ Account Info ]), который представлен на рисунке ниже.

  7. Настройте шаблон отчета. Для этого воспользуйтесь инструкцией, которая приведена в статье Настроить отчет в плагине Word и загрузить в Creatio.

    Настроенный шаблон отчета [ Информация контрагента ] ([ Account Info ]) приведен на рисунке ниже.

  8. Загрузите настроенный шаблон отчета [ Информация контрагента ] ([ Account Info ]) в Creatio. Для этого на вкладке плагина Creatio панели инструментов нажмите кнопку [ Save to Creatio ].

В результате настроенный шаблон отчета [ Информация контрагента ] ([ Account Info ]) загружен в Creatio и отображается на панели свойств.

Результат выполнения примера 

Чтобы посмотреть результат выполнения примера, обновите страницу раздела [ Контрагенты ] ([ Accounts ]).

В результате выполнения примера на страницу раздела [ Контрагенты ] ([ Accounts ]) добавлен отчет [ Информация контрагента ] ([ Account Info ]). Отчет доступен в выпадающем меню кнопки [ Печать ] ([ Print ]) панели инструментов раздела.

Отчет [ Информация контрагента ] ([ Account Info ]) имеет вид, который представлен на рисунке ниже.

В результате применения макроса название компании в колонке [ Название ] ([ Name ]) отображено в верхнем регистре.

Если в реестре раздела [ Контрагенты ] ([ Accounts ]) не выбрана запись, то отчет [ Информация контрагента ] ([ Account Info ]) не активен в выпадающем меню кнопки [ Печать ] ([ Print ]) панели инструментов.

В результате выполнения примера на страницу контрагента также добавлен отчет [ Информация контрагента ] ([ Account Info ]). Отчет доступен в выпадающем меню кнопки [ Печать ] ([ Print ]) панели инструментов страницы контрагента.

Создать отчет MS Word (пользовательские макросы)
Сложный

Пример. На страницу контрагента добавить отчет [ Информация контрагента ] ([ Account Summary ]).

Поля, которые содержит отчет [ Информация контрагента ] ([ Account Info ]):

  • [ Название ] ([ Name ]) — название контрагента.
  • [ Тип ] ([ Type ]) — тип контрагента.
  • [ Основной контакт ] ([ Primary contact ]) — основной контакт контрагента.
  • [ Дополнительная информация ] ([ Additional info ]) — дополнительная информация о контрагенте. Для контрагента типа [ Клиент ] ([ Customer ]) отображается годовой оборот, для контрагента типа [ Партнер ] ([ Partner ]) — количество сотрудников.
  • Дата формирования отчета.
  • Имя сотрудника, который сформировал отчет.

1. Создать отчет 

  1. Перейдите в дизайнер системы по кнопке . В блоке [ Настройка системы ] ([ System setup ]) перейдите по ссылке [ Настройка отчетов ] ([ Report setup ]).
  2. Выполните действие [ Добавить отчет ] —>[ MS Word ] ([ New report ] —>[ MS Word ]).

  3. На панели свойств заполните свойства отчета:

    • [ Название отчета ] ([ Report name ]) — "Информация контрагента" ("Account Summary").
    • [ Раздел ] ([ Section ]) — выберите "Контрагенты" ("Accounts").
    • Установите признак [ Отображать на странице записи ] ([ Show in the section record page ]).

    Для применения изменений свойств нажмите [ Применить ] ([ Apply ]).

2. Реализовать пользовательские макросы 

Макросы, которые необходимо реализовать:

  • Макрос для получения дополнительной информации контрагента, которая зависит от его типа.
  • Макрос для получения даты формирования отчета.
  • Макрос для получения имени сотрудника, который сформировал отчет.

1. Реализовать макрос (дополнительная информация контрагента) 

  1. Перейдите в раздел [ Конфигурация ] ([ Configuration ]) и выберите пользовательский пакет, в который будет добавлена схема.
  2. На панели инструментов реестра раздела нажмите [ Добавить ] —> [ Исходный код ] ([ Add ] —> [ Source code ]).

  3. В дизайнере исходного кода заполните свойства схемы:

    • [ Код ] ([ Code ]) — "UsrAccountInfoByTypeConverter".
    • [ Заголовок ] ([ Title ]) — "AccountInfoByTypeConverter".

    Для применения изменений свойств нажмите [ Применить ] ([ Apply ]).

  4. Добавьте локализуемую строку, которая содержит тип [ Клиент ] ([ Customer ]) контрагента.

    1. В контекстном меню узла [ Локализуемые строки ] ([ Localizable strings ]) нажмите кнопку .
    2. Заполните свойства локализуемой строки:

      • [ Код ] ([ Code ]) — "CustomerAdditional".
      • [ Значение ] ([ Value ]) — "Годовой оборот {0}" ("Annual turnover {0}").
    3. Для добавления локализуемой строки нажмите [ Добавить ] ([ Add ]).
  5. Добавьте локализуемую строку, которая содержит тип [ Партнер ] ([ Partnet ]) контрагента.

    1. В контекстном меню узла [ Локализуемые строки ] ([ Localizable strings ]) нажмите кнопку .
    2. Заполните свойства локализуемой строки:

      • [ Код ] ([ Code ]) — "PartnerAdditional".
      • [ Значение ] ([ Value ]) — "Количество сотрудников {0} чел." ("Number of employees {0} persons").
    3. Для добавления локализуемой строки нажмите [ Добавить ] ([ Add ]).
  6. В дизайнере исходного кода реализуйте класс макроса для получения дополнительной информации контрагента, которая зависит от его типа.

    Исходный код схемы типа [ Исходный код ] ([ Source code ]) представлен ниже.

    UsrAccountInfoByTypeConverter
    Код скопирован
    namespace Terrasoft.Configuration
    {
        using System;
        using System.CodeDom.Compiler;
        using System.Collections.Generic;
        using System.Data;
        using System.Linq;
        using System.Runtime.Serialization;
        using System.ServiceModel;
        using System.ServiceModel.Web;
        using System.ServiceModel.Activation;
        using System.Text;
        using System.Text.RegularExpressions;
        using System.Web;
        using Terrasoft.Common;
        using Terrasoft.Core;
        using Terrasoft.Core.DB;
        using Terrasoft.Core.Entities;
        using Terrasoft.Core.Packages;
        using Terrasoft.Core.Factories;
    
        /* Атрибут с именем макроса [AccountInfoByType]. */
        [ExpressionConverterAttribute("AccountInfoByType")]
        /* Класс реализует интерфейс IExpressionConverter. */
        class AccountInfoByTypeConverter : IExpressionConverter
        {
            private UserConnection _userConnection;
            private string _customerAdditional;
            private string _partnerAdditional;
            /* Вызов значений локализуемых строк. */
            private void SetResources() {
                string sourceCodeName = "UsrAccountInfoByTypeConverter";
                _customerAdditional = new LocalizableString(_userConnection.ResourceStorage, sourceCodeName, "LocalizableStrings.CustomerAdditional.Value");
                _partnerAdditional =  new LocalizableString(_userConnection.ResourceStorage, sourceCodeName, "LocalizableStrings.PartnerAdditional.Value");
            }
            /* Реализация метода Evaluate интерфейса IExpressionConverter. */
            public string Evaluate(object value, string arguments = "")
            {
                try
                {
                    _userConnection = (UserConnection)HttpContext.Current.Session["UserConnection"];
                    Guid accountId = new Guid(value.ToString());
                    return getAccountInfo(accountId);
                }
                catch (Exception err)
                {
                    return err.Message;
                }
            }
            /* Метод получения дополнительной информации в зависимости от типа контрагента. В качестве входящего параметра используется Id контрагента. */
            private string getAccountInfo(Guid accountId)
            {
                SetResources();
                try
                {
                    /* Создание объекта класса EntitySchemaQuery с корневой схемой [Account]. */
                    EntitySchemaQuery esq = new EntitySchemaQuery(_userConnection.EntitySchemaManager, "Account");
                    /* Добавление в схему колонки [Name] из справочного поля [Type]. */
                    var columnType = esq.AddColumn("Type.Name").Name;
                    /* Добавление в схему колонки [Name] из справочного поля [EmployeesNumber]. */
                    var columnNumber = esq.AddColumn("EmployeesNumber.Name").Name;
                    /* Добавление в схему колонки [Name] из справочного поля [AnnualRevenue]. */
                    var columnRevenue = esq.AddColumn("AnnualRevenue.Name").Name;
                    /* Записи фильтруются по Id контрагента. */
                    var accountFilter = esq.CreateFilterWithParameters(
                        FilterComparisonType.Equal,
                        "Id",
                        accountId
                    );
                    esq.Filters.Add(accountFilter);
                    /* Получение коллекции сущностей. */
                    EntityCollection entities = esq.GetEntityCollection(_userConnection);
                    /* Если коллекция содержит элементы, то в зависимости от типа контрагента метод возвращает соответствующую информацию. */
                    if (entities.Count > 0)
                    {
                        Entity entity = entities[0];
                        var type = entity.GetTypedColumnValue<string>(columnType);
                        switch (type)
                        {
                            case "Customer":
                                return String.Format(_customerAdditional, entity.GetTypedColumnValue<string>(columnRevenue));
                            case "Partner":
                                return String.Format(_partnerAdditional, entity.GetTypedColumnValue<string>(columnNumber));
                            default:
                                return String.Empty;
                        }
                    }
                    return String.Empty;
                }
                catch (Exception err)
                {
                    throw err;
                }
            }
        }
    }
  7. На панели инструментов дизайнера исходного кода нажмите [ Опубликовать ] ([ Publish ]) для выполнения изменений на уровне базы данных.

2. Реализовать макрос (дата формирования отчета) 

  1. Перейдите в раздел [ Конфигурация ] ([ Configuration ]) и выберите пользовательский пакет, в который будет добавлена схема.
  2. На панели инструментов реестра раздела нажмите [ Добавить ] —> [ Исходный код ] ([ Add ] —> [ Source code ]).

  3. В дизайнере исходного кода заполните свойства схемы:

    • [ Код ] ([ Code ]) — "UsrCurrentDateConverter".
    • [ Заголовок ] ([ Title ]) — "CurrentDateConverter".

    Для применения изменений свойств нажмите [ Применить ] ([ Apply ]).

  4. В дизайнере исходного кода реализуйте класс макроса для получения даты формирования отчета.

    Исходный код схемы типа [ Исходный код ] ([ Source code ]) представлен ниже.

    UsrCurrentDateConverter
    Код скопирован
    namespace Terrasoft.Configuration
    {
        using System;
        using System.CodeDom.Compiler;
        using System.Collections.Generic;
        using System.Data;
        using System.Linq;
        using System.Runtime.Serialization;
        using System.ServiceModel;
        using System.ServiceModel.Web;
        using System.ServiceModel.Activation;
        using System.Text;
        using System.Text.RegularExpressions;
        using System.Web;
        using Terrasoft.Common;
        using Terrasoft.Core;
        using Terrasoft.Core.DB;
        using Terrasoft.Core.Entities;
        using Terrasoft.Core.Packages;
        using Terrasoft.Core.Factories;
    
        /* Атрибут с именем макроса [CurrentDate]. */
        [ExpressionConverterAttribute("CurrentDate")]
        /* Класс реализует интерфейс IExpressionConverter. */
        class CurrentDateConverter : IExpressionConverter
        {
            private UserConnection _userConnection;
    
            /* Реализация метода Evaluate интерфейса IExpressionConverter. */
            public string Evaluate(object value, string arguments = "")
            {
                try
                {
                    _userConnection = (UserConnection)HttpContext.Current.Session["UserConnection"];
                    /* Метод возвращает текущую дату. */
                    return _userConnection.CurrentUser.GetCurrentDateTime().Date.ToString("dd MMM yyyy");
                }
                catch (Exception err)
                {
                    return err.Message;
                }
            }
        }
    }
  5. На панели инструментов дизайнера исходного кода нажмите [ Опубликовать ] ([ Publish ]) для выполнения изменений на уровне базы данных.

3. Реализовать макрос (имя сотрудника, который сформировал отчет) 

  1. Перейдите в раздел [ Конфигурация ] ([ Configuration ]) и выберите пользовательский пакет, в который будет добавлена схема.
  2. На панели инструментов реестра раздела нажмите [ Добавить ] —> [ Исходный код ] ([ Add ] —> [ Source code ]).

  3. В дизайнере исходного кода заполните свойства схемы:

    • [ Код ] ([ Code ]) — "UsrCurrentUserConverter".
    • [ Заголовок ] ([ Title ]) — "CurrentUserConverter".

    Для применения изменений свойств нажмите [ Применить ] ([ Apply ]).

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

    Исходный код схемы типа [ Исходный код ] ([ Source code ]) представлен ниже.

    UsrCurrentUserConverter
    Код скопирован
    namespace Terrasoft.Configuration
    {
        using System;
        using System.CodeDom.Compiler;
        using System.Collections.Generic;
        using System.Data;
        using System.Linq;
        using System.Runtime.Serialization;
        using System.ServiceModel;
        using System.ServiceModel.Web;
        using System.ServiceModel.Activation;
        using System.Text;
        using System.Text.RegularExpressions;
        using System.Web;
        using Terrasoft.Common;
        using Terrasoft.Core;
        using Terrasoft.Core.DB;
        using Terrasoft.Core.Entities;
        using Terrasoft.Core.Packages;
        using Terrasoft.Core.Factories;
    
        /* Атрибут с именем макроса [CurrentUser]. */
        [ExpressionConverterAttribute("CurrentUser")]
        /* Класс реализует интерфейс IExpressionConverter. */
        class CurrentUserConverter : IExpressionConverter
        {
            private UserConnection _userConnection;
            /* Реализация метода Evaluate интерфейса IExpressionConverter. */
            public string Evaluate(object value, string arguments = "")
            {
                try
                {
                    _userConnection = (UserConnection)HttpContext.Current.Session["UserConnection"];
                    /* Метод возвращает контакт текущего пользователя. */
                    return _userConnection.CurrentUser.ContactName;
                }
                catch (Exception err)
                {
                    return err.Message;
                }
            }
        }
    }
  5. На панели инструментов дизайнера исходного кода нажмите [ Опубликовать ] ([ Publish ]) для выполнения изменений на уровне базы данных.

3. Настроить поля отчета 

  1. В блоке [ Настройте поля отчета ] ([ Set up report data ]) рабочей области страницы настройки отчета нажмите .
  2. В выпадающем списке [ Колонка ] ([ Column ]) выберите колонку [ Id ].

  3. Нажмите [ Выбрать ] ([ Select ]). Далее к этой колонке необходимо добавить тег пользовательского макроса для получения даты формирования отчета.
  4. Аналогично добавьте колонки [ Id ] (далее к этой колонке необходимо добавить тег пользовательского макроса для получения имени сотрудника, который сформировал отчет), [ Название ] ([ Name ]), [ Тип ] ([ Type ]), [ Основной контакт ] ([ Primary contact ]), [ Id ] (далее к этой колонке необходимо добавить тег пользовательского макроса для получения дополнительной информации контрагента, которая зависит от его типа).

    В результате в отчет добавлены поля, которые представлены на рисунке ниже.

  5. К колонке [ Id ] добавьте тег пользовательского макроса для получения даты формирования отчета.

    1. Откройте страницу настройки колонки [ Id ].

      Способы открытия страницы настройки колонки:

      • В блоке [ Настройте поля отчета ] ([ Set up report data ]) рабочей области страницы настройки отчета дважды кликните по колонке, к которой необходимо добавить тег макроса.
      • В блоке [ Настройте поля отчета ] ([ Set up report data ]) рабочей области страницы настройки отчета в строке колонки, к которой необходимо добавить тег макроса, нажмите .
    2. Измените значение поля [ Заголовок ] ([ Title ]) на "Id[#CurrentDate#]". [#CurrentDate#] — тег пользовательского макроса, который позволяет получить дату формирования отчета.

    3. На панели инструментов страницы настройки колонки нажмите [ Сохранить ] ([ Save ]).
    4. Аналогично к другим колонкам [ Id ] добавьте тег [#CurrentUser#] пользовательского макроса для получения имени сотрудника, который сформировал отчет, и тег [#AccountInfoByType#] пользовательского макроса для получения дополнительной информации контрагента, которая зависит от его типа.

    В результате в отчет добавлены поля, которые представлены на рисунке ниже.

  6. На панели инструментов страницы настройки отчета нажмите [ Применить ] ([ Apply ]).

4. Настроить шаблон отчета 

  1. Запустите приложение MS Word.
  2. На вкладке плагина Creatio панели инструментов нажмите кнопку [ Connect ].

  3. Введите логин и пароль пользователя в Creatio.

  4. Подключите сервер приложения Creatio.

    1. Возле поля [ Server ] нажмите .
    2. В окне [ Available Servers ] нажмите [ New ].

    3. Заполните свойства сервера:

      • [ Name ] — пользовательское имя сервера.
      • [ Link ] — адрес сервера приложения Creatio, в котором выполнялась настройка отчета.
    4. В окне [ Server Connection Setup ] нажмите [ OK ] для сохранения параметров подключения сервера Creatio.
    5. В окне [ Available Servers ] выберите сервер приложения Creatio, в котором выполнялась настройка отчета (опционально), и нажмите [ OK ].
  5. В окне [ Login ] нажмите [ OK ] для подключения к выбранному серверу Creatio.
  6. Выберите отчет MS Word, который планируется настроить.

    1. На вкладке плагина Creatio панели инструментов нажмите кнопку [ Select report ].

    2. В окне [ Creatio Word reports ] выберите отчет [ Информация контрагента ] ([ Account Info ]).

    3. В окне [ Creatio Word reports ] нажмите [ OK ] для выбора отчета.

    В результате открыта панель [ Word report data ] отчета [ Информация контрагента ] ([ Account Info ]), который представлен на рисунке ниже.

  7. Настройте шаблон отчета. Для этого воспользуйтесь инструкцией, которая приведена в статье Настроить отчет в плагине Word и загрузить в Creatio.

    Настроенный шаблон отчета [ Информация контрагента ] ([ Account Summary ]) приведен на рисунке ниже.

  8. Загрузите настроенный шаблон отчета [ Информация контрагента ] ([ Account Summary ]) в Creatio. Для этого на вкладке плагина Creatio панели инструментов нажмите кнопку [ Save to Creatio ].

В результате настроенный шаблон отчета [ Информация контрагента ] ([ Account Summary ]) загружен в Creatio и отображается на панели свойств.

Результат выполнения примера 

Чтобы посмотреть результат выполнения примера:

  1. Обновите страницу раздела [ Контрагенты ] ([ Accounts ]).
  2. Откройте страницу контрагента.

В результате выполнения примера на страницу контрагента добавлен отчет [ Информация контрагента ] ([ Account Summary ]). Отчет доступен в выпадающем меню кнопки [ Печать ] ([ Print ]) панели инструментов раздела.

Отчет [ Информация контрагента ] ([ Account Summary ]) для контрагента типа [ Клиент ] ([ Customer ]) имеет вид, который представлен на рисунке ниже.

Отчет [ Информация контрагента ] ([ Account Summary ]) для контрагента типа [ Партнер ] ([ Partner ]) имеет вид, который представлен на рисунке ниже.

Базовые макросы
Основы

Макрос — инструмент, который позволяет использовать дополнительные возможности получения данных из Creatio для отчета MS Word.

Структура макроса в отчетах MS Word приведена ниже.

Структура макроса
Код скопирован
ИмяКолонки[#ИмяМакроса|Параметр#]

Базовые макросы 

[#Date#]

Конвертирует дату в соответствии c заданным форматом. Формат по умолчанию — dd.MM.yyyy. Форматы даты описаны в официальной документации Microsoft. Параметр необязательный.

Примеры использования макроса [#Date#]
Макрос
Исходное значение
Результат
ИмяКолонки[#Date#]
07/15/2020 11:48:24 AM
15.07.2020
ИмяКолонки[#Date|MM/dd/yyyy#]
31/01/2019 08:25:48 AM
01/31/2019
[#Lower#]

Конвертирует значение строки в нижний регистр.

Пример использования макроса [#Lower#]
Макрос
Исходное значение
Результат
ИмяКолонки[#Lower#]
ПриМеР
пример
[#Upper#]

Конвертирует значение строки в верхний регистр. Параметр необязательный.

Параметры
FirstChar В верхний регистр конвертируется только первый символ.
Примеры использования макроса [#Upper#]
Макрос
Исходное значение
Результат
ИмяКолонки[#Upper#]
пример
ПРИМЕР
ИмяКолонки[#Upper|FirstChar#]
пример
Пример
[#NumberDigit#]

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

Примеры использования макроса [#NumberDigit#]
Макрос
Исходное значение
Результат
ИмяКолонки[#NumberDigit#]
345566777888.567
345 566 777 888.567
ИмяКолонки[#NumberDigit|,#]
345566777888.567
345,566,777,888.567
345566777888.000
345,566,777,888
[#NumberRU#]

Конвертирует число в строковое представление. Параметр необязательный. Если параметр не указан, то учитывается только целая часть числа.

Параметры
Cent Возвращает дробную часть числа, не конвертируя ее в строковое представление.
Decimal Возвращает дробную часть числа, конвертируя ее в строковое представление.
Примеры использования макроса [#NumberRU#]
Макрос
Исходное значение
Результат
ИмяКолонки[#NumberRU#]
456
четыреста пятьдесят шесть
456.78
четыреста пятьдесят шесть
ИмяКолонки[#NumberRU|Cent#]
123.45
45
123
00
ИмяКолонки[#NumberRU|Decimal#]
777.77
семьсот семьдесят семь целых семьдесят семь сотых
[#Boolean#]

Конвертирует логическое значение в заданный вид. Параметр обязательный.

Параметры
CheckBox Преобразует исходное значение в элемент выбора или .
Да,Нет Преобразует исходное значение в текст Да или Нет.
Примеры использования макроса [#Boolean#]
Макрос
Исходное значение
Результат
ИмяКолонки[#Boolean|CheckBox#]
true
ИмяКолонки[#Boolean|Да,Нет#]
true
Да