Фильтрация на экране клиента не использует более одного фильтра

Я использую экран AR303000 для поиска покупателя. Если я добавляю более одного фильтра, применяется только первый фильтр. Кроме того, набор результатов не включает строки GeneralInfoMainAddress. Возможно, поэтому фильтр не работает.

AR303000Content AR303000 = context.AR303000GetSchema (); context.AR303000Clear ();

        List<Command> cmds = new List<Command>();
        cmds.Add(AR303000.CustomerSummary.ServiceCommands.EveryCustomerID);

        cmds.Add(AR303000.CustomerSummary.CustomerID);
        cmds.Add(AR303000.CustomerSummary.CustomerName);
        cmds.Add(AR303000.GeneralInfoMainAddress.AddressLine1);
        cmds.Add(AR303000.GeneralInfoMainAddress.City);
        cmds.Add(AR303000.GeneralInfoMainAddress.State);
        cmds.Add(AR303000.GeneralInfoMainAddress.PostalCode);

        List<Filter> filters = new List<Filter>();
        filters.Add(new Filter()
        {
            Field = new Field()
            {
                FieldName = AR303000.CustomerSummary.CustomerName.FieldName,
                ObjectName = AR303000.CustomerSummary.CustomerName.ObjectName
            },
            Condition = FilterCondition.Contain,
            Value = "DOE, JOHN",
            Operator = FilterOperator.And
        });
        filters.Add(new Filter()
        {
            Field = new Field()
            {
                FieldName = AR303000.GeneralInfoMainAddress.AddressLine1.FieldName,
                ObjectName = AR303000.GeneralInfoMainAddress.AddressLine1.ObjectName
            },
            Condition = FilterCondition.Contain,
            Value = "255",
            Operator = FilterOperator.And
        });

        var AR303000Export = context.AR303000Export(cmds.ToArray(), filters.ToArray(), 0, false, false);

        return AR303000Export[0][0];

person Spyder045    schedule 30.10.2014    source источник


Ответы (1)


Веб-службы могут фильтровать только поля основного вида экрана, в данном случае AR303000.CustomerSummary. Если вы попытаетесь отфильтровать что-либо еще, система не выдаст исключение, а вместо этого автоматически отбросит фильтр.

Если вам нужно иметь возможность фильтровать эту информацию, я бы посоветовал вам создать общий запрос, который объединяется с таблицами, которые вам нужны, и использовать экран GI через веб-службы, как и с любым другим экраном запроса.

person Gabriel    schedule 30.10.2014