You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dynamics 365 CRM中关联特定视图与自定义表单?

实现视图关联特定表单的新建行为

可以实现这个需求,Dynamics 365原生没有直接关联视图与新建表单的配置项,需要通过自定义命令栏按钮+JavaScript逻辑来实现,具体步骤如下:

1. 准备基础信息

  • 确认「Contact - Visitor Form」已发布,记录其表单ID(在表单设计器右上角「表单属性」中查看,为一串GUID格式字符)
  • 确认「Contact - Visitor」视图的视图ID(在视图设计器「视图属性」中查看,同样为GUID格式字符)

2. 自定义命令栏按钮

  • 进入Contact实体的「视图」界面,点击右上角的「命令栏」→「编辑命令栏」→选择「主网格」场景
  • 找到默认「新建」按钮,选择「复制」(不建议直接修改默认按钮,避免影响其他场景)
  • 给复制后的按钮重命名(比如「新建访客联系人」),设置其仅在「Contact - Visitor」视图可见:
    • 在按钮的「显示规则」中添加「视图属性规则」,指定规则关联的视图ID为「Contact - Visitor」的ID
  • 给默认「新建」按钮添加显示规则,设置为「视图不等于指定视图」,关联「Contact - Visitor」的视图ID,确保该按钮在访客视图中隐藏

3. 编写JavaScript逻辑实现表单跳转

  • 在Contact实体的「Web资源」中新建一个JavaScript文件,添加以下逻辑:
function openVisitorForm() {
    // 替换为实际的Contact实体逻辑名称、访客表单ID
    var entityName = "contact";
    var visitorFormId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
    
    var formParameters = {};
    // 如需给表单字段设置默认值,可在此添加,示例:formParameters["new_visitortype"] = "临时访客";
    
    Xrm.Navigation.openForm({
        entityName: entityName,
        formId: visitorFormId,
        createFromEntity: null,
        entityId: null,
        formParameters: formParameters
    });
}

function openDefaultForm() {
    // 打开默认主表单
    var entityName = "contact";
    Xrm.Navigation.openForm({
        entityName: entityName
    });
}
  • 发布该Web资源

4. 绑定按钮与JavaScript函数

  • 回到命令栏编辑器,给「新建访客联系人」按钮绑定「openVisitorForm」函数
  • 确认默认「新建」按钮在其他视图中绑定原有默认新建逻辑,或直接绑定「openDefaultForm」函数

5. 测试与发布

  • 发布所有自定义项(视图、表单、命令栏、Web资源)
  • 切换到「Contact - Visitor」视图,点击新建按钮,验证是否打开「Contact - Visitor Form」
  • 切换到其他视图(如「Active Contacts」),点击新建按钮,验证是否打开默认主表单

补充说明

  • 如果需要多个视图对应同一个自定义表单,可修改JavaScript逻辑,通过Xrm.Page.context.getQueryStringParameters().viewid获取当前视图ID,再做分支判断
  • 确保操作用户拥有对应表单的访问权限,避免出现权限报错

内容的提问来源于stack exchange,提问作者rahes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 06:14:58