В системе пользователь имеет возможность самостоятельно формировать шаблоны документов для последующего формирования на их основе этих документов в печатной форме.
Шаблоны документов создаются в модуле "Настройки"— "Параметры" — "Справочники", справочник "Шаблоны документов", а затем могут быть использованы при настройке печатных форм следующих документов:
•договор страхования
• доп. документ по договору страхования ( например, заявление на страхование, список страхуемых ТС)
•доверенности на получение бланков — данные шаблоны применяются на странице просмотра акта приема-передачи бланков в блоке "Формируемые документы"
•акт приема-передачи бланков
•акт приема-передачи договоров (оригиналов)
•акт утери бланков
•акт списания бланков
•акт выполненных работ — данные шаблоны применяются при настройке АВР в модуле "Настройки - Управление комиссионными - Настройка АВР" (подробнее см. раздел руководства "Комиссионное вознаграждение" — "Настройки КВ" — "Настройка АВР (шаблоны)")
•сообщение при возврате платежа на акт выполненных работ
•документов, прилагаемых к запросам на расторжение договоров
•реестр на выплату агентского вознаграждения
•документы, прилагаемые к страховым актам урегулирования
•документы, прилагаемые к страховым делам урегулирования
•уведомление об убытке
•счет-фактура
Также, возможно создавать шаблоны системных сообщений (уведомлений системы), что предоставит пользователям системы возможность самостоятельно редактировать тексты сообщений, рассылаемые системой, настраивать получателей сообщений.
Из-за особенностей редактора сообщений рассылки код нельзя копировать из другой рассылки, т.к. в этом случае копируются все служебные теги редактора (в редакторе исходный код можно посмотреть нажав кнопку "HTML") поэтому методы, которые корректно работают на оригинальной рассылке, в скопированной могут работать с ошибками. Рекомендуется формировать код в обычном текстовом редакторе и уже его копировать в рассылки.
|
Шаблон может быть произвольного содержания и форматирования. В местах шаблона, где необходимо использование не просто статического текста, а полей сущностей системы, необходимо будет использовать специальный синтаксис обращения к полям сущностей системы (см. ниже разделы с инструкциями по созданию шаблонов для каждого из документов).
В конфигурации продукта на вкладке “Общие данные” имеется поле “Код описания условий договора”. В данном поле задается значение из выпадающего списка. Код описания условий договора определяет детальную информацию по условиям договора страхования. Данный код отвечает за привязку к данной конфигурации метаданных, регламентирующих наполнение договора (виды страхования, типы объектов, риски, поля договора). Эти метаданные хранятся в конфигурационных файлах системы и настраиваются разработчиками системы, сам код отвечает за привязку описания из конфигурационных файлов к карточке конфигурации продукта (для продуктов, созданных на базе конструктора, привязка не актуальна). Код описания условий договора в режиме просмотра является ссылкой, при нажатии на которую открывается страница "Просмотр описания условий договора". Здесь можно просмотреть информацию о полях, используемых в конфигурации продукта (Код, Название, Тип данных, Тип поля, Значение по умолчанию). |
Для создания нового шаблона документов следует выполнить: 1.Перейти в навигационном меню по ссылке "Настройки" — "Параметры" — "Справочники", справочник "Шаблоны документов" 2.Нажать в функциональном меню кнопку "Добавить" 3.Заполнить поля формы создания шаблона документа 4.Сохранить шаблон по нажатию в функциональном меню кнопки "Сохранить"
Форма создания шаблона документа содержит следующие поля: •Код — код шаблона, должен быть уникальным •Название шаблона — следует указать название шаблона документа (будет отбражаться на интерфейсе системы) •Название документа — следует указать название документа. Для актов выполненных работ возможно настроить формат названия шаблона формируемого документа в виде "префикс с ФИО контрагента - получателя КВ" / "названием организации - получателя КВ" название документа "номер акта выполненных работ". Для выполнения такой настройки в данном поле следует ввести следующее значение: #{act.agent.shortName} шаблон #{act.number}. Если данный шаблон документа будет настроен для конкретного получателя КВ (будет выбран в поле настройки "Шаблон документа"), то для формирования документа для данного получателя будет отображаться ссылка названия документа именно в заданном формате •Тип документа — выбор значения из выпадающего списка: •"Акт выполненных работ" — для формирования шаблонов актов выполненных работ по выплате КВ •"Договор страхования" — для формирования шаблонов договоров страхования КАСКО •"Доп. документ по договору страхования" — для формирования шаблонов дополнительных документов к договору страхования КАСКО (заявления на страхование, списка страхуемых ТС •"Рассылка сообщений" — для формирования шаблонов системных уведомлений •"Акт приема-передачи бланков" — для формирования шаблонов доверенностей на получение бланков (печать доверенности со страницы просмотра акта приема-передачи бланков) •"Документ СД" — для формирования шаблонов документов, формируемых для страхового дела (определяются необходимые для страхового дела документы в конфигурации урегулирования, подробнее см. раздел руководства Урегулирование) •"Страховой акт" — для формирования шаблонов документов, формируемых для страховых актов урегулирования (определяются необходимые для страхового акта документы в конфигурации урегулирования, подробнее см. раздел руководства Урегулирование) •Расчет страхового возмещения — для формирования шаблонов расчетов страхового возмещения при урегулировании страховых случаев, подробнее см. раздел руководства Урегулирование •"Запрос на расторжение" — для формирования шаблонов документов, формируемых для запросов на расторжение договоров (определяются необходимые для запроса на расторжение документы на закладке "Документы" карточки запроса, подробнее см. раздел руководства Расторжение договоров) •"Перечень на выплату КВ" — для формирования шаблонов реестров на выплату агентского вознаграждения (подробнее о реестрах см. раздел руководства Начисление КВ (перечни договоров и акты выполненных работ)) •Группа продуктов — выбор значения из выпадающего списка, привязка шаблона к конкретной группе продуктов, т.е. документ по данному шаблону возможнго будет сформировать только для продукта из указанной здесь группы (данное поле отображается только для типа документов "Договор страхования" и "Доп. документ по договору страхования", а именно: применяется для формирования шаблонов печати договоров, настроенных на конструкторе продуктов, и доп. документов для этих договоров, подробнее см. раздел руководства Печать договоров, подраздел "Печать договоров, введенных в систему модулями ввода, которые настроены на конструкторе") •Вид шаблона — после выбора в предыдущем поле типа "Акт выполненных работ" в выпадающем списке данного поля станут доступными для выбора значения: •"простой" – без использования подшаблона •"составной" – с использованием подшаблона (при выборе данного вида на форме отобразятся дополнительные поля для ввода данных подшаблона документов, подробнее см. ниже) •Шаблон документа — по нажатию кнопки "Приложить" следует указать месторасположение файла-шаблона документа в xls-формате, после чего шаблон загрузится в систему и после сохранения данных настроек будет доступен для просмотра по нажатию на его названии (см. ниже инструкции по созданию шаблонов каждого типа документов) •Срок действия — следует указать срок, в течение которого данный шаблон документов может быть использован •Активный — следует указать статус шаблона, отметив одну из опций: "да" – активный, "нет" – неактивный (использованы могут быть только активные шаблоны документов) •Индекс очередности размещения документа — в данном поле следует указать параметр, определяющий порядок размещения документов, созданных на основании данного шаблона. Документы с меньшим индексом будут отображаться выше документов с большим индексом. Документы с одинаковыми индексами будут отображаться в случайном порядке. Диапазон доступных значений индекса от 1 до 999. Внимание! По возможности не следует задавать индексы подряд для документов одного типа (например: 5, 6, 7), так как это усложнит добавление новых документов между существующими. Рекомендуется индексировать соседние документы с интервалом 10, например, 50, 60, 70) •Комментарий — при необходимости в данном поле следует ввести комментарий •Код подшаблона — следует указать код подшаблона документа (данное поле отображается при выбранном виде шаблона "составной"). Данный код подшаблона указывается в основном шаблоне в тэге, где вызывается подшаблон, например: <sh:PodBlock items="#{insAct.commission}" var="com"/>, где PodBlock - это код подшаблона •Подшаблон документа — следует указать месторасположение файла-подшаблона документа в xls-формате, после чего подшаблон загрузится в систему и после сохранения данных настроек будет доступен для просмотра по нажатию на его названии (данное поле отображается при выбранном виде шаблона "составной", см. ниже подразделы с инструкциями по созданию шаблонов документов) •Условия формирования — следует определить условия, при которых будет допустимо формирование документов данного типа. В настоящий момент условия определяются только для формирования доверенностей на получение бланков (со страницы просмотра акта приема-передачи бланков) и для формирования документов, прикрепляемых к запросам на расторжение договоров (для других типов документов условия формирования в настоящее время не настраиваются). По нажатию в данном поле кнопки "Выбрать" отобразится окно "Выбор условий формирования", в котором следует отметить флагами допустимые условия формирования и нажать в функциональном меню окна кнопку "Применить" для сохранения условий, кнопку "Сбросить" — для отмены условий (условия применяются с условием "и", т.е. с одновременным выполнением всех условий). В перечне отображаются все активные условия справочника "Условия формирования шаблонов" ("Администрирование" — "Справочники"), сформированные разработчиками системы (на el). Для каждого условия формирования следует указать текст, который будет отображаться в случае невозможности выполнения печати документа по причине несоблюдения данного условия. При формировании документа система выполнит проверку условий формирования, и выдаст сообщение о невозможности формирования документа с указанием причин •Условия отображения — условия отображения определяются также, как и условия формирования. Исходя из условий, выбранных в этом поле, документ может либо отображаться в блоке, либо нет.
|
Для поиска шаблона документов в словаре следует выполнить: 1.Перейти в навигационном меню по ссылке "Настройки" — "Параметры" — "Справочники", справочник "Шаблоны документов" 2.Заполнить в блоке фильтра критерии поиска шаблонов документов: •Тип документа — фильтр по типу документа, для которого создан искомый шаблон. Если данный критерий применять не нужно, следует отметить опцию "Все", для поиска по конкретным типам, следует отметить опцию "Выбрать" и нажать появившуюся кнопку "Выбрать", после в окне "Выбор типов документов" следует отметить нужные типы и нажать в функциональном меню окна кнопку "Применить", для отмены выбора — кнопку "Сбросить" •Код — фильтр по коду шаблона, причем можно указать только часть кода •Название — фильтр по названию шаблона, причем можно указать только часть названия •Категория шаблона — фильтр по значению для категории шаблонов. •Фрагмент шаблона — при заполнении поля данного фильтра выполняется поиск документов среди шаблонов, в которых фигурирует указанный в фильтре фрагмент текста или EL-выражения. •Формат — фильтр по формату шаблона документа, в данном поле можно выбрать значение из выпадающего списка ( доступны значения “все, XLS, XLSX, ODT” ) •Активный — фильтр по активности шаблона, для поиска только по активным шаблонам следует отметить опцию "да", для поиска только по неактивным — опцию "нет", если данный критерий применять не нужно, следует отметить опцию "все" 3.Нажать в функциональном меню блока кнопку "Применить"
В результате поиска сформируется перечень шаблонов документов, данные которых удовлетворяют заданным критериям поиска.
В перечне отображается название шаблона и его статус активности. Переход на страницу просмотра шаблона выполняется по нажатию на его название в списке.
В функциональном меню карточки просмотра шаблона документа имеется кнопка"Добавить комментарий". При нажатии на нее, пользователь имеет возможность оставить комментарий к данному шаблону, который можно увидеть на вкладке "Комментарии". Для каждой записи словаря имеется реквизит "категория", значение которого устанавливается из пользовательского справочника категорий шаблонов.
|
Для динамического описания выражений используется EL.
С описанием EL можно ознакомиться в данных источниках:
http://ru.wikipedia.org/wiki/Expression_Language http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html http://ru.wikipedia.org/wiki/Java
Выражение должно указываться внутри конструкции #{EXPRESSION}. Для написания выражений, которые должны пониматься Excel как формула, необходимо использовать конструкцию вида #{[EXPRESSION]}.
Форматирование выводимых данных доступно посредством использования функций bo: НАЗВАНИЕ_ФУНКЦИИ (ПАРАМЕТРЫ), например, #{bo:formatDate(signDate, “dd.MM.yyyy”)}. Результат будет отображена в ячейке XLS дата в формате ДД.ММ.ГГГГ.
Доступные функции (bo:)
Для итерации по данным используется тег sh:repeat.
Пример использования: <sh:repeat var=”item” items=”#{items}” varStatus=”stat”></sh:repeat>, где: •repeat – зарезервированное название в системе для тег итерации по коллекции с данными •var – название переменной, в которой хранится текущий элемент цикла •items – коллекция с данными, которая доступна при формировании документа •varStatus – переменная, в которой хранится состояние прохода по коллекции
В данной переменной доступны свойства index, first, last, где: •index – количество пройденных элементов в цикле •first – первая запись •last – последняя запись
Данный тег должен находиться в одной строке, т.е. закрытие на другой строке недопустимо.
Для того, чтобы cформировать за один проход цикла несколько строк XLS, необходимо при создании шаблона документа указать Вид шаблона = Составной, далее - заполнить соответствующие поля Код подшаблона и Подшаблон документа. В основном XLS документе строка с описанием тега для итерации по данным должна иметь следующий вид:
<sh:КОД_ПОДШАБЛОНА items=”#{items}” var=”item” varStatusTemplate=”idx”/>, где: •var – название переменной, в которой хранится текущий элемент цикла •items – коллекция с данными, которая доступна при формировании документа •varStatusTemplate – переменная, в которой хранится состояние прохода по коллекции
Описание подшаблона документа идентично описанию простого документа.
При формировании документа в контексте доступны следующие объекты
Для шаблона документа с видом Простой в контексте доступны дополнительно следующие объекты
Для шаблона документа с видом Составной в контексте доступны дополнительно следующие объекты
Описание классов, использующихся как поля объектов, доступных в контексте
|
Для динамического описания выражений используется EL.
С описанием EL можно ознакомиться в данных источниках:
http://ru.wikipedia.org/wiki/Expression_Language http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html http://ru.wikipedia.org/wiki/Java
Выражение должно указываться внутри конструкции #{EXPRESSION}. Для написания выражений, которые должны пониматься Excel как формула, необходимо использовать конструкцию вида #{[EXPRESSION]}.
Форматирование выводимых данных доступно посредством использования функций bo: НАЗВАНИЕ_ФУНКЦИИ (ПАРАМЕТРЫ), например, #{bo:formatDate(signDate, “dd.MM.yyyy”)}. Результат будет отображена в ячейке XLS дата в формате ДД.ММ.ГГГГ.
Доступные функции (bo:)
Для итерации по данным используется тег sh:repeat.
Пример использования: <sh:repeat var=”item” items=”#{items}” varStatus=”stat” countItems="countItems"></sh:repeat>, где: •repeat – зарезирвированное название в системе для тег итерации по коллекции с данными •var – название переменной, в которой хранится текущий элемент цикла •items – коллекция с данными, которая доступна при формировании документа •countItem – переменная, в которой хранится количество элементов в коллекции •varStatus – переменная, в которой хранится состояние прохода по коллекции
В данной переменной доступно два свойства index, first, last, где: •index – количество пройденных элементов в цикле •first – первая запись •last – последняя запись
Данный тег должен находиться в одной строке, т.е. закрытие на другой строке недопустимо.
Таким образом, получается невозможность формирования за один проход цикла нескольких строк XLS. Для этого необходимо при создании шаблона документа указывать Вид шаблона = Составной, далее требуется заполнить соответсвующие поля Код подшаблона и Подшаблон документа. В XLS документе строка с описанием тега для итерации по данным будет иметь следующий вид:
<sh:КОД_ПОДШАБЛОНА items=”#{items}” var=”item” varStatusTemplate=”idx”/>, где: •var – название переменной, в которой хранится текущий элемент цикла •items – колекция с данными, которая доступна при формировании документа •varStatusTemplate – переменная, в которой хранится состояние прохода по коллекции
Описание подшаблона документа идентично описанию простого документа.
При формировании документа в контексте доступны следующие объекты
Описание классов, использующихся как поля объектов, доступных в контексте
Для получения значения полей "Франшиза по рискам А1-А5, %","Франшиза по риску Б и конструктивной гибели, %" по нескольким объектам внутри цикла <sh:repeat items="#{cascoWrapper.vehicles}" var="vehicle" varStatus="stat" countItems="countItems"> </sh:repeat> нужно использовать конструкцию #{vehicle.franchiseAPercent} #{vehicle.franchiseBPercent}
Для возможности динамического формирования названия сгенерированного файла можно использовать следующие объекты, доступные в контексте при формировании файла
|
Для динамического описания выражений используется EL.
С описанием EL можно ознакомиться в данных источниках:
http://ru.wikipedia.org/wiki/Expression_Language http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html http://ru.wikipedia.org/wiki/Java
Выражение должно указываться внутри конструкции #{EXPRESSION}. Для написания выражений, которые должны пониматься Excel как формула, необходимо использовать конструкцию вида #{[EXPRESSION]}.
Форматирование выводимых данных доступно посредством использования функций bo: НАЗВАНИЕ_ФУНКЦИИ (ПАРАМЕТРЫ), например, #{bo:formatDate(signDate, “dd.MM.yyyy”)}. Результат будет отображена в ячейке XLS дата в формате ДД.ММ.ГГГГ.
Доступные функции (bo:)
Для итерации по данным используется тег sh:repeat.
Пример использования: <sh:repeat var=”item” items=”#{items}” varStatus=”stat” countItems="countItems"></sh:repeat>, где: •repeat – зарезирвированное название в системе для тег итерации по коллекции с данными •var – название переменной, в которой хранится текущий элемент цикла •items – коллекция с данными, которая доступна при формировании документа •countItem – переменная, в которой хранится количество элементов в коллекции •varStatus – переменная, в которой хранится состояние прохода по коллекции
В данной переменной доступно два свойства index, first, last, где: •index – количество пройденных элементов в цикле •first – первая запись •last – последняя запись
Данный тег должен находится в одной строке, т.е. закрытие на другой строке недопустимо.
Таким образом, получается невозможность формирования за один проход цикла нескольких строк XLS. Для этого необходимо при создании шаблона документа указывать Вид шаблона = Составной, далее требуется заполнить соответсвующие поля Код подшаблона и Подшаблон документа. В XLS документе строка с описанием тега для итерации по данным будет иметь следующий вид:
<sh:КОД_ПОДШАБЛОНА items=”#{items}” var=”item” varStatusTemplate=”idx”/>, где: •var – название переменной, в которой хранится текущий элемент цикла •items – колекция с данными, которая доступна при формировании документа •varStatusTemplate – переменная, в которой хранится состояние прохода по коллекции
Описание подшаблона документа идентично описанию простого документа.
При формировании документа в контексте доступны следующие объекты
Описание классов, использующихся как поля объектов, доступных в контексте
|
Для динамического формирования шаблонов сообщений используется обработчик шаблонов Apache Velocity, с описанием которого можно ознакомиться в данных источниках:
http://ru.wikipedia.org/wiki/Apache_Velocity http://velocity.apache.org/engine/devel/user-guide.html#About_this_Guide
Для написания шаблонов используется язык Velocity Template Language (VTL).
Основные понятия и правила VTL:
1.Обращение к переменным (ссылкам) должно начинаться с $ - $EXPRESSION, при этом фигурные скобки необязательны. Выражение ${a} эквивалентно $a. Фигурные скобки следует использовать, когда за названием переменной сразу следует обычный текст:
$person.ageлет – некорректно ${person.age}лет – корректно
2.Имя переменной должно начинаться с латинской буквы (a..z, A..Z), а состоять может из следующих символов: a..z, A..Z, 0..9, - , _ .
3.Обращаться к свойствам можно следующим образом:
$cagent.Address (эквивалентно $cagent.addres) – сокращённая форма для $cagent.getAddress())
Можно, также, формировать цепочки вызовов:
$cagent.Person.Address.Town – вернёт название города из адреса контрагента
4.Можно использовать методы с параметрами:
$page.setTitle('Моя страница') $myObject.calculateSomeValue(1, 4, 432)
5.Если ссылка указывает на массив данных (список), то к элементам этого массива можно обращаться по индексу:
$list[2]
6.Если в контексте не будет объекта, соответствующего ссылке, или текстовое представление объекта будет пустым, то в результирующий файл будет выведено выражение без изменений.
Например: Здравствуйте, $recepient.fullName – если в контексте не будет переменной с id = recepient или св-во fullName объекта с id = recepient является пустым, то в результирующем файле данное выражение выведется без изменений: Здравствуйте, $recepient.fullName. Чтобы в данном случае выражение $recepient.fullName игнорировалось в результирующем файле, нужно вставить символ '!' после $: $!recepient.fullName (или $!{recepient.fullName}).
7.Кроме обращения к переменным, в контексте есть возможность использовать следующие директивы (директива начинается с символа #):
•#set – используется для установки значений в переменную #set ( $text = “text”) #set ( $person.name = “Иван”)
•#If / Elseif / Else – используются для определения условий отображения определённого блока
#if( $foo < 10 ) ... #elseif( $foo == 10 ) ... #else ... #end
В условии могут использоваться логические операторы: И (&& или AND), ИЛИ (|| или OR), НЕ (! или NOT).
•#foreach – для прохода по элементам списка #foreach( $customer in $customerList ) <tr><td>$foreach.count</td><td>$customer.Name</td></tr> #end $foreach.count — выводит счетчик цикла
Для более подробной информации о VTL обращаться к документации (ссылки вверху).
Форматирование выводимых данных доступно посредством использования функций bo.НАЗВАНИЕ_ФУНКЦИИ(ПАРАМЕТРЫ), например, ${bo.formatDate(signDate, “dd.MM.yyyy”)}. Результат: в результирующем сообщении будет отображена дата в формате ДД.ММ.ГГГГ.
Доступные функции (bo.)
При формировании уведомления в контексте доступны следующие объекты
Описание классов, использующихся как поля объектов, доступных в контексте
Использование справочника "Системные переменные"
|
Для динамического формирования шаблонов сообщений используется обработчик шаблонов Apache Velocity, с описанием которого можно ознакомиться в данных источниках:
http://ru.wikipedia.org/wiki/Apache_Velocity http://velocity.apache.org/engine/devel/user-guide.html#About_this_Guide
Для написания шаблонов используется язык Velocity Template Language (VTL).
Основные понятия и правила VTL:
1.Обращение к переменным (ссылкам) должно начинаться с $ - $EXPRESSION, при этом фигурные скобки необязательны. Выражение ${a} эквивалентно $a. Фигурные скобки следует использовать, когда за названием переменной сразу следует обычный текст:
$person.ageлет – некорректно ${person.age}лет – корректно
2.Имя переменной должно начинаться с латинской буквы (a..z, A..Z), а состоять может из следующих символов: a..z, A..Z, 0..9, - , _ .
3.Обращаться к свойствам можно следующим образом:
$cagent.Address (эквивалентно $cagent.addres) – сокращённая форма для $cagent.getAddress())
Можно, также, формировать цепочки вызовов:
$cagent.Person.Address.Town – вернёт название города из адреса контрагента
4.Можно использовать методы с параметрами:
$page.setTitle('Моя страница') $myObject.calculateSomeValue(1, 4, 432)
5.Если ссылка указывает на массив данных (список), то к элементам этого массива можно обращаться по индексу:
$list[2]
6.Если в контексте не будет объекта, соответствующего ссылке, или текстовое представление объекта будет пустым, то в результирующий файл будет выведено выражение без изменений.
Например: Здравствуйте, $recepient.fullName – если в контексте не будет переменной с id = recepient или св-во fullName объекта с id = recepient является пустым, то в результирующем файле данное выражение выведется без изменений: Здравствуйте, $recepient.fullName. Чтобы в данном случае выражение $recepient.fullName игнорировалось в результирующем файле, нужно вставить символ '!' после $: $!recepient.fullName (или $!{recepient.fullName}).
7.Кроме обращения к переменным, в контексте есть возможность использовать следующие директивы (директива начинается с символа #):
•#set – используется для установки значений в переменную #set ( $text = “text”) #set ( $person.name = “Иван”)
•#If / Elseif / Else – используются для определения условий отображения определённого блока
#if( $foo < 10 ) ... #elseif( $foo == 10 ) ... #else ... #end
В условии могут использоваться логические операторы: И (&& или AND), ИЛИ (|| или OR), НЕ (! или NOT).
•#foreach – для прохода по элементам списка #foreach( $customer in $customerList ) <tr><td>$foreach.count</td><td>$customer.Name</td></tr> #end $foreach.count — выводит счетчик цикла
Для более подробной информации о VTL обращаться к документации (см. вверху ссылки).
Форматирование выводимых данных доступно посредством использования функций bo.НАЗВАНИЕ_ФУНКЦИИ(ПАРАМЕТРЫ), например, ${bo.formatDate(signDate, “dd.MM.yyyy”)}. Результат: в результирующем сообщении будет отображена дата в формате ДД.ММ.ГГГГ.
Доступные функции (bo.)
При формировании уведомления в контексте доступны следующие объекты
Описание классов, использующихся как поля объектов, доступных в контексте
Список запрошенных в заявке ролей можно получить с помощью метода roles класса RequestRegistration. Список назначенных пользователю ролей можно получить при обращении к свойству user (класса Cagent): cagent.user.roles, в случае заявки на регистрацию: $targetObject.cagent.user.roles
|
Для динамического формирования шаблонов сообщений используется обработчик шаблонов Apache Velocity, с описанием которого можно ознакомиться в данных источниках:
http://ru.wikipedia.org/wiki/Apache_Velocity http://velocity.apache.org/engine/devel/user-guide.html#About_this_Guide
Для написания шаблонов используется язык Velocity Template Language (VTL).
Основные понятия и правила VTL:
1.Обращение к переменным (ссылкам) должно начинаться с $ - $EXPRESSION, при этом фигурные скобки необязательны. Выражение ${a} эквивалентно $a. Фигурные скобки следует использовать, когда за названием переменной сразу следует обычный текст:
$person.ageлет – некорректно ${person.age}лет – корректно
2.Имя переменной должно начинаться с латинской буквы (a..z, A..Z), а состоять может из следующих символов: a..z, A..Z, 0..9, - , _ .
3.Обращаться к свойствам можно следующим образом:
$cagent.Address (эквивалентно $cagent.addres) – сокращённая форма для $cagent.getAddress())
Можно, также, формировать цепочки вызовов:
$cagent.Person.Address.Town – вернёт название города из адреса контрагента
4.Можно использовать методы с параметрами:
$page.setTitle('Моя страница') $myObject.calculateSomeValue(1, 4, 432)
5.Если ссылка указывает на массив данных (список), то к элементам этого массива можно обращаться по индексу:
$list[2]
6.Если в контексте не будет объекта, соответствующего ссылке, или текстовое представление объекта будет пустым, то в результирующий файл будет выведено выражение без изменений.
Например: Здравствуйте, $recepient.fullName – если в контексте не будет переменной с id = recepient или св-во fullName объекта с id = recepient является пустым, то в результирующем файле данное выражение выведется без изменений: Здравствуйте, $recepient.fullName. Чтобы в данном случае выражение $recepient.fullName игнорировалось в результирующем файле, нужно вставить символ '!' после $: $!recepient.fullName (или $!{recepient.fullName}).
7.Кроме обращения к переменным, в контексте есть возможность использовать следующие директивы (директива начинается с символа #):
•#set – используется для установки значений в переменную #set ( $text = “text”) #set ( $person.name = “Иван”)
•#If / Elseif / Else – используются для определения условий отображения определённого блока
#if( $foo < 10 ) ... #elseif( $foo == 10 ) ... #else ... #end
В условии могут использоваться логические операторы: И (&& или AND), ИЛИ (|| или OR), НЕ (! или NOT).
•#foreach – для прохода по элементам списка #foreach( $customer in $customerList ) <tr><td>$foreach.count</td><td>$customer.Name</td></tr> #end $foreach.count — выводит счетчик цикла
Для более подробной информации о VTL обращаться к документации (см. вверху ссылки).
Форматирование выводимых данных доступно посредством использования функций bo.НАЗВАНИЕ_ФУНКЦИИ(ПАРАМЕТРЫ), например, ${bo.formatDate(signDate, “dd.MM.yyyy”)}. Результат: в результирующем сообщении будет отображена дата в формате ДД.ММ.ГГГГ.
Доступные функции (bo.)
При формировании уведомления в контексте доступны следующие объекты
Описание классов, использующихся как поля объектов, доступных в контексте
|
Для динамического формирования шаблонов сообщений используется обработчик шаблонов Apache Velocity, с описанием которого можно ознакомиться в данных источниках:
http://ru.wikipedia.org/wiki/Apache_Velocity http://velocity.apache.org/engine/devel/user-guide.html#About_this_Guide
Для написания шаблонов используется язык Velocity Template Language (VTL).
Основные понятия и правила VTL:
1.Обращение к переменным (ссылкам) должно начинаться с $ - $EXPRESSION, при этом фигурные скобки необязательны. Выражение ${a} эквивалентно $a. Фигурные скобки следует использовать, когда за названием переменной сразу следует обычный текст:
$person.ageлет – некорректно ${person.age}лет – корректно
2.Имя переменной должно начинаться с латинской буквы (a..z, A..Z), а состоять может из следующих символов: a..z, A..Z, 0..9, - , _ .
3.Обращаться к свойствам можно следующим образом:
$cagent.Address (эквивалентно $cagent.addres) – сокращённая форма для $cagent.getAddress())
Можно, также, формировать цепочки вызовов:
$cagent.Person.Address.Town – вернёт название города из адреса контрагента
4.Можно использовать методы с параметрами:
$page.setTitle('Моя страница') $myObject.calculateSomeValue(1, 4, 432)
5.Если ссылка указывает на массив данных (список), то к элементам этого массива можно обращаться по индексу:
$list[2]
6.Если в контексте не будет объекта, соответствующего ссылке, или текстовое представление объекта будет пустым, то в результирующий файл будет выведено выражение без изменений.
Например: Здравствуйте, $recepient.fullName – если в контексте не будет переменной с id = recepient или св-во fullName объекта с id = recepient является пустым, то в результирующем файле данное выражение выведется без изменений: Здравствуйте, $recepient.fullName. Чтобы в данном случае выражение $recepient.fullName игнорировалось в результирующем файле, нужно вставить символ '!' после $: $!recepient.fullName (или $!{recepient.fullName}).
7.Кроме обращения к переменным, в контексте есть возможность использовать следующие директивы (директива начинается с символа #):
•#set – используется для установки значений в переменную #set ( $text = “text”) #set ( $person.name = “Иван”)
•#If / Elseif / Else – используются для определения условий отображения определённого блока
#if( $foo < 10 ) ... #elseif( $foo == 10 ) ... #else ... #end
В условии могут использоваться логические операторы: И (&& или AND), ИЛИ (|| или OR), НЕ (! или NOT).
•#foreach – для прохода по элементам списка #foreach( $customer in $customerList ) <tr><td>$foreach.count</td><td>$customer.Name</td></tr> #end $foreach.count — выводит счетчик цикла
Для более подробной информации о VTL обращаться к документации (см. вверху ссылки).
Форматирование выводимых данных доступно посредством использования функций bo.НАЗВАНИЕ_ФУНКЦИИ(ПАРАМЕТРЫ), например, ${bo.formatDate(signDate, “dd.MM.yyyy”)}. Результат: в результирующем сообщении будет отображена дата в формате ДД.ММ.ГГГГ.
Доступные функции (bo.)
Доступные функции (helper.)
При формировании уведомления в контексте доступны следующие объекты
Описание классов, использующихся как поля объектов, доступных в контексте
|
Для динамического формирования шаблонов сообщений используется обработчик шаблонов Apache Velocity, с описанием которого можно ознакомиться в данных источниках:
http://ru.wikipedia.org/wiki/Apache_Velocity http://velocity.apache.org/engine/devel/user-guide.html#About_this_Guide
Для написания шаблонов используется язык Velocity Template Language (VTL).
Основные понятия и правила VTL:
1.Обращение к переменным (ссылкам) должно начинаться с $ - $EXPRESSION, при этом фигурные скобки необязательны. Выражение ${a} эквивалентно $a. Фигурные скобки следует использовать, когда за названием переменной сразу следует обычный текст:
$person.ageлет – некорректно ${person.age}лет – корректно
2.Имя переменной должно начинаться с латинской буквы (a..z, A..Z), а состоять может из следующих символов: a..z, A..Z, 0..9, - , _ .
3.Обращаться к свойствам можно следующим образом:
$cagent.Address (эквивалентно $cagent.addres) – сокращённая форма для $cagent.getAddress())
Можно, также, формировать цепочки вызовов:
$cagent.Person.Address.Town – вернёт название города из адреса контрагента
4.Можно использовать методы с параметрами:
$page.setTitle('Моя страница') $myObject.calculateSomeValue(1, 4, 432)
5.Если ссылка указывает на массив данных (список), то к элементам этого массива можно обращаться по индексу:
$list[2]
6.Если в контексте не будет объекта, соответствующего ссылке, или текстовое представление объекта будет пустым, то в результирующий файл будет выведено выражение без изменений.
Например: Здравствуйте, $recepient.fullName – если в контексте не будет переменной с id = recepient или св-во fullName объекта с id = recepient является пустым, то в результирующем файле данное выражение выведется без изменений: Здравствуйте, $recepient.fullName. Чтобы в данном случае выражение $recepient.fullName игнорировалось в результирующем файле, нужно вставить символ '!' после $: $!recepient.fullName (или $!{recepient.fullName}).
7.Кроме обращения к переменным, в контексте есть возможность использовать следующие директивы (директива начинается с символа #):
•#set – используется для установки значений в переменную #set ( $text = “text”) #set ( $person.name = “Иван”)
•#If / Elseif / Else – используются для определения условий отображения определённого блока
#if( $foo < 10 ) ... #elseif( $foo == 10 ) ... #else ... #end
В условии могут использоваться логические операторы: И (&& или AND), ИЛИ (|| или OR), НЕ (! или NOT).
•#foreach – для прохода по элементам списка #foreach( $customer in $customerList ) <tr><td>$foreach.count</td><td>$customer.Name</td></tr> #end $foreach.count — выводит счетчик цикла
Для более подробной информации о VTL обращаться к документации (см. вверху ссылки).
Форматирование выводимых данных доступно посредством использования функций bo.НАЗВАНИЕ_ФУНКЦИИ(ПАРАМЕТРЫ), например, ${bo.formatDate(signDate, “dd.MM.yyyy”)}. Результат: в результирующем сообщении будет отображена дата в формате ДД.ММ.ГГГГ.
Доступные функции (bo.)
Доступные функции (helper.)
При формировании уведомления в контексте доступны следующие объекты
Описание классов, использующихся как поля объектов, доступных в контексте
|
Для динамического описания выражений используется EL.
С описанием EL можно ознакомиться в данных источниках:
http://ru.wikipedia.org/wiki/Expression_Language http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html http://ru.wikipedia.org/wiki/Java
Выражение должно указываться внутри конструкции #{EXPRESSION}. Для написания выражений, которые должны пониматься Excel как формула, необходимо использовать конструкцию вида #{[EXPRESSION]}.
Форматирование выводимых данных доступно посредством использования функций bo: НАЗВАНИЕ_ФУНКЦИИ (ПАРАМЕТРЫ), например, #{bo:formatDate(signDate, “dd.MM.yyyy”)}. Результат будет отображена в ячейке XLS дата в формате ДД.ММ.ГГГГ.
Доступные функции (bo:)
Для итерации по данным используется тег sh:repeat.
Пример использования: <sh:repeat var=”item” items=”#{items}” varStatus=”stat” countItems="countItems"></sh:repeat>, где: •repeat – зарезирвированное название в системе для тег итерации по коллекции с данными •var – название переменной, в которой хранится текущий элемент цикла •items – коллекция с данными, которая доступна при формировании документа •countItem – переменная, в которой хранится количество элементов в коллекции •varStatus – переменная, в которой хранится состояние прохода по коллекции
В данной переменной доступно два свойства index, first, last, где: •index – количество пройденных элементов в цикле •first – первая запись •last – последняя запись
Данный тег должен находиться в одной строке, т.е. закрытие на другой строке недопустимо.
Таким образом, получается невозможность формирования за один проход цикла нескольких строк XLS. Для этого необходимо при создании шаблона документа указывать Вид шаблона = Составной, далее требуется заполнить соответсвующие поля Код подшаблона и Подшаблон документа. В XLS документе строка с описанием тега для итерации по данным будет иметь следующий вид:
<sh:КОД_ПОДШАБЛОНА items=”#{items}” var=”item” varStatusTemplate=”idx”/>, где: •var – название переменной, в которой хранится текущий элемент цикла •items – колекция с данными, которая доступна при формировании документа •varStatusTemplate – переменная, в которой хранится состояние прохода по коллекции
Описание подшаблона документа идентично описанию простого документа.
При формировании документа в контексте доступны следующие объекты
Описание классов, использующихся как поля объектов, доступных в контексте
В зависимости от типа поля они могут быть представленны различными наследниками класса FieldWrapper.
|
Для динамического формирования шаблонов сообщений используется обработчик шаблонов Apache Velocity, с описанием которого можно ознакомиться в данных источниках:
http://ru.wikipedia.org/wiki/Apache_Velocity http://velocity.apache.org/engine/devel/user-guide.html#About_this_Guide
Для написания шаблонов используется язык Velocity Template Language (VTL).
Основные понятия и правила VTL:
1.Обращение к переменным (ссылкам) должно начинаться с $ - $EXPRESSION, при этом фигурные скобки необязательны. Выражение ${a} эквивалентно $a. Фигурные скобки следует использовать, когда за названием переменной сразу следует обычный текст:
$person.ageлет – некорректно ${person.age}лет – корректно
2.Имя переменной должно начинаться с латинской буквы (a..z, A..Z), а состоять может из следующих символов: a..z, A..Z, 0..9, - , _ .
3.Обращаться к свойствам можно следующим образом:
$cagent.Address (эквивалентно $cagent.addres) – сокращённая форма для $cagent.getAddress())
Можно, также, формировать цепочки вызовов:
$cagent.Person.Address.Town – вернёт название города из адреса контрагента
4.Можно использовать методы с параметрами:
$page.setTitle('Моя страница') $myObject.calculateSomeValue(1, 4, 432)
5.Если ссылка указывает на массив данных (список), то к элементам этого массива можно обращаться по индексу:
$list[2]
6.Если в контексте не будет объекта, соответствующего ссылке, или текстовое представление объекта будет пустым, то в результирующий файл будет выведено выражение без изменений.
Например: Здравствуйте, $recepient.fullName – если в контексте не будет переменной с id = recepient или св-во fullName объекта с id = recepient является пустым, то в результирующем файле данное выражение выведется без изменений: Здравствуйте, $recepient.fullName. Чтобы в данном случае выражение $recepient.fullName игнорировалось в результирующем файле, нужно вставить символ '!' после $: $!recepient.fullName (или $!{recepient.fullName}).
7.Кроме обращения к переменным, в контексте есть возможность использовать следующие директивы (директива начинается с символа #):
•#set – используется для установки значений в переменную #set ( $text = “text”) #set ( $person.name = “Иван”)
•#If / Elseif / Else – используются для определения условий отображения определённого блока
#if( $foo < 10 ) ... #elseif( $foo == 10 ) ... #else ... #end
В условии могут использоваться логические операторы: И (&& или AND), ИЛИ (|| или OR), НЕ (! или NOT).
•#foreach – для прохода по элементам списка #foreach( $customer in $customerList ) <tr><td>$foreach.count</td><td>$customer.Name</td></tr> #end $foreach.count — выводит счетчик цикла
Для более подробной информации о VTL обращаться к документации (ссылки вверху).
Форматирование выводимых данных доступно посредством использования функций bo.НАЗВАНИЕ_ФУНКЦИИ(ПАРАМЕТРЫ), например, ${bo.formatDate(signDate, “dd.MM.yyyy”)}. Результат: в результирующем сообщении будет отображена дата в формате ДД.ММ.ГГГГ.
Доступные функции (bo.)
При формировании уведомления в контексте доступны следующие объекты
Описание классов, использующихся как поля объектов, доступных в контексте
|
Для динамического описания выражений используется EL.
С описанием EL можно ознакомиться в данных источниках:
http://ru.wikipedia.org/wiki/Expression_Language http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html http://ru.wikipedia.org/wiki/Java
Выражение должно указываться внутри конструкции #{EXPRESSION}. Для написания выражений, которые должны пониматься Excel как формула, необходимо использовать конструкцию вида #{[EXPRESSION]}.
Форматирование выводимых данных доступно посредством использования функций bo: НАЗВАНИЕ_ФУНКЦИИ (ПАРАМЕТРЫ), например, #{bo:formatDate(signDate, “dd.MM.yyyy”)}. Результат будет отображена в ячейке XLS дата в формате ДД.ММ.ГГГГ.
Доступные функции (bo:)
Для итерации по данным используется тег sh:repeat.
Пример использования: <sh:repeat var=”item” items=”#{items}” varStatus=”stat” countItems="countItems"></sh:repeat>, где: •repeat – зарезирвированное название в системе для тег итерации по коллекции с данными •var – название переменной, в которой хранится текущий элемент цикла •items – коллекция с данными, которая доступна при формировании документа •countItem – переменная, в которой хранится количество элементов в коллекции •varStatus – переменная, в которой хранится состояние прохода по коллекции
В данной переменной доступно два свойства index, first, last, где: •index – количество пройденных элементов в цикле •first – первая запись •last – последняя запись
Данный тег должен находиться в одной строке, т.е. закрытие на другой строке недопустимо.
Таким образом, получается невозможность формирования за один проход цикла нескольких строк XLS. Для этого необходимо при создании шаблона документа указывать Вид шаблона = Составной, далее требуется заполнить соответсвующие поля Код подшаблона и Подшаблон документа. В XLS документе строка с описанием тега для итерации по данным будет иметь следующий вид:
<sh:КОД_ПОДШАБЛОНА items=”#{items}” var=”item” varStatusTemplate=”idx”/>, где: •var – название переменной, в которой хранится текущий элемент цикла •items – колекция с данными, которая доступна при формировании документа •varStatusTemplate – переменная, в которой хранится состояние прохода по коллекции
Описание подшаблона документа идентично описанию простого документа.
При формировании документа в контексте доступны следующие объекты
|
Для динамического описания выражений используется EL.
С описанием EL можно ознакомиться в данных источниках:
http://ru.wikipedia.org/wiki/Expression_Language http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html http://ru.wikipedia.org/wiki/Java
Выражение должно указываться внутри конструкции #{EXPRESSION}. Для написания выражений, которые должны пониматься Excel как формула, необходимо использовать конструкцию вида #{[EXPRESSION]}.
Форматирование выводимых данных доступно посредством использования функций bo: НАЗВАНИЕ_ФУНКЦИИ (ПАРАМЕТРЫ), например, #{bo:formatDate(signDate, “dd.MM.yyyy”)}. Результат будет отображена в ячейке XLS дата в формате ДД.ММ.ГГГГ.
Доступные функции (bo:)
Для итерации по данным используется тег sh:repeat.
Пример использования: <sh:repeat var=”item” items=”#{items}” varStatus=”stat” countItems="countItems"></sh:repeat>, где: •repeat – зарезирвированное название в системе для тег итерации по коллекции с данными •var – название переменной, в которой хранится текущий элемент цикла •items – коллекция с данными, которая доступна при формировании документа •countItem – переменная, в которой хранится количество элементов в коллекции •varStatus – переменная, в которой хранится состояние прохода по коллекции
В данной переменной доступно два свойства index, first, last, где: •index – количество пройденных элементов в цикле •first – первая запись •last – последняя запись
Данный тег должен находиться в одной строке, т.е. закрытие на другой строке недопустимо.
Таким образом, получается невозможность формирования за один проход цикла нескольких строк XLS. Для этого необходимо при создании шаблона документа указывать Вид шаблона = Составной, далее требуется заполнить соответсвующие поля Код подшаблона и Подшаблон документа. В XLS документе строка с описанием тега для итерации по данным будет иметь следующий вид:
<sh:КОД_ПОДШАБЛОНА items=”#{items}” var=”item” varStatusTemplate=”idx”/>, где: •var – название переменной, в которой хранится текущий элемент цикла •items – колекция с данными, которая доступна при формировании документа •varStatusTemplate – переменная, в которой хранится состояние прохода по коллекции
Описание подшаблона документа идентично описанию простого документа.
При формировании документа в контексте доступны следующие объекты
|
Для динамического формирования шаблонов сообщений используется обработчик шаблонов Apache Velocity, с описанием которого можно ознакомиться в данных источниках:
http://ru.wikipedia.org/wiki/Apache_Velocity http://velocity.apache.org/engine/devel/user-guide.html#About_this_Guide
Для написания шаблонов используется язык Velocity Template Language (VTL).
Основные понятия и правила VTL:
1.Обращение к переменным (ссылкам) должно начинаться с $ - $EXPRESSION, при этом фигурные скобки необязательны. Выражение ${a} эквивалентно $a. Фигурные скобки следует использовать, когда за названием переменной сразу следует обычный текст:
$person.ageлет – некорректно ${person.age}лет – корректно
2.Имя переменной должно начинаться с латинской буквы (a..z, A..Z), а состоять может из следующих символов: a..z, A..Z, 0..9, - , _ .
3.Обращаться к свойствам можно следующим образом:
$cagent.Address (эквивалентно $cagent.addres) – сокращённая форма для $cagent.getAddress())
Можно, также, формировать цепочки вызовов:
$cagent.Person.Address.Town – вернёт название города из адреса контрагента
4.Можно использовать методы с параметрами:
$page.setTitle('Моя страница') $myObject.calculateSomeValue(1, 4, 432)
5.Если ссылка указывает на массив данных (список), то к элементам этого массива можно обращаться по индексу:
$list[2]
6.Если в контексте не будет объекта, соответствующего ссылке, или текстовое представление объекта будет пустым, то в результирующий файл будет выведено выражение без изменений.
Например: Здравствуйте, $recepient.fullName – если в контексте не будет переменной с id = recepient или св-во fullName объекта с id = recepient является пустым, то в результирующем файле данное выражение выведется без изменений: Здравствуйте, $recepient.fullName. Чтобы в данном случае выражение $recepient.fullName игнорировалось в результирующем файле, нужно вставить символ '!' после $: $!recepient.fullName (или $!{recepient.fullName}).
7.Кроме обращения к переменным, в контексте есть возможность использовать следующие директивы (директива начинается с символа #):
•#set – используется для установки значений в переменную #set ( $text = “text”) #set ( $person.name = “Иван”)
•#If / Elseif / Else – используются для определения условий отображения определённого блока
#if( $foo < 10 ) ... #elseif( $foo == 10 ) ... #else ... #end
В условии могут использоваться логические операторы: И (&& или AND), ИЛИ (|| или OR), НЕ (! или NOT).
•#foreach – для прохода по элементам списка #foreach( $customer in $customerList ) <tr><td>$foreach.count</td><td>$customer.Name</td></tr> #end $foreach.count — выводит счетчик цикла
Для более подробной информации о VTL обращаться к документации (ссылки вверху).
Форматирование выводимых данных доступно посредством использования функций bo.НАЗВАНИЕ_ФУНКЦИИ(ПАРАМЕТРЫ), например, ${bo.formatDate(signDate, “dd.MM.yyyy”)}. Результат: в результирующем сообщении будет отображена дата в формате ДД.ММ.ГГГГ.
Доступные функции (bo.)
При формировании уведомления в контексте доступны следующие объекты
Описание классов, использующихся как поля объектов, доступных в контексте
|
Для динамического формирования шаблонов сообщений используется обработчик шаблонов Apache Velocity, с описанием которого можно ознакомиться в данных источниках:
http://ru.wikipedia.org/wiki/Apache_Velocity http://velocity.apache.org/engine/devel/user-guide.html#About_this_Guide
Для написания шаблонов используется язык Velocity Template Language (VTL).
Основные понятия и правила VTL:
1.Обращение к переменным (ссылкам) должно начинаться с $ - $EXPRESSION, при этом фигурные скобки необязательны. Выражение ${a} эквивалентно $a. Фигурные скобки следует использовать, когда за названием переменной сразу следует обычный текст:
$person.ageлет – некорректно ${person.age}лет – корректно
2.Имя переменной должно начинаться с латинской буквы (a..z, A..Z), а состоять может из следующих символов: a..z, A..Z, 0..9, - , _ .
3.Обращаться к свойствам можно следующим образом:
$cagent.Address (эквивалентно $cagent.addres) – сокращённая форма для $cagent.getAddress())
Можно, также, формировать цепочки вызовов:
$cagent.Person.Address.Town – вернёт название города из адреса контрагента
4.Можно использовать методы с параметрами:
$page.setTitle('Моя страница') $myObject.calculateSomeValue(1, 4, 432)
5.Если ссылка указывает на массив данных (список), то к элементам этого массива можно обращаться по индексу:
$list[2]
6.Если в контексте не будет объекта, соответствующего ссылке, или текстовое представление объекта будет пустым, то в результирующий файл будет выведено выражение без изменений.
Например: Здравствуйте, $recepient.fullName – если в контексте не будет переменной с id = recepient или св-во fullName объекта с id = recepient является пустым, то в результирующем файле данное выражение выведется без изменений: Здравствуйте, $recepient.fullName. Чтобы в данном случае выражение $recepient.fullName игнорировалось в результирующем файле, нужно вставить символ '!' после $: $!recepient.fullName (или $!{recepient.fullName}).
7.Кроме обращения к переменным, в контексте есть возможность использовать следующие директивы (директива начинается с символа #):
•#set – используется для установки значений в переменную #set ( $text = “text”) #set ( $person.name = “Иван”)
•#If / Elseif / Else – используются для определения условий отображения определённого блока
#if( $foo < 10 ) ... #elseif( $foo == 10 ) ... #else ... #end
В условии могут использоваться логические операторы: И (&& или AND), ИЛИ (|| или OR), НЕ (! или NOT).
•#foreach – для прохода по элементам списка #foreach( $customer in $customerList ) <tr><td>$foreach.count</td><td>$customer.Name</td></tr> #end $foreach.count — выводит счетчик цикла
Для более подробной информации о VTL обращаться к документации (ссылки вверху).
Форматирование выводимых данных доступно посредством использования функций bo.НАЗВАНИЕ_ФУНКЦИИ(ПАРАМЕТРЫ), например, ${bo.formatDate(signDate, “dd.MM.yyyy”)}. Результат: в результирующем сообщении будет отображена дата в формате ДД.ММ.ГГГГ.
Доступные функции (bo.)
При формировании уведомления в контексте доступны следующие объекты
Описание классов, использующихся как поля объектов, доступных в контексте
|
Для динамического описания выражений используется EL.
С описанием EL можно ознакомиться в данных источниках:
http://ru.wikipedia.org/wiki/Expression_Language http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html http://ru.wikipedia.org/wiki/Java
Выражение должно указываться внутри конструкции #{EXPRESSION}. Для написания выражений, которые должны пониматься Excel как формула, необходимо использовать конструкцию вида #{[EXPRESSION]}.
Форматирование выводимых данных доступно посредством использования функций bo: НАЗВАНИЕ_ФУНКЦИИ (ПАРАМЕТРЫ), например, #{bo:formatDate(signDate, “dd.MM.yyyy”)}. Результат будет отображена в ячейке XLS дата в формате ДД.ММ.ГГГГ.
Доступные функции (bo:)
Для итерации по данным используется тег sh:repeat.
Пример использования: <sh:repeat var=”item” items=”#{items}” varStatus=”stat” countItems="countItems"></sh:repeat>, где: •repeat – зарезирвированное название в системе для тег итерации по коллекции с данными •var – название переменной, в которой хранится текущий элемент цикла •items – коллекция с данными, которая доступна при формировании документа •countItem – переменная, в которой хранится количество элементов в коллекции •varStatus – переменная, в которой хранится состояние прохода по коллекции
В данной переменной доступно два свойства index, first, last, где: •index – количество пройденных элементов в цикле •first – первая запись •last – последняя запись
Данный тег должен находиться в одной строке, т.е. закрытие на другой строке недопустимо.
Таким образом, получается невозможность формирования за один проход цикла нескольких строк XLS. Для этого необходимо при создании шаблона документа указывать Вид шаблона = Составной, далее требуется заполнить соответсвующие поля Код подшаблона и Подшаблон документа. В XLS документе строка с описанием тега для итерации по данным будет иметь следующий вид:
<sh:КОД_ПОДШАБЛОНА items=”#{items}” var=”item” varStatusTemplate=”idx”/>, где: •var – название переменной, в которой хранится текущий элемент цикла •items – колекция с данными, которая доступна при формировании документа •varStatusTemplate – переменная, в которой хранится состояние прохода по коллекции
Описание подшаблона документа идентично описанию простого документа.
При формировании документа в контексте доступны следующие объекты
Описание классов, использующихся как поля объектов, доступных в контексте
|
Для динамического формирования шаблонов сообщений используется обработчик шаблонов Apache Velocity. Доступные функции При формировании документа в контексте доступны следующие объекты
При формировании уведомления в контексте доступны следующие объекты
Описание классов, использующихся как поля объектов, доступных в контексте
|
В системе реализована возможность включения в шаблоны договоров страхования изображения штрих-кодов двух типов: QR-кодов и кодов PDF417. Выполнить данное включение возможно с помощью специальных методов, позволяющих указывать параметры формируемого кода (ширина, высота, размер единичного блока в коде, перечень реквизитов договора страхования, из которых формируется код). Также, метод позволяет шифровать данные, чтобы при считывании инфорамции стандартными считывателями кодов не было понятно, как код формируется и, соответственно, не было возможности его подделать.
Перечень реквизитов договоров, которые возможно включить в штрих-коды, а также описание методов, которые позволяют выполнить данное включение, см. в приведенных ниже таблицах.
Указанные параметры могут быть включены в код все или частично, что связано с размером формируемого кода, т.к. чем меньше размер, тем меньше информации в него нужно включать, чтобы обеспечить возможность чтения кода. Т.к. в разных договорах возможны разные размеры кода, то и в код будет включаться разная информация. Конкретный перечень методов для каждого шаблона определяется путем подбора при создании шаблона.
Для вывода изображение в XLS файлы используется тег sh:barcode.
Пример использования: <sh:barcode format="PDF_417" data="#{contractBarcodeDataBuilder.build(proposal.contractConditions, 8)}" width="200" height="100"/>, где: •barcode – зарезирвированное название в системе для тега вывода изображения в XLS •format – формат штрих-кода (PDF_417, QR_CODE) •data – данные штрих-кода •width – ширина штрих-кода в пикселях (числовое значение) •height – высота штрих-кода в пикселях (числовое значение)
Высота и ширина штрих-кода может измениться при формировании, если текст, шифруемый в изображении, будет не помещаться в указанные изначально размеры.
При формировании шаблона договора для формирования данных штрих-кода можно воспользоваться специальным выражением: #{contractBarcodeDataBuilder.build(proposal.contractConditions, ВЕРСИЯ_РЕКВИЗИТОВ)}, где ВЕРСИЯ_РЕКВИЗИТОВ числовое значение от 1 до 8, указывающее количество реквизитов договора, которые необходимо включить в штрих-код.
Подробнее о формировании штрих-кодов см. раздел руководства Создание штрих-кода и включение его в бланк договора
|
Шаблоны типа "Акт выполненных работ" будут использоваться при настройке форм актов выполненных работ в модуле "Управление" — "Комиссионные" — "Настройка АВР" (в поле "Шаблон документа" будут подтягиваться названия активных шаблонов с типом "Акт выполненных работ", подробнее см. раздел руководства "Комиссионное вознаграждение" — "Настройки КВ" — "Настройка АВР (шаблоны)").
На странице просмотра акта приема-передачи (в статусе отличном от "черновик" и "ожидает решения") в блоке "Формируемые документы" будут доступны для печати все документы с типом "Акт приема-передачи бланков", в срок действия которых попадает дата формирования акта приема-передачи. Данные документы будут размещаться под существующим документом "Акт приема-передачи бланков".
При формировании шаблонов документов допустимо использование системных переменных, которые регистрируются в пользовательском справочнике "Системные переменные". Чтобы использовать элементы справочника "Системные переменные" (код "system_variables") в шаблоне xls, в справочнике условий формирования шаблонов или при создании шаблонов системных уведомлений нужно указать #{boDict.getValue('КОД_ЭЛЕМЕНТА_СПРАВОЧНИКА')} (в шаблонах системных уведомлений вместо '#' нужно указывать '$'). Данная функция достает элемент по коду (первое поле в элементе справочника - "Код") и выводит значение, которое содержится во втором поле элемента справочника ("Значение"). В данном справочнике можно использовать значения, которые содержат EL-выражения (не путать с VTL), и с их помощью обращаться к элементам из контекста формирования документа или уведомления. Эти выражения будут вычислены.
Шаблоны типа "Перечень на выплату КВ" будут использоваться при формировании печатных форм реестров на выплату агентского вознаграждения, которые будут доступны в блоке "Формируемые документы" закладки "Договора" карточки перечня договоров на выплату комиссионного вознаграждения.
|