Подготовка файла шаблона экспорта
Определения
- Файл шаблона экспорта представляет собой макет для выгрузки данных записи с требуемым визуальным оформлением.
- Файл шаблона можно сформировать в формате
DOCX
илиXLSX
. - В файл шаблона экспорта необходимо вставить поля согласно определённому синтаксису. Эти поля будут заменены на экспортируемые данные.
Создание файла шаблона экспорта
- Создайте документ Excel (
XLSX
) или Word (DOCX
). - Введите в документ требуемые сведения.
- Отформатируйте документ обычным образом.
- Введите поля в те места документа, куда требуется экспортировать данные записи.
- Должен получиться документ следующего вида (см. пример):
Синтаксис полей шаблона экспорта
В файле шаблона экспорта используются поля-заполнители. При экспорте данных записи поля заменяются значениями атрибутов, а остальной текст остаётся без изменений.
Синтаксис полей зависит от того, используется ли для экспорта данных скрипт C#.
Синтаксис для экспорта без использования C#
- В документ введите поля вида
{AttributeSystemName}
(без пробелов в фигурных скобках), гдеAttributeSystemName
— системное имя атрибута, значение которого необходимо экспортировать в файл. Значение атрибута будет экспортировано в формате отображения, заданном в свойствах атрибута. {RecordAttribute.LinkedTemplateAttribute}
— чтобы экспортировать значение атрибута связанного шаблона, укажите его системное имя через точку без пробела после системного имени атрибута типа «Запись».{#LinkedTemplateAttribute}
— чтобы экспортировать значение атрибута типа «Запись» в виде гиперссылки на запись связанного шаблона, укажите системное атрибута с префиксом#
. Гиперссылка будет содержать идентификатор или заголовок записи (если в шаблоне указан атрибут-заголовок).-
{foreach:RecordAttribute} {#LinkedAttribute1} {LinkedAttribute2} {end:RecordAttribute}
— для экспорта данных из нескольких записей связанного шаблона используйте операторыforeach
иend
в строке таблицы:- Строка таблицы с операторами
foreach
иend
будет преобразована в несколько строк с данными записей связанного шаблона. - В первом столбце строки введите в фигурных скобках оператор
foreach
и через двоеточие без пробела системное имя атрибута типа «Запись». - В последнем столбце строки введите в фигурных скобках оператор
end
и через двоеточие без пробела системное имя атрибута типа «Запись»; - Между операторами
foreach
иend
введите системные имена атрибутов связанного шаблона в фигурных скобках.
- Строка таблицы с операторами
-
{AttributeSystemName} полужирный текст
{AttributeSystemName2} курсив
— между полями можно располагать произвольный текст. Текст и поля можно форматировать (курсивом, полужирным шрифтом и т. п.). Экспортируемые данные будут отформатированы соответствующим образом. -
{ImageAttributeSystemName}
— если в поле указано системное имя атрибута типа «Изображение», поле будет заменено на изображение, хранящееся в атрибуте. -
{QRCodeAttributeSystemName:200:100}
— если в поле указано системное имя атрибута типа «Штрихкод», поле будет заменено на изображение штрихкода, сформированного по значению атрибута. Для штрихкода можно указать ширину и высоту через двоеточие после системного имени атрибута. Если указать только ширину, то штрихкод будет квадратным. Если не указывать ширину и высоту, то будет использоваться стандартный размер штрихкода.
Синтаксис для экспорта с использованием C#
Экспортировать данные посредством шаблона экспорта можно с помощью скрипта C#. Это позволяет более гибко настроить параметры экспорта, например с дополнительной фильтрацией, заменой информации, форматированным выводом атрибутов типа «Запись» с несколькими значениями (коллекций).
Скрипт C# для шаблона экспорта следует ввести на вкладке «Скрипт» кнопки экспорта, которая автоматически создаётся для каждого шаблона экспорта.
Примеры скриптов C# для экспорта данных см. в статьях «Настройка шаблона экспорта с использованием C#», и «Настройка выгрузки нескольких коллекций и изображений»
При экспорте данных с помощью С# синтаксис полей шаблона экспорта различается в зависимости от формата файла шаблона экспорта:
Синтаксис C# для XLSX-файлов
-
Скрипт C# должен передавать данные в функцию:
Api.TeamNetwork.ObjectAppExportService.ExecuteExcelExportTemplate("exportTemplate.N", dataToExport)
Здесь:
exportTemplate.N
— ID шаблона экспорта;dataToExport
— массив объектов с экспортируемыми данными.
-
В ячейки введите поля вида
&=data.propertyName
.- Здесь
data
— массив экспортируемых данных, переданный скриптом C#. propertyName
— имя свойства элемента массиваdata
, значение которого необходимо поместить в ячейку.
- Здесь
-
В одной ячейке может быть только одно поле.
- Для корректного экспорта данных необходимо указать формат ячейки, соответствующий типу экспортируемого значения.
-
Объявлять циклы
foreach
не требуется: для массивов строки на листе формируются автоматически.Внимание!
-
Если поле обращается к свойству, имеющему тип массива (например,
LIST<T>
), то это свойство не может бытьnull
иundefined
(то есть массив обязательно должен быть объявлен), в противном случае экспорт не будет выполнен. -
Например, если
&=data.Contract
имеет типLIST<T>
, то у каждого объекта в массивеdata
должно быть объявлено свойствоContract
.
-
Синтаксис C# для DOCX-файлов
-
Скрипт C# должен передавать данные в функцию:
Api.TeamNetwork.ObjectAppExportService.ExecuteWordExportTemplate("exportTemplate.N", dataToExport)
Здесь:
exportTemplate.N
— ID шаблона экспорта;dataToExport
— объект классаRESULT
, содержащий экспортируемые данные.
-
В документ введите поля вида
<<[propertyName]>>
, гдеpropertyName
— имя свойства объектаdataToExport
, значение которого необходимо поместить в текст. -
Чтобы экспортировать массив данных, используйте в строке таблицы или абзаце следующую конструкцию:
<<foreach [row in dataArray]>><<[row.property0]>> <<[row.property1]>> ... <<[row.propertyN]>><</foreach>>
или
<<foreach [in dataArray]>><<[property0]>> <<[property1]>> ... <<[propertyN]>><</foreach>>
Здесь:
foreach
— оператор цикла по массивуdataArray
row
— переменная-итератор цикла (необязательная);dataArray
— имя массива, переданного в объектеdataToExport
.property0
...propertyN
— имена свойств элементов массиваdataArray
, значения которых необходимо поместить в текст.
-
Чтобы экспортировать изображение, введите поле вида
<<image [imageData]>>
, гдеimageData
— имя массива типаbyte
с данными изображения, переданного в объектеdataToExport
.
Использование шрифтов в шаблонах экспорта в формате PDF
Если в свойствах шаблона экспорта установлен флажок «Экспортировать как PDF», файлы PDF формируются с использованием шрифтов, установленных на сервере c экземпляром ПО Comindware Platform (далее «Сервер»).
При формировании файлов PDF из шаблонов экспорта сервер может подставлять произвольные шрифты с другим начертанием, что может привести к некорректному форматированию файлов PDF.
Это может быть связано с тем, что Сервере отсутствуют шрифты, которые используются в файле шаблона экспорта:
- На сервере с Windows в некоторых случаях могут отсутствовать стандартные шрифты Times New Roman и Arial;
- На сервере с Linux могут отсутствовать какие бы то ни было шрифты, либо могут использоваться шрифты, отличные от шрифтов Windows.
Набор шрифтов, доступных на сервере, известен администратору операционной системы.
Решение для Word
Чтобы файлы PDF правильно форматировались при экспорте, в файлы DOCX шаблонов экспорта следует внедрять шрифты:
- В меню «Файл» выберите пункт «Параметры».
- В окне «Параметры Word» перейдите на вкладку «Сохранение».
-
В разделе «Сохранение качества при совместном использовании документа»:
- установите флажок «Внедрить шрифты в файл»;
- снимите флажок «Не внедрять обычные системные шрифты».
-
Нажмите кнопку «OK».
- Сохраните файл DOCX и используйте его в качестве шаблона экспорта.
Решение для Excel
Чтобы файлы PDF правильно форматировались при экспорте из шаблонов экспорта в формате XSLX используйте один из двух подходов:
- установить шрифты, используемые в файле Excel, на сервер;
- установить шрифты с сервера в Windows и использовать их в файле Excel.
Вариант 1. Установка шрифтов на сервер
- Составьте список шрифтов, которые используются в файле Excel шаблона экспорта.
- Выберите необходимые файлы шрифтов в папке
C:\Windows\Fonts
(требуется доступ администратора). - Создайте архив с файлами шрифтов, например, в своей папке
Downloads
. - Перенесите архив с шрифтами на сервер.
- Установите шрифты на сервер.
Вариант 2. Использование шрифтов с сервера в Excel
-
Соберите все шрифты на сервере:
- папка
C:\Windows\Fonts
— Windows - каталог
/usr/share/fonts
— Linux
- папка
-
Установите шрифты с сервера на компьютер, где вы редактируете файл Excel шаблона экспорта:
-
поместите шрифты в папку в папку
C:\Windows\Fonts
;или
-
откройте каждый файл шрифта и нажмите в окне просмотра шрифта кнопку «Установить».
-
-
Используйте в файле Excel шаблона экспорта только шрифты, перенесённые с сервера.
Связанные статьи
Пример настройки и использования шаблона экспорта авансового отчёта
Настройка выгрузки нескольких коллекций и изображений