Всем доброго времени суток.
Версия 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) Значение поля завязать на изменение справочного поля (через атрибуты страницы):
"MyField": { dependencies: [ { columns: ["TheSameUsrTypeRequestValues"], methodName: "updateMyField" } ] }
Метод updateMyField должен устанавливать в поле MyField значение поля TheSameUsrTypeRequestValues.
Поле TheSameUsrTypeRequestValues - содержит те же значения, что и UsrTypeRequest.
3) Создать завязку на поле MyField:
this.Terrasoft.createColumnFilterWithParameter( this.Terrasoft.ComparisonType.EQUAL, "UsrTypeRequest", MyField )