本文介绍如何在 Dynamics 365 使用 FetchXML 进行自定义的报表开发,内容分为两部分包括:

  1. 环境搭建
  2. 实例演练

第一部分:环境搭建

请按顺序执行以下步骤,否则会出现意想不到的问题

  1. Visual studio 2019 → 开发环境
  2. SQL Server Data Tools → 报表设计基础工具
  3. Microsoft Reporting Services Projects 下载
  4. 重启电脑 → 确保组件正确加载
  5. 安装 Dynamics 365 Report Authoring Extension 下载

💡 重要提示:完成第 3 步安装后必须重启计算机,再继续安装 Dynamics 365 扩展。


第二部分:实例 - 创建"用户最后登录时间"报表

实例/功能描述:获取用户最后一次登录时间

步骤 1:创建报表项目

  1. 打开 Visual studio 2019,创建报表项目
  2. 打开 Visual Studio 2019,选择"创建新项目"
  3. 在搜索框中输入"报表",选择"报表服务器项目"
  4. 点击"下一步",输入项目名称后创建项目

Visual studio 2019 创建报表项目

项目创建成功后,文件结构如下:

Visual studio 2019 报表项目文件结构

步骤 2:添加报表文件

  1. 右击"报表"文件夹
  2. 选择"添加" → “新建项”
  3. 选择"报表"模板,输入报表名称

Visual studio 2019 添加报表

步骤 3:配置数据源

  1. 右击"数据源"文件夹 → “添加新数据源”
  2. 设置数据源属性:
    • 名称:建议使用"DynamicsCRMDataSource"
    • 类型:选择"Microsoft Dynamics 365 Fetch"
    • 连接字符串:格式为{环境URL}/{环境唯一名称}

温馨提示
1️⃣ 如果"报表数据"面板被关闭,按 Ctrl + Alt + D 重新打开
2️⃣ 连接字符串获取方法见文末"获取连接字符串"部分

点击添加数据源 填写数据源属性信息

步骤 4:准备 FetchXML 查询

<fetch aggregate="true">
  <entity name="audit">
    <attribute name="createdon" alias="LastLoginDate" aggregate="max" />
    <filter>
      <condition attribute="operation" operator="eq" value="4" />
    </filter>
    <link-entity name="systemuser" from="systemuserid" to="objectid" link-type="inner" alias="SystemUser">
      <attribute name="fullname" alias="FullName" groupby="true" />
      <attribute name="domainname" alias="DomainName" groupby="true" />
      <attribute name="isdisabled" alias="IsDisabled" groupby="true" />
      <attribute name="accessmode" alias="AccessMode" groupby="true" />
      <attribute name="userlicensetype" alias="UserLicenseType" groupby="true" />
    </link-entity>
  </entity>
</fetch>

步骤 5:创建数据集

  1. 右击"数据集"文件夹 → “添加数据集”
  2. 配置数据集属性:
    • 使用"嵌入在报表中的数据集"
    • 选择之前创建的 DynamicsCRMDataSource
    • 查询类型选择"文本"
    • 粘贴上述 FetchXML 代码

注意:首次连接时会弹出 Dynamics 365 登录框,请使用开发账号登录。

添加数据集 填写数据集信息

步骤 6:设计报表界面

  1. 添加标题:从工具箱拖拽"文本框"控件,输入报表标题
  2. 添加表格:拖拽"表"控件到设计区域,设计列标题和样式

添加文本框组件

添加表格组件

步骤 7:绑定数据字段

以"用户名称"列为例:

  1. 右击单元格 → 选择"表达式"
  2. 在表达式编辑器中,双击"字段"下的"FullName"
  3. 点击"确定"完成绑定。

数据绑定

重复上述步骤,为所有列绑定对应字段:

为各列添加表达式

步骤 8:预览报表

点击"Preview"选项卡查看报表效果:

预览报表

最终效果展示:

效果

步骤 9:发布到 Dynamics 365

  1. 进入 Power Apps 门户,创建或打开解决方案
  2. 点击"新建" → 选择"报表"
  3. 上传.rdl 文件,填写报表名称

在解决方案新添报表

填写报表信息

在环境中打开报表

💡 在 Dynamics 365 中,自定义报表主要分为两类:
1️⃣ 全局类报表 - 如本例所示,可通过报表实体或视图工具栏访问
2️⃣ 单记录类报表 - 通常嵌入在业务记录表单中,接收特定记录的 GUID 作为参数

附录:获取连接字符串

连接字符串格式

{环境URL}/{环境唯一名称}

示例

  1. 环境 URL:https://sample.crm.dynamics.cn
  2. 环境唯一名称:123456789
  3. 完整连接字符串:https://sample.crm.dynamics.cn/123456789

获取环境“唯一名称”的方法

方法一:UCI 界面(推荐))

  1. 登录 Power Apps:国际版世纪互联版
  2. 点击右上角设置按钮(⚙️) → 选择 “开发人员资源”

UCI界面获取环境唯一名称 环境唯一名称

方法二:经典 UI 界面

  1. 设置 → 自定义项 → 开发人员资源
  2. 在页面中查找"实例唯一名称"

经典UI界面打开自定义项 选择自定义项 环境唯一名称

如果本文对你有所帮助,可以请我喝杯咖啡

(完)