【问题标题】:How can I intercept/replace the New button click on the sub-grid?如何拦截/替换子网格上的“新建”按钮?
【发布时间】:2019-06-26 03:43:04
【问题描述】:

让我们首先确定一些 D365 开箱即用的功能有时可能有点笨拙。

对于 1:N 关系,当您按下子网格上的“+ 新建”按钮时,行为会根据关系配置为“可选”还是“业务需要”而改变。它可以让您搜索和添加现有记录(可选),也可以始终让您创建新记录(业务需要)。

这很好。我可以控制。

对于 N:N 关系,子网格上的“+ 新建”按钮只能让我搜索现有记录。在这种情况下,我只想每次都创建一条新记录。

该场景将systemuser 实体与自定义实体相关联(通过 N:N 关系)以指示它们在字段中的“专业化”,它被称为。我有另一个指示该字段的查找实体,我的自定义专业化实体具有以下字段:

  1. 姓名(文字)
  2. 字段(查找专业领域)
  3. 水平(衡量他们的专业程度)

如果我要重用现有记录,它也会与另一个用户的专业相关联。如果我要改变他们在该领域的能力水平,将会影响与该记录相关的任何其他用户。

我每次都需要创建一个新记录。如果我可以替换该点击功能,我可以弹出一个新对话框,然后自己创建记录。

如果做不到这一点,我需要将整个子网格控件替换为自定义网络资源,请不要让我这样做!

【问题讨论】:

    标签: dynamics-crm microsoft-dynamics dynamics-365 dynamics-crm-365


    【解决方案1】:

    我的项目中有一个类似的实现,称为 Banker Skillset。您可以搜索并添加现有记录,但会抛出错误说“已经记录与另一条记录相关联”。我不明白为什么在这个 N:N 场景中允许使用内联搜索查找“添加现有”按钮。就像你说的那样,谁会重新映射(取出并交给)其他人这样的记录。

    1. 您仍然可以在手动 N:N 实体 - 用户专业化中强制执行 systemuser 和专业化查找。如果启用 N:N 相交实体的快速创建,当您在子网格中单击 (+) 时,QC 表单将放在顶部

    2. 另一个选项是使用Xrm.Utility.lookupObjects 允许用户选择多个专业化,然后为所有选定的记录添加具有默认级别(专业化程度)的 N:N。然后用户可以使用可编辑的网格选择个人级别。为此,您必须隐藏现有的 (+) 按钮并开始使用功能区工作台创建新的功能区按钮

    Read more

    【讨论】:

    • 嘿 Arun,谢谢你,但我没有使用与专业化和系统用户相交的手动专业化实体。我的专业只列出了领域和学位。我正在使用标准的 N:N 关系将该专业化实体与 systemuser 链接,因此我无权指定任何一方是可选的还是强制性的。我这样做是因为我在其他地方使用相同的专业化实体来记录其他也需要专业化的东西,而不仅仅是系统用户。
    • 我已经在考虑使用 Xrm.Utility.lookupObjects 和其他方法来创建对话框以允许选择。那不是问题。问题是当我的子网格位于表单中间时,这将需要我在表单顶部的功能区上有一个按钮。那里有一个断开连接,我想替换子网格上的按钮,这会给我的用户带来更有意义的体验。
    • @Fooksie 那么你是如何在 N:N 中获得 Name & Level 的?
    • Arun,专业是一个自定义实体,将字段与专业程度联系起来。它虽然没有 systemuser 字段。与系统用户没有直接的交集。这是由开箱即用的 N:N 关系提供的。我在几个不同的地方使用专业化实体,它是字段和学位的组合,我不想创建多个自定义实体来记录完全相同的数据,只是因为它相交的位置不同
    • 嗨 Fooksie,如果您的场景允许,我认为 Arun intersect entity 是一种更好的方法,N:N 关系在某些情况下很有用,但很可能会给您带来麻烦,它会节省你有一些磁盘空间没有使用相交实体。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    相关资源
    最近更新 更多