Axapta 使用相同形式的2个网格的多对多关系

Axapta 使用相同形式的2个网格的多对多关系,axapta,x++,dynamics-ax-2012,Axapta,X++,Dynamics Ax 2012,我是AX新手,所以这可能是一个简单的问题 设想多对多关系中的两个表用户和组: 一个用户可以属于多个组 一个组可以属于多个用户 因此,我在AX中创建了3个表来表示这种关系: 用户 集团 GroupUser(中间表用于从用户表和组表创建与PKs的多对多关系) 现在假设我有一个有两个网格的表格 每个栅格只有一列不可编辑。 一个网格包含用户列表(用户表定义为数据源),另一个网格包含组列表(组表定义为数据源) 一切都显示得很好,但我希望在选择组时只显示它所属的用户,我可以选择用户。 如何完成最后一

我是AX新手,所以这可能是一个简单的问题

设想多对多关系中的两个表用户

  • 一个用户可以属于多个组
  • 一个组可以属于多个用户
因此,我在AX中创建了3个表来表示这种关系:

  • 用户
  • 集团
  • GroupUser(中间表用于从用户表和组表创建与PKs的多对多关系)
现在假设我有一个有两个网格的表格

每个栅格只有一列不可编辑。 一个网格包含用户列表(用户表定义为数据源),另一个网格包含组列表(组表定义为数据源)

一切都显示得很好,但我希望在选择组时只显示它所属的用户,我可以选择用户。


如何完成最后一部分?

显示属于某个组的用户需要使用
GroupUser
表上的
exists join

从您的描述中,我不清楚是一直如此,还是仅当选择了一个组时才如此

使用
GroupUser
JoinMode
set
ExistsJoin
创建一个新的表单数据源,并链接到
User

如果仅在选择组时过滤,请禁用
GroupUser
数据源:

user_ds.query().dataSourceTable(tableNum(GroupUser)).enabled(<group is selected>);
user_ds.query().dataSourceTable(tableNum(GroupUser)).enabled();