【问题标题】:Return one record from a form data source从表单数据源返回一条记录
【发布时间】:2023-08-21 01:18:02
【问题描述】:

我有一个包含现有数据源的表单。此数据源与另一个不是现有数据源的表具有一对多关系。即使第二个表包含多条记录(一对多),我想要的表中的字段在所有记录中都是重复的。因此,我想将第二个表添加为数据源,但只返回一条记录。

如果我直接添加第二个表,那么我的表单会为每条记录包含一行,而不仅仅是一条。

【问题讨论】:

  • 1:M 关系通常通过网格控件处理。如果您想要 M 条记录中的 1 条记录,那么您必须根据我们选择该特定记录的内容指定条件。
  • 没有可过滤的内容。 1:M 链接适用于其他情况,但不适用于这种情况。我只想从加入的数据源返回 1 条记录,而不是全部。

标签: axapta x++ dynamics-ax-2012-r2


【解决方案1】:

这个问题通过创建一个视图作为新的数据源来解决。此视图定义了一个计算列,该列基于包含使用 TOP 1 的查询字符串的方法。更详细的详细信息请参见 Martin Dráb 的博客:https://community.dynamics.com/ax/b/goshoom/archive/2015/06/29/join-first-line-in-ax-2012

【讨论】:

    【解决方案2】:

    在第二个表的数据源上使用属性 LinkType=ExistJoin。

    参见 TransactionLog 表单示例。

    【讨论】:

    • OP 最有可能想要使用连接表的数据(“我想要的表中的字段”和“只返回一条记录”),这在 @ 时不可用987654321@.
    • 正确。我想在所有记录中使用相同的字段。