фильтрация значений справочного поля Сотрудники

Хочу добавить в сотрудники в Карьеру фильтруемое справочное поле, не получается составить запрос

"DerivedClients": {
                                "dataValueType": Terrasoft.DataValueType.LOOKUP,
                                "lookupListConfig": {
                                     /* Массив фильтров, которые применяются к запросу для формирования данных поля-справочника. */
                                    "filters": [
                        function() {
                            var filterGroup = Ext.create("Terrasoft.FilterGroup");
                            filterGroup.add("IsUser", Terrasoft.createColumnIsNotNullFilter("[SysAdminUnit:Account].UsrLookup3"));
                            filterGroup.add("IsActive",
                                Terrasoft.createColumnFilterWithParameter(
                                    Terrasoft.ComparisonType.EQUAL,
                                    "[SysAdminUnit:Account].UsrLookup3",
                                    true));
                            return filterGroup;
                        }
                    ]
                              }
                        },

нужно сравнить со значением справочника "наш сотрудник" только не понимаю как, накорябал что-то но не уверен что это правильно

Нравится

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

Александр, добрый день!

Привожу пример построения фильтра по справочному полю.

Есть объект StTrip и необходимо отфильтровать справочное поле StTransport по определённому параметру:

"StTransport": {
                "dataValueType": Terrasoft.DataValueType.LOOKUP,
                "lookupListConfig": {
                    "filters": [
                        function() {
                            var filterGroup = Ext.create("Terrasoft.FilterGroup");
                            filterGroup.add("IsActive",
                                Terrasoft.createColumnFilterWithParameter(
                                    Terrasoft.ComparisonType.GREATER,
                                    "[StTransport:Id].StMaxWeight",
                                    this.get("StWeight")));
                            return filterGroup;
                        }
                    ]
                }
            }

Обратите внимание на формулировку StTransport:Id. Надеюсь данный пример поможет вам с вашей задачей.

это точно полезно, но пока что я не понимаю, как сделать то что мне требуется, можете подсказать где мне почитать об этом?

В итоге я сделал как в документации, переопределил модуль EmployeeCareerPag

схему  

define("EmployeeCareerPage", [], function() {
    return {
        /* Название схемы объекта страницы записи. */
        "entitySchemaName": "Employee",
        /* Атрибуты модели представления. */
        "attributes": {
            /* Колонка модели представления. */
            "DerivedClients": {
                /* Тип данных колонки модели представления. */
                "dataValueType": Terrasoft.DataValueType.LOOKUP,
                /* Конфигурационный объект атрибута типа LOOKUP. */
                "lookupListConfig": {
                    /* Массив фильтров, которые применяются к запросу для формирования данных поля-справочника. */
                    "filters": [
                        function() {
                            var filterGroup = Ext.create("Terrasoft.FilterGroup");
                            //filterGroup.add("IsUser", Terrasoft.createColumnIsNotNullFilter("[Account:UsrLookup3].Id"));
                            filterGroup.add("IsUser", Terrasoft.createColumnIsNotNullFilter("[Account:AccountType].Name"));
                            filterGroup.add("IsUser",
                                Terrasoft.createColumnFilterWithParameter(
                                    Terrasoft.ComparisonType.EQUAL,
                                   "[Account:AccountType].Name" === "наш сотрудник",
                                    true));
                            return filterGroup;
                        }
                    ]
                }
            }
        }
    };
});

и сделал такой запрос, но все еще не работает, что я мог тут сделать не так?

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