Фильтр справочника

            attributes: {

                "SpeakAddress": {

                    type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,

                    dataValueType: Terrasoft.DataValueType.LOOKUP,

                    referenceSchemaName: "AccountAddress",

                    isLookup: true,

                    lookupListConfig: {

                        "filter": function () {

Как написать sql запрос

select ad.id, ad.Address

from 

  AddressType at, 

  AccountAddress ad

where 

    at.Name = 'Собеседования' and 

    at.Id = ad.AddressTypeId

                        }

                    }

                    //isRequired: true

                },

Нравится

5 комментариев

Здравствуйте попробуйте что то вроде такого:

 

lookupListConfig: {
    "filters": [ 
        function () {
            var addressTypeId = this.get("AddressType").value;            
            var filterGroup = Ext.create("Terrasoft.FilterGroup");
            filterGroup.add("CV", Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,"[AccountAddress:AddressType].Name", "Собеседования"));
            filterGroup.add("Type", Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,"[AccountAddress:AddressType].Id", addressTypeId));
            return filterGroup;
             }
    ]
}

 

как работать с фильтрами описано в статье - https://academy.terrasoft.ru/documents/technic-sdk/7-12/primenenie-filt…

Нигрескул Алексей,

Спасибо. 

Своими силами попробовал написать и совпало с вашим советом

 "filter": function () {

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

                            filterGroup.add("IsAddressType",

                                Terrasoft.createColumnFilterWithParameter(

                                    Terrasoft.ComparisonType.EQUAL,

                                    "[AccountAddress:AddressType].Id",

                                    "[AccountAddress.AddressType].Id"));//из таблицы

                            filterGroup.add("IsSpeak",

                                Terrasoft.createColumnFilterWithParameter(

                                    Terrasoft.ComparisonType.EQUAL,

                                    "[AccountAddress:AddressType].Name",

                                    "Собеседования"));

                            return filterGroup;

                        }

Делал как раз по той статье, клиентский esq синтаксис - это для наркоманов :)

QArt,

Нигрескул Алексей,

Не заработало

Добрый день.

Вот оптимизированный sql запрос:

Вот esq строка для фильтра:

Так же проверьте устраивает ли вас результат исходного sql запроса (т.е. выполните запрос непосредственно из SQL Server Management Studio)

 

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