gpt4 book ai didi

axapta - 在 Axapta/Dynamics Ax 中过滤链接表

转载 作者:行者123 更新时间:2023-12-01 11:10:33 27 4
gpt4 key购买 nike

我在 Axapta/Dynamics Ax (EmplTable) 中有一个表单,它有两个数据源(EmplTable 和 HRMVirtualNetworkTable),其中第二个数据源(HRMVirtualNetworkTable)以“延迟”链接类型链接到第一个。

有没有办法根据第二个数据源对记录设置过滤器,而不必将链接类型更改为“InnerJoin”?

最佳答案

您可以使用“外部联接”而不是“延迟”,然后在搜索 HRMVirtualNetworkTable 上的字段时以编程方式更改联接模式。

将此方法添加到类 SysQuery 中:

static void updateJoinMode(QueryBuildDataSource qds)
{
Counter r;
if (qds)
{
qds.joinMode(JoinMode::OuterJoin);
for (r = 1; r <= qds.rangeCount(); r++)
{
if (qds.range(r).value() && qds.range(r).status() == RangeStatus::Open)
{
qds.joinMode(JoinMode::InnerJoin);
break;
}
}
}
}

在 EmplTable 数据源上的 executeQuery() 中:

public void executeQuery()
{;
SysQuery::updateJoinMode(this.queryRun() ? this.queryRun().query().dataSourceTable(tableNum(HRMVirtualNetworkTable)) : this.query().dataSourceTable(tableNum(HRMVirtualNetworkTable)));
super();
}

有时 this.queryRun() 会返回 null,因此请改用 this.query()。

更新:

请注意,以上内容与 AX 2012 及更高版本无关,您可以在外部联接中使用查询过滤器。参见 How to Use the QueryFilter Class with Outer Joins .

关于axapta - 在 Axapta/Dynamics Ax 中过滤链接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/365071/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com