任何人都可以通过查询服务向我推荐如何进行“OR”查询的正确方向吗?
为了进行“AND”查询,我可以简单地添加两个(或更多)“范围” - 这种爵士乐:
// build and add our new filter
QueryDataRangeMetadata range = new QueryDataRangeMetadata
{
TableName = dataSource.Table,
FieldName = fieldName,
Value = fieldValue,
Enabled = true
};
dataSource.Ranges[ranges.Length - 1] = range;
..但是如何做一个“OR”?
答案 0 :(得分:1)
AX查询中的OR可以通过以下任何树方法进行:
如果OR涉及不同的表,请参见this question。
这些选项也应该应用查询服务。
答案 1 :(得分:1)
...感谢您的建议,但最终我认为这对我没有多大帮助: - (
1.在同一个字段上添加另一个查询范围
=>不幸的是,我需要查询一个不同的字段..基本上“WHERE A = 1或B = 2”类型的东西..
=>遗憾的是,它也不适用于单独的字段
=>不幸的是,我无法让这个工作,并且我想到它实际上并不是“AX查询服务2012”(根据标题)的功能,这是我正在使用的技术(看起来它是内在的东西)斧头??)。请注意,在定义Range时,需要QueryDataRangeMetadata实例的“FieldName”属性(并且没有 - 逗号分隔的字段名称不起作用)。
从好的方面来说,我现在已经开始工作了:-) ...我这样做的方法是将表格两次添加为两个不同的数据源到查询 - 看起来很讨厌,但是男人要做什么......
再次感谢 - OLI。答案 2 :(得分:0)
我过去曾用过这个:
queryBuildRange.value(strFmt('((%1 == %2) || ((%1 == %3) && (%4 == "%5")))',
fieldStr(InventTable, ItemType),
any2int(ItemType::Service),
any2int(ItemType::Item),
fieldStr(InventTable, ProjCategoryId),
queryValue("Spares")));
可能不是最干净的方法,但会完成这项工作。