Acumatica 客户屏幕上的筛选不使用多个筛选器

Acumatica 客户屏幕上的筛选不使用多个筛选器,acumatica,Acumatica,我正在使用AR303000屏幕搜索客户。如果添加多个过滤器,则仅应用第一个过滤器。此外,结果集不包括GeneralInfo主地址行。这可能就是过滤器不工作的原因 AR303000Content AR303000=context.AR303000GetSchema(); AR303000Clear() List cmds=new List(); 添加(AR303000.CustomerSummary.ServiceCommands.EveryCustomerID); 添加(AR303000.Cus

我正在使用AR303000屏幕搜索客户。如果添加多个过滤器,则仅应用第一个过滤器。此外,结果集不包括GeneralInfo主地址行。这可能就是过滤器不工作的原因

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

List cmds=new List();
添加(AR303000.CustomerSummary.ServiceCommands.EveryCustomerID);
添加(AR303000.CustomerSummary.CustomerID);
添加(AR303000.CustomerSummary.CustomerName);
添加(AR303000.GeneralInfoMainAddress.AddressLine1);
添加(AR303000.generalinfomain地址.城市);
添加(AR303000.GeneralInfoMainAddress.State);
添加(AR303000.GeneralInfo主地址.PostalCode);
列表过滤器=新列表();
filters.Add(新过滤器()
{
字段=新字段()
{
FieldName=AR303000.CustomerSummary.CustomerName.FieldName,
ObjectName=AR303000.CustomerSummary.CustomerName.ObjectName
},
条件=过滤器条件。包含,
Value=“DOE,JOHN”,
操作员=过滤器操作员。和
});
filters.Add(新过滤器()
{
字段=新字段()
{
FieldName=AR303000.GeneralInfoMainAddress.AddressLine1.FieldName,
ObjectName=AR303000.GeneralInfoMainAddress.AddressLine1.ObjectName
},
条件=过滤器条件。包含,
Value=“255”,
操作员=过滤器操作员。和
});
var AR303000Export=context.AR303000Export(cmds.ToArray(),filters.ToArray(),0,false,false);
返回AR303000导出[0][0];

web服务只能对屏幕主视图的字段进行过滤,在本例中为AR303000.CustomerSummary。如果您尝试对任何其他内容进行筛选,系统不会抛出异常,而是以静默方式放弃筛选

如果您需要能够根据这些信息进行过滤,我建议您创建一个通用查询,将所需的表连接起来,并通过web服务使用GI屏幕,就像使用任何其他查询屏幕一样

        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];