在 Axapta/Dynamics Axe 中的链接表上过滤
我在 Axapta/Dynamics Ax (EmplTable) 中有一个表单,它有两个数据源(EmplTable 和 HRMVirtualNetworkTable),其中第二个数据源 (HRMVirtualNetworkTable) 使用“延迟”链接类型链接到第一个数据源。
有没有办法根据第二个数据源对记录设置过滤器,而不必将链接类型更改为“InnerJoin”?
I have a form in Axapta/Dynamics Ax (EmplTable) which has two data sources (EmplTable and HRMVirtualNetworkTable) where the second data source (HRMVirtualNetworkTable) is linked to the first on with "Delayed" link type.
Is there a way to set an filter on the records, based on the second data source, without having to change the link type to "InnerJoin"?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用“外部联接”而不是“延迟”,然后在 HRMVirtualNetworkTable 上搜索字段时以编程方式更改联接模式。
将此方法添加到 SysQuery 类中:
在 EmplTable 数据源上的 executeQuery() 中:
有时 this.queryRun() 返回 null,因此请使用 this.query() 代替。
更新:
请注意,上述内容与 AX 2012 及更高版本无关,您可以在外连接中使用查询过滤器。 请参阅如何将 QueryFilter 类与外部联接结合使用。
You could use "Outer join" instead of "Delayed" then change the join mode programmaticly when there is search for fields on HRMVirtualNetworkTable.
Add this method to class SysQuery:
In the executeQuery() on the EmplTable datasource:
Sometimes this.queryRun() return null so use this.query() instead.
Update:
Note that the above is not relevant for AX 2012 and later, where you can use query filters in outer joins. See How to Use the QueryFilter Class with Outer Joins.
您可以通过加入 QueryBuildDataSource 或扩展过滤器(Alt+F3,右键单击数据源,1:n 并找到 sev\condary DS)以编程方式完成此操作
You can do it programmaticaly by joining QueryBuildDataSource or by extended filter (Alt+F3, Right click on datasorce, 1:n and find sev\condary DS)