Настройка автонумерации
Настройка автонумерации#
Откройте
odm
класса;Укажите для нужного атрибута свойство
type
=autonum
;Создайте внутри тега
attr
вложенный тегautonum
. Укажите в нем следующие свойства:id
- уникальный в рамках класса идентификатор автонумерации.isHoleFill
- заполнение пропусков (опционально). Если в настройках автонумерации указан разрез, то автоматически включено. Чтобы выключить нужно прописатьisHoleFill
=false
.
Внутри тега
autonum
создайте вложенные теги:mask
- маска автонумерации. Маска должна собой представлять jexl-скрипт, с экранированием спец. символов. Для каждого автонумерующегося атрибута может быть настроена своя маска автонумерации. В маске доступен для использования параметр сounter, который будет заменен на значение счетчика.dimension
- разрез автонумерации:Установите у тега следующие свойства:
name
- название разреза. Задается всегда, даже если используется автонумерация без разреза;attr
- атрибут, в рамках которого рассматривается разрез. Разрезы указываются из атрибутов класса. Используется только для автонумерации с разрезом.order
- порядковый номер. Если его не задать, то разрезы будут обрабатываться в алфавитном порядке. Используется для автонумерации с разрезом по нескольким атрибутам.
Дополнительные возможности:
При необходимости можно добавить более одного тега
dimension
. В этом случае разрез будет реализован по нескольким атрибутам.К значениям атрибутов разреза возможно применение выражений, они указываются во вложенном теге
expression
дляdimension
. На каждый разрез может быть не больше одного выражения. Значение, указанное в элементеexpression
, будет передано в обработчик Jexl-скриптов, параметр, заменяемый на значение атрибута разреза, называетсяdimValue
.
Пример автонумерации без разреза:
<attr name="sNoDep" caption="Автонумерация без разреза" attribute-type="Varchar" type="autoNum" isHeadLine="true"> <autonum id="1"> <mask>lpad(counter,3,"0")</mask> <dimension name="dim1"/> </autonum> </attr>
Пример указания нескольких разрезов:
<attr name="sTwoDepExpr" caption="Автонумерация с 2 разрезами" attribute-type="Varchar" type="autoNum"> <autonum id="3"> <mask>lpad(counter,3,"0")</mask> <dimension name="nNumber" attr="nNumber" order="10" /> <dimension name="dDate_dim" attr="dDate" order="20"> <expression>truncDate(dimValue)</expression> </dimension> </autonum> </attr>
Сформируйте окружение класса:
Сформируйте исходный код для класса (
generate sources
);Выполните сборку проекта (
build
);Сформируйте таблицы класса (
generate tables
)