Пробывал разные варианты и filterMethod и lookupListConfig с указанием нужного поля, но для редактируемого реестра не заводится, каким еще способом можно отфильтровать записи справочного поля в детали с редактируемым реестром при создании или же изменении записи на детали?

Нравится

2 комментария

Добрый вечер.

Опишите подробнее, что именно не получается. Приведите пример Вашего кода.

Проблема решена при помощи переопредления метода:

getGridRowViewModelConfig: function(config) {

                var result = this.callParent(arguments);

                if (result && result.rowConfig && result.rowConfig.Contact) {

                    result.rowConfig.Contact.lookupListConfig = {

                        "filters": [

                            function() {

                                var vendor = this.get("Vendor");

                                var filterGroup = Ext.create("Terrasoft.FilterGroup");

                                if (vendor && vendor.value) {

                                    filterGroup.add("Account",

                                        Terrasoft.createColumnFilterWithParameter(

                                            Terrasoft.ComparisonType.EQUAL, "[AccountInVendor:Account:Account].Vendor", vendor.value));

                                } else {

                                    filterGroup.add("Empty", Terrasoft.createColumnIsNullFilter("Id"));

                                }

                                

                

                                return filterGroup;

                            }

                        ]

                    };

                }

                return result;

            },

Показать все комментарии

Приветствую всех!

Подскажите, почему вот так работает:

lookupListConfig: {
  filters: [{
    method: function(columnName){
      return this.getFilterByAccount(columnName);
    },
    argument: "Account"
  }]
}

а вот так 

lookupListConfig: {
  filters: [{
    method: this.getFilterByAccount,
    argument: "Account"
  }]
}

нет!

 

Нравится

2 комментария

Здравствуйте! 

Дело в том, что во втором случае view module (описывает поведение) еще не проинициализирован (секция methods в схеме относится к view module). 

При обращении к lookupListConfig загружается пока только window (https://developer.mozilla.org/ru/docs/Web/API/Window) в котором нет данного метода.

Если посмотрите в консоль при выполнении кода lookupListConfig, то увидите:

1. Ошибку, что метод не найден (будет написано undefined)

2. При написании в консоли "this." будет написано подсказка window.

Вильшанский Дмитрий,

понятно, спасибо.



В качестве пожелания для разработчиков, как вариант, можно было бы добавить в обработчик LookupQuickAddMixin.getLookupQueryFilters проверку не только method, но и methodName, тогда по this[methodName] можно было бы вызывать функцию фильтрации.

Показать все комментарии