Атрибуты. Свойство attributes
Glossary Item Box
Основные свойства атрибутов
Атрибуты схемы имеют следующие основные свойства:
- dataValueType — тип данных атрибута. Будет использоваться при генерации представления. Доступные типы данных представлены перечислением Terrasoft.DataValueType.
- type — тип колонки. Необязательный параметр, который используется во внутренних механизмах BaseViewModel. Доступные типы колонок представлены перечислением Terrasoft.ViewModelColumnType.
- value — значение атрибута. Значение этого параметра будет установлено в модель представления при ее создании.
В атрибуте value можно задавать числовые, строковые и логические значения.
Если тип атрибута подразумевает использование значения ссылочного типа (массив, объект, коллекция и т.д.), то его начальное значение необходимо инициализировать с помощью методов.
Пример использования основных свойств атрибутов:
attributes: { // Имя атрибута. "NameAttribute": { // Тип данных. "dataValueType": this.Terrasoft.DataValueType.TEXT, // Тип колонки. "type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN, // Значение по умолчанию. "value": "NameValue" } }
Дополнительные свойства атрибутов
Атрибуты могут быть дополнены такими свойствами:
- caption — заголовок атрибута.
- isRequired — признак обязательности заполнения атрибута.
- dependencies — зависимость от другого атрибута модели. Например, установка атрибута в зависимости от значения другого атрибута. Используется для создания вычисляемых полей. Подробнее о механизме вычисляемых полей и использовании данного параметра можно узнать из статьи "Добавление вычисляемых полей".
-
lookupListConfig — свойство, отвечающее за свойства поля-справочника. Подробнее об использовании данного параметра можно узнать из статьи "Применение фильтрации к справочным полям". Это конфигурационный объект, который может содержать в себе следующие опциональные свойства:
- сolumns — массив имен колонок, которые будут добавлены к запросу дополнительно к колонке Id и первичной для отображения колонке.
- orders — массив конфигурационных объектов, которые определяют сортировку данных при отображении.
- filter — метод, возвращающий объект класса Terrasoft.BaseFilter или его наследника, который, в свою очередь, будет применен к запросу. Не может использоваться совместно со свойством filters.
- filters — массив фильтров (методов, возвращающих коллекции класса Terrasoft.FilterGroup). Не может использоваться совместно со свойством filter.
Пример использования дополнительных свойств атрибутов:
attributes: { // Имя атрибута. "Client": { // Заголовок атрибута. "caption": { "bindTo": "Resources.Strings.Client" }, // Атрибут обязателен для заполнения. "isRequired": true }, // Имя атрибута. "ResponsibleDepartment": { lookupListConfig: { // Дополнительные колонки. columns: [ "SalesDirector" ], // Колонка сортировки. orders: [ { columnPath: "FromBaseCurrency" } ], // Функция определения фильтра. filter: function() { // Возвращает фильтр по колонке Type, которая равна константе Competitor. return this.Terrasoft.createColumnFilterWithParameter( this.Terrasoft.ComparisonType.EQUAL, "Type", ConfigurationConstants.AccountType.Competitor); } } }, // Имя атрибута. "Probability": { // Определение зависимости колонки. "dependencies": [ { // Зависит от колонки Stage. "columns": [ "Stage" ], // Имя метода-обработчика изменения колонки Stage. // Метод setProbabilityByStage() определен в свойстве methods // объекта схемы. "methodName": "setProbabilityByStage" } ] } }, methods: { // Метод-обработчик изменения колонки Stage. setProbabilityByStage: function() { // Получение значения колонки Stage. var stage = this.get("Stage"); // Условие изменения колонки Probability. if (stage.value && stage.value === ConfigurationConstants.Opportunity.Stage.RejectedByUs) { // Установка значения колонки Probability. this.set("Probability", 0); } } }