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

Dynamics CRM 365:如何基于关联记录打开筛选视图

嘿,这个需求其实在Dynamics 365(看实体命名大概率是这类CRM系统)里有几种挺实用的实现方案,我给你拆解下:

可行方案梳理

方案一:无代码/低代码实现(推荐新手)

如果你不想写代码,直接用表单编辑器的命令按钮就能搞定:

  • 打开Account实体的表单编辑器,找到你想加按钮的位置(比如顶部命令栏或者表单内的按钮组)
  • 点击「添加按钮」,选择「新建命令」
  • 在命令设置面板里,动作类型选「打开视图」,然后选中你要展示的Followups实体视图
  • 关键的筛选配置:在「传递参数」区域,设置筛选条件为 accountid eq {PrimaryEntityId} —— 这里的{PrimaryEntityId}会自动替换成当前打开的Account记录ID,确保只加载关联的Followups
  • 保存并发布表单,点击按钮测试,就能看到只属于当前客户的Followups记录啦

方案二:自定义JavaScript实现(适合复杂场景)

如果需要加一些自定义逻辑(比如判断权限、额外筛选条件),可以用JS脚本实现:

  • 先在表单编辑器里添加一个自定义按钮,动作类型选「运行JavaScript」
  • 编写如下JS函数(记得替换成你自己的视图ID):
function openFilteredFollowups(primaryControl) {
    // 获取当前Account的ID(去掉大括号)
    const accountId = primaryControl.data.entity.getId().replace(/[{}]/g, "");
    // 替换成你的Followups视图ID
    const targetViewId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
    const entityName = "followups";

    // 构建筛选条件XML
    const filterXml = `<filter type='and'><condition attribute='accountid' operator='eq' value='${accountId}'/></filter>`;

    // 打开筛选后的视图
    Xrm.Navigation.openGridView({
        entityName: entityName,
        viewId: targetViewId,
        viewType: "savedquery",
        filters: filterXml
    });
}
  • 把这个脚本上传到CRM的Web资源里,关联到刚才的自定义按钮,保存发布后就能用了

注意事项

  • 确保Followups实体和Account实体已经建立了正确的N:1关联(也就是Followups里有一个accountid字段关联到Account实体)
  • 要保证当前用户对目标Followups视图有访问权限,不然会报错
  • 有些环境里无代码方案的参数可能需要用{!Entity.Id}替代{PrimaryEntityId},如果第一个方案不行可以试试这个替换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:08:06