我正在使用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];
答案 0 :(得分:0)
Web服务只能过滤屏幕主视图的字段,在本例中为AR303000.CustomerSummary。如果您尝试过滤其他任何内容,系统不会抛出异常,而是静默地丢弃过滤器。
如果您需要能够根据此信息进行过滤,我建议您创建一个连接在您需要的表格上的通用查询,并像使用任何其他查询屏幕一样通过Web服务使用GI屏幕。