Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Подсказка
Автоматическое формирование файла по настроенному шаблону (DOCX)
  • label - название метки
  • field name - название поля объекта
  • module - тип модуля
  • path - путь к шаблону
  • name - название шаблона латиницей
  • description - русскоязычное название шаблона
  • keyword - ключ шаблона. Ключ состоит из названия формы объекта и постфикса printform. Пример: outputprintform
  • short name organization - краткое название организации
    Примечание
    iconfalse
    titleЛегенда
    Структура шаблона
    • {folder name} - название папки
      • {file name}.docx - шаблон с метками
      • template.xml - описание конфигурации
    панель

    Описание инструмента

    Оглавление

    Создание папки с шаблоном отчета

    Шаблон отчета должен распологаться по путитчеты\шаблоны печатных форм"




    Создание шаблона docx

    В новый документ docx добавить поля-метки. Метки добавляются следующим методом "Вставка" => "Экспресс-блоки" => "Поле: "Категория" = "Слияние" => "MERGEFIELD" => "Коды поля". Далее в кавычках добавляется название нового поля, например:

    Без форматирования
    MERGEFIELD "Новое поле"

    При создании поля важно проверять галку "Сохранять формат при обновлении", иначе потеряется форматирование при вставке текста в поле, если до этого туда вставляли HTML. Остальные чекбоксы при создании поля должны быть выключены.

    Имя метки в настройках и вводимое имя поля должны совпадать.

    Поддерживается как чистый HTML, так и HTML + CSS (передаётся единой строкой в СЭД сервис).

    Поле для вставки HTML должно находиться на новой строке, отдельно от остального текста, вне таблиц и списков.

    пример.docx

    Описание шаблона 

    Создать файла tempate.xml, в котором:

    • name - название шаблона, которое должно соотвествовать названию файла docx 
    • description - описание шаблона
    • constructor - docx
    • format - DOCX
    Блок кода
    languagexml
    titletemplate.xml
    <?xml version="1.1" encoding="UTF-8" standalone="yes"?>
    <ReportMetadataConfig name="{name}" description="{description}" constructor="docx">
        <formats>
            <format>DOCX</format>
        </formats>
    </ReportMetadataConfig>

    Описание новых меток

    Описание меток происходит в файле ss_labels_settings.csv по путитчеты\описание меток", где:

  • title - название метки в docх шаблоне. Обязательное.
  • expression - SpEL-выражение, с подключённым функционалом LabelPrint для вычисления значения, которое подставится вместо метки. Обязательное.  

  • moduleorg - идентификатор приложения, получается через запрос. Не обязательное.

    Блок кода
    languagesql
    titleПример. Запрос, который находит именное приложение организации "ИсхД" в пустом комплекте и возвращает его id
    select mo.id from ss_moduleorg mo 
    inner join ss_module m on m.id = mo.module 
    inner join ss_moduletype mt on mt.id = m.type 
    join SO_OrgSystem os on os.id = mo.organization 
    join SO_StructureUnit su ON su.id = os.id 
    where mt.alias = '{module}' AND m.complect='' AND m.isNamed=1 AND su.shortname = '{short name organization}'
  • moduletype  - тип модуля. Обязательное.
  • organization - название организации, если используется мульти СО. Не обязательное.
    Блок кода
    titless_labels_settings.csv
    TYPE_NAME=ss_labels_settings;KEYS=title,moduletype;
    title;expression;moduleorg;moduletype;organization
    {label};getDocumentFieldValue('{field name}');;"alias=""{module}""";

    Подключение отчета к формированию пакета для загрузки

    Конфигурация иморта отчетов

    Блок кода
    languagexml
    titlereport-import-config.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <report-import-config>
    
    	<!-- Путь к конфигурационным файлам к описанию отчетов -->
    	<csv>
    		<!-- Описание шаблона -->
    		<file-path>reports/descriptions/cp1251/report_template.csv</file-path>
    
    		<!-- Описание отчета -->
    		<file-path>reports/descriptions/cp1251/qr_report.csv</file-path>
    
    		<!-- Указание ключевого слова -->
    		<file-path>reports/descriptions/cp1251/qr_report_keyword.csv</file-path>
    
    		<!--  Указание модуля -->
    		<file-path>reports/descriptions/cp1251/qr_report_supported_type.csv</file-path>
    
    		<!--  Указание дескриптора -->
    		<file-path>reports/descriptions/cp1251/qr_reportviewdescription.csv</file-path>    
    
    		<!-- Метки шаблона -->
    		<file-path>reports/descriptions/cp1251/ss_labels_settings.csv</file-path>
    	</csv>
    
    	<!-- Шаблоны отчетов -->
    	<templates>
    
    		<!-- Путь к шаблону -->
    		<template>
    			<file-path>reports/{path}/template.xml</file-path>
    			<file-path>reports/{path}/{name}.docx</file-path>
    		</template>
    	</templates>
    
    </report-import-config>

    Описание шаблона

    Блок кода
    titlereport_template.csv
    TYPE_NAME=report_template;KEYS=name;;
    name;description;constructor;type
    {name};{description};docx;printform

    Описание отчета

    Блок кода
    titleqr_report.csv
    TYPE_NAME=QR_Report;KEYS=Name,Template;;;;;;;
    Name;Comment;Module;IsSelectionBased;Template;PredefinedParameters;DefaultParamFormula;DialogSchema;IsAvailableInAnalytics;notavailableinrepcoll;isprintimmediately;issendchlog;order
    {description};;select m.id from ss_module m inner join ss_moduletype mt on mt.id = m.type where mt.alias = 'QRCentre-AF5';true;"name=""{name}""";;;;false;false;false;false;60

    Указание ключевого слова

    Блок кода
    titleqr_report_keyword.csv
    TYPE_NAME=QR_ReportKeyword;KEYS=Report,Keyword
    Report;Keyword
    "name=""{description}""";{keyword}

    Указание модуля

    Блок кода
    titleqr_report_supported_type.csv
    TYPE_NAME=QR_ReportSupportedType;KEYS=Report,ModuleType
    Report;ModuleType
    SELECT r.id FROM QR_Report r JOIN report_template rt on rt.id = r.template WHERE rt.name = '{name}';"alias=""{module}"""

    Указание дескрипторов

    Блок кода
    titleqr_reportviewdescription.csv
    TYPE_NAME=QR_ReportViewDescription;KEYS=Report,ViewDescription Report;ViewDescription SELECT r.id FROM QR_Report r JOIN report_template rt on rt.id = r.template WHERE rt.name = '{name}';{descriptor name}

    Новые метки добавляются в файл ss_labels_settings.csv