Друзья, подскажите, пожалуйста, информацию по данной части кода, который является частью общей схемы. Я не понимаю что за Place:
"UsrPlace": {
// Настройка правила видимости поля [UsrPlace] по колонке [UsrRayonN].
"BindParametrVisibile
Place
ByType": {
это что мы атрибут создали для хранения идентификатора нужного района где указали PlaceID?
В данном случае просто не указывается "ID", оставляем просто Place ?
Вот код:
define("UsrUsrCadress1Page", ["BusinessRuleModule", "ConfigurationConstants"],
function(BusinessRuleModule, ConfigurationConstants) {
return {
entitySchemaName: "UsrCadress",
attributes: {
"PlaceId": {
"dataValueType": Terrasoft.DataValueType.TEXT,
"type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
"value": ""
}
},
methods: {
// Метод инициализации схемы.
init: function() {
this.callParent(arguments);
this.initPlaceId();
},
// Метод определения района.
initPlaceId: function() {
var esq = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "UsrRayonSp"});
// Сохранение контекста модуля в переменную.
var scope = this;
esq.addColumn("Name", "Name");
// Выполнение запроса.
esq.getEntityCollection(function(result) {
if (result.success) {
// Перебор значений справочника Районы.
result.collection.each(function(item) {
// Если значение колонки [Name] — [Район1].
if (item.get("Name") === "Район1") {
// Получение идентификатора для Район1.
var Id = item.get("Id");
// Установка значения атрибута.
scope.set("PlaceId", Id);
}
});
}
}, this);
}
},
details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
diff: /**SCHEMA_DIFF*/[
{
// Метаданные для добавления поля [Где встречаемся].
"operation": "insert",
"parentName": "Header",
"propertyName": "items",
"name": "UsrPlace",
"values": {
"caption": {"bindTo": "Resources.Strings.PlaceCaption"},
"layout": { "column": 0, "row": 4, "colSpan": 12 }
}
},
{
"operation": "insert",
"name": "UsrCompany68a57d28-f347-402e-b0dd-212721e10da6",
"values": {
"layout": {
"colSpan": 12,
"rowSpan": 1,
"column": 12,
"row": 0,
"layoutName": "Header"
},
"bindTo": "UsrCompany"
},
"parentName": "Header",
"propertyName": "items",
"index": 0
},
{
"operation": "insert",
"name": "UsrStreet80970a2b-d253-4cc0-8131-1309a94a725c",
"values": {
"layout": {
"colSpan": 12,
"rowSpan": 1,
"column": 0,
"row": 1,
"layoutName": "Header"
},
"bindTo": "UsrStreet"
},
"parentName": "Header",
"propertyName": "items",
"index": 1
},
{
"operation": "insert",
"name": "UsrRayonN0e89212d-002b-411c-9df1-6398684f32de",
"values": {
"layout": {
"colSpan": 12,
"rowSpan": 1,
"column": 0,
"row": 2,
"layoutName": "Header"
},
"labelConfig": {},
"enabled": true,
"contentType": 5,
"bindTo": "UsrRayonN"
},
"parentName": "Header",
"propertyName": "items",
"index": 2
},
{
"operation": "insert",
"name": "UsrStreetN6141b4cf-114d-4512-be07-a21699058223",
"values": {
"layout": {
"colSpan": 12,
"rowSpan": 1,
"column": 0,
"row": 3,
"layoutName": "Header"
},
"labelConfig": {},
"enabled": true,
"contentType": 5,
"bindTo": "UsrStreetN"
},
"parentName": "Header",
"propertyName": "items",
"index": 3
}
]/**SCHEMA_DIFF*/,
rules: {
// Набор правил для колонки [UsrStreetN] модели представления.
"UsrStreetN": {
// Правило фильтрации колонки [UsrStreetN] по значению колонки [UsrRayonN].
"FiltrationUsrStreetNByUsrRayonN": {
// Тип правила FILTRATION.
"ruleType": BusinessRuleModule.enums.RuleType.FILTRATION,
// Будет выполняться обратная фильтрация.
"autocomplete": true,
// Будет выполнятся очистка значения при изменении значения колонки [UsrRayonN].
"autoClean": true,
// Путь к колонке для фильтрации в справочной схеме [UsrStreetN],
// на которую ссылается колонка [UsrStreetN] модели представления
// страницы редактирования.
"baseAttributePatch": "UsrRayonN",
// Тип операции сравнения в фильтре.
"comparisonType": Terrasoft.ComparisonType.EQUAL,
// В качестве значения при сравнении выступает колонка (атрибут)
// модели представления.
"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
// Имя колонки модели представления страницы редактирования,
// по значению которой будет выполняться фильтрация.
"attribute": "UsrRayonN"
}
},
// Набор правил для колонки [UsrPlace] модели представления.
"UsrPlace": {
// Настройка правила видимости поля [UsrPlace] по колонке [UsrRayonN].
"BindParametrVisibilePlaceByType": {
// Тип правила BINDPARAMETER.
"ruleType": BusinessRuleModule.enums.RuleType.BINDPARAMETER,
// Правило регулирует свойство VISIBLE поля.
"property": BusinessRuleModule.enums.Property.VISIBLE,
// Массив условий, при выполнении которых отрабатывает правило. В данном
// случае массив содержит одно условие для сравнения значения колонки [RayonN] с
// идентификатором категории активности [Район1].
"conditions": [{
// Выражение левой части условия.
"leftExpression": {
//Тип выражения ATTRIBUTE указывает на то, что в качестве выражения выступает
// аттрибут (колонка) модели представления.
"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
// Название колонки модели представления, значение которой сравнивается в выражении.
"attribute": "UsrRayonN"
},
// Тип операции сравнения.
"comparisonType": Terrasoft.ComparisonType.EQUAL,
// Выражение правой части условия.
"rightExpression": {
"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
// Значение, с которым сравнивается выражение левой части. В данном случае идентификатор типа [Района] задается в PlaceId.
"attribute": "PlaceId"
}
}]
}
},
},
};
});