在客户屏幕上过滤不使用多个过滤器

时间:2014-10-30 20:28:50

标签: acumatica

我正在使用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];

1 个答案:

答案 0 :(得分:0)

Web服务只能过滤屏幕主视图的字段,在本例中为AR303000.CustomerSummary。如果您尝试过滤其他任何内容,系统不会抛出异常,而是静默地丢弃过滤器。

如果您需要能够根据此信息进行过滤,我建议您创建一个连接在您需要的表格上的通用查询,并像使用任何其他查询屏幕一样通过Web服务使用GI屏幕。