我使用Dynamics AIF在C#中编写此代码。
如何在Dynamics QueryService上执行部分字符串查询?
动态查询将如下所示:
WHERE %1.Field LIKE '*partialstring*'
这就是我正在做的事情:
QueryDataRangeMetadata range = new QueryDataRangeMetadata();
range.FieldName = field;
range.TableName = tableName;
range.Enabled = true;
range.Value = string.Format(" LIKE '*{0}*'", id);
query.DataSources[0].Ranges[0] = range;
我想到了这个解决方案,因为这个有效:
range.Value = ">2000";
但不是那样使用...有没有办法解决这个问题?任何解决方法?
根据Joris的说法,在这篇文章http://daxmusings.codecrib.com/2013/09/linq-to-ax-example-using-wpf.html中,您无法使用动态Linq对字符串执行部分查询,我对QueryService也有同样的问题。
答案 0 :(得分:1)
我已经在Denis Macchinetti的https://community.dynamics.com/ax/f/33/p/148074/333993.aspx得到了答案。
答案:
Denis Macchinetti于2014年12月29日上午10:32回复
嗨爱神
在我看来,您可以使用动态查询。
查看动态查询http://msdn.microsoft.com/en-us/library/gg847959.aspx 部分。
实际上,创建一个扩展AifQueryBuilder的AOT类 类。
然后调用QueryServiceClient.ExecuteDynamicQuery方法并传递 X ++查询类的名称和任何查询参数。
一个例子是标准类CustTransQueryBuilder。
通过这种方式,您可以处理AX!中的“喜欢”条件!
其他链接:
http://blogs.msdn.com/b/axsupport/archive/2012/02/17/calling-the-query-service.aspx