Axapta Dynamics AX中的复杂数据源问题

Axapta Dynamics AX中的复杂数据源问题,axapta,dynamics-ax-2009,ax,Axapta,Dynamics Ax 2009,Ax,我有一个显示表格中线条的网格。现在,我有两个要求: 仅显示小时字段中包含值的行。小时字段是数组类型。 显示项目及其子项目中的行 我的问题是:为了满足要求1,我需要在我的数据源中使用select语句,因为我无法使用QueryBuildDataSource访问数组值。这是Dynamics AX中已知的 但是为了满足需求2,我需要有两个连接,这在Dynamics AX中是不可能的。例如,以下代码不起作用: select from table where exists join tableChild w

我有一个显示表格中线条的网格。现在,我有两个要求:

仅显示小时字段中包含值的行。小时字段是数组类型。 显示项目及其子项目中的行 我的问题是:为了满足要求1,我需要在我的数据源中使用select语句,因为我无法使用QueryBuildDataSource访问数组值。这是Dynamics AX中已知的

但是为了满足需求2,我需要有两个连接,这在Dynamics AX中是不可能的。例如,以下代码不起作用:

select from table where
exists join tableChild where projectId = MyProjectId OR
exists join tableChild where parentProjectId = MyProjectId

有人会如何解决这个问题?

您可以使用fieldID2Ext函数在提供字段ID的查询范围中使用数组值


您可以构建视图并在其上应用限制。

从您提供的select语句示例中,似乎不需要有两个exist联接。一个带有OR的exists联接在其where子句中的两个可能条件可能就足够了,当然,您仍然应该在table和tableChild之间有一些关系,以便联接具有逻辑意义

select from table
exists join tableChild
where (tableChild.projectId = MyProjectId || tableChild.parentProjectId = MyProjectId)

你能展示你的选择吗,因为这是不合法的。你可以在查询中访问数组值,而不是作为链接文章所涉及的查询表达式。我尝试使用fieldID2Ex,但无法使其像Or一样工作。例如,维度[1]>0或维度[2]>0。您能否详细说明构建视图并在其上应用限制?使用数组字段时必须使用数据源名称