【问题标题】:How to use RecId as a foreign key in a form如何在表单中使用 RecId 作为外键
【发布时间】:2012-05-11 03:22:29
【问题描述】:

我有一个项目表,每个项目都引用另一个表中的另一个项目。我们会说项目是人,相关项目是最喜欢的食物。

表 A:鲍勃:1,莎莉:1,苏:3

表 B:1:苹果,2:香蕉,3:橙子

“人”通过“人”表中引用的食物 RecId 与他们最喜欢的“食物”联系起来。

我有一个用于编辑人员的表单/网格。有没有办法使网格中的 FoodRecId StringView 转换其值,以便 RecId 数字在网格中不可见?

我已经编写了多列查找来轻松处理创建正确的关系,但如果网格中的 RecId 可以隐藏/替换,表单将更易于使用。

【问题讨论】:

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


    【解决方案1】:

    如果您使用的是 AX 2012,这很简单:使用 surrogate keys。 使用RecId 作为外键现在是最佳实践!

    更新:具体步骤见AX Musings

    如果使用较旧版本的 AX,请查看ContactPersonRecIdCustTable 表单中的用法。 它涉及隐藏表单中的recId 字段,同时使用另一个编辑字段ContactPersonName 作为键。

    虽然使用RecId 作为外键并不违反最佳实践,但由于手动处理代理键的复杂性,通常会避免这种做法。

    【讨论】:

    • 嗨,Jan,你有一个链接到哪里被描述为最佳实践 - 我正在实施一个类似的链接,我正在寻找官方理由:o)
    【解决方案2】:

    布拉德,

    ReplacementKey 是您的解决方案。

    现在可以在 AX 2012 中定义父/子关系,而不必在两个表中定义相同的主键。例如,直到 AX 2009,标题/行关系曾经基于一个唯一键存在,例如 SalesTable 和 SalesLine 中的 SalesId 字段。这在 AX 2012 中不再需要。此类关系在 RecId 上定义,值显示在表单上,​​具体取决于您的 ReplacementKey 上定义的内容(这就是名称 Replacement 的原因!) 除了 RecId,您可以显示任何其他文件,例如名称。

    看看我的博客! http://amannain.blogspot.in/2012/04/table-relationships-learning-with.html

    【讨论】:

      猜你喜欢
      • 2018-04-13
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-07
      • 2012-11-30
      相关资源
      最近更新 更多