В Comindware Business Application Platform помимо стандартной выгрузки отчётов предусмотрен экспорт данных с использованием скриптов на C#. Этот вариант позволяет более гибко настроить параметры экспортируемого файла, например, с дополнительной фильтрацией или заменой информации, либо с форматированным выводом атрибутов-коллекций.
Шаблон документа в формате .xls
Рассмотрим решение следующей задачи: написать скрипт, который формирует Excel-файл, в котором каждый элемент коллекции располагается в отдельной строчке (по умолчанию все элементы коллекции перечисляются в одной строчке через пробел).
1. Для начала создайте шаблон экспорта по типу:
Пример excel шаблона экспорта
&=data.свойство_класса (Свойства класса — структура подготовки данных, которые определяются в С# скрипте)
Поля «Клиент», «Контактное лицо», «Телефон» и «Email» будут заполняться из атрибутов записей шаблона «Клиенты». Поле «Договор» — коллекция в шаблоне записей «Клиенты», поле «Статус» — справочник статусов в отдельном шаблоне.
2. Добавьте созданный шаблон экспорта в текущий шаблон записи (в данном случае, «Клиенты»):
Расположение раздела «Шаблоны экспорта»
3.В этом же шаблоне записи автоматически добавится кнопка с операцией «Экспорт записи»:
Автоматически созданная кнопка
Перейдите на вкладку «Скрипт» в свойствах этой кнопки и добавьте следующий код:
using System; class Script }; }, public static DateTime? getterDT(string key, IDictionary<string, object> dictionary = null) public static string getterSTR(string key, IDictionary<string, object> dictionary = null) } public static IList<string> getterListSTR(string key, IDictionary<string, object> dictionary = null) public static IDictionary<string, object> GetData(string objectId = null) [Serializable] [Serializable] |
В коде скрипта комментариями помечены 11 мест, где при необходимости можно заменить системные имена своими.
Как выглядят данные в продукте:
Список клиентов
Результат выгрузки:
Excel файл
Шаблон документа в формате .doc
По такой же логике настраиваем выгрузку Шаблона экспорта в формате Word.
Отличием здесь будет немного иное написание самого шаблона, а также C# скрипта.
Пример word шаблона экспорта
C# скрипт:
using System; class Script if(first_element == true) var dataToExport = new RESULT var result = new UserCommandResult public static DateTime? getterDT(string key, IDictionary<string, object> dictionary = null) public static string getterSTR(string key, IDictionary<string, object> dictionary = null) public static IList<string> getterListSTR(string key, IDictionary<string, object> dictionary = null) public static IDictionary<string, object> GetData(string objectId = null) [Serializable] public class RESULT |
Результат выгрузки:
Word файл
Номер Статьи: 1942
Размещено: Tue, Dec 14, 2021
Последнее обновление: Thu, Aug 1, 2024
Online URL: https://kb.comindware.ru/article/shablon-eksporta-nastrojka-s-ispolzovaniem-c-1942.html