Здравствуйте, помогите решить задачу, пожалуйста,
На странице редактирования выведены 2 поля: Оценка (число), Оценка традиционная (Справочник).
Справочник традиционная оценка содержит колонки Название (например Удовлетворительно), Балл от (напр. 50), Балл до (напр. 69).
Как сделать так, чтобы после ввода числового значения X в поле Оценка на странице редактирования, сравнивалось значение числа по справочнику [Балл от] < X < [Балл до], и затем в справочном поле Оценка традиционная заполнялось Id найденного значения?
Хотелось бы это сделать не процессом после сохранения и закрытия карточки, а именно на странице редактирования после изменения поля.
Колонки:
Справочник:
Нравится
Примерно так, в коде могут быть опечатки, т.к. писал без проверки.
attributes: { "UsrRatingLookup": { dependencies: [ { columns: ["UsrRating"], methodName: "setRatingLookup" } ] }, }, methods: { setRatingLookup: function() { var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "UsrRatingLookup" }); esq.addColumn("Id"); esq.addColumn("Name"); var esqIdFilter = esq.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.GREATER_OR_EQUAL, "UsrRatingMin", this.$UsrRating); esq.filters.add("esqFilter", esqIdFilter); var esqIdFilter2 = esq.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.LESS_OR_EQUAL, "UsrRatingMax", this.$UsrRating); esq.filters.add("esqFilter2", esqIdFilter2); esq.getEntityCollection(function (result) { if(result.success && result.collection.collection.items.length>0) { this.set("UsrRatingLookup", {value: result.collection.collection.get(0).get("Id"), displayValue: result.collection.collection.get(0).get("Name")}); } }, this); }, }
Доброе утро.
Вам нужно Ваше поле сделать вычисляемым. Посмотрите на Академии пример, как это можно сделать, по ссылке.