Всем доброго времени суток.
Версия 7.9 sales.
Есть типовая деталь с колонками, к ней подключён фильтр:
"schemaName": "UsrSchema4Detail",
"entitySchemaName": "UsrRequest",
"filter": {
"detailColumn": "UsrOrder",
"masterColumn": "Id"
},
"filterMethod": "UsrRequestFilterSupplier"
},
который реализован следующим образом:
var filterGroup = new this.Terrasoft.createFilterGroup();
filterGroup.logicalOperation = Terrasoft.LogicalOperatorType.AND;
filterGroup.add(
"OrderFilter",
this.Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.EQUAL,
"UsrOrder",
this.get("Id")
)
);
filterGroup.add(
"UsrRequestFilter",
this.Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.EQUAL,
"UsrTypeRequest",
"38cc7931-7db6-4e12-a343-1033f6316cf1"
)
);
return filterGroup;
},
То есть выводятся только те записи, у которых колонка UsrTypeRequest соответствует нужному id.
Вопрос - можно ли такой же фильтр сделать динамическим? То есть допустим создаём на карточке поле с выбором из справочника с теми же значениями, что и у UsrTypeRequest, и нужно, чтобы при изменении этого поля у нас менялись отображаемые записи на детали.
Нравится
Здравствуйте!
Можно сделать следующее:
1) Создать виртуальное поле на странице MyField:
MyField: {
dataValueType: Terrasoft.DataValueType.GUID,
type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN
},
2) Значение поля завязать на изменение справочного поля (через атрибуты страницы):
[javascript]
"MyField": {
dependencies: [
{
columns: ["TheSameUsrTypeRequestValues"],
methodName: "updateMyField"
}
]
}
[/javascript]
Метод updateMyField должен устанавливать в поле MyField значение поля TheSameUsrTypeRequestValues.
Поле TheSameUsrTypeRequestValues - содержит те же значения, что и UsrTypeRequest.
3) Создать завязку на поле MyField:
[javascript]
this.Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.EQUAL,
"UsrTypeRequest",
MyField
)
[/javascript]