Дерево страниц
Skip to end of metadata
Go to start of metadata

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 10 Следующий »

Автоматическое формирование файла по настроенному шаблону (DOCX)

Легенда

  • label - название метки
  • field name - название поля объекта
  • module - тип модуля
  • path - путь к шаблону
  • name - название шаблона латиницей
  • description - русскоязычное название шаблона
  • keyword - ключ шаблона. Ключ состоит из названия формы объекта и постфикса printform. Пример: outputprintform
  • short name organization - краткое название организации

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




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

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

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

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

MERGEFIELD "Новое поле"

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

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

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

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

пример.docx

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

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

  • name - название шаблона, которое должно соотвествовать названию файла docx 
  • description - описание шаблона
  • constructor - docx
  • format - DOCX
template.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 - выражение для вычисления значения, которое подставится вместо метки. Обязательное.  

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

    Пример. Запрос, который находит именное приложение организации "ИсхД" в пустом комплекте и возвращает его 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 - название организации, если используется мульти СО. Не обязательное.

ss_labels_settings.csv
TYPE_NAME=ss_labels_settings;KEYS=title,moduletype;
title;expression;moduleorg;moduletype;organization
{label};getDocumentFieldValue('{field name}');;"alias=""{module}""";

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

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

report-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/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>

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

report_template.csv
TYPE_NAME=report_template;KEYS=name;;
name;description;constructor;type
{name};{description};docx;printform

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

qr_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

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

qr_report_keyword.csv
TYPE_NAME=QR_ReportKeyword;KEYS=Report,Keyword
Report;Keyword
"name=""{description}""";{keyword}

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

qr_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}"""
  • Нет меток