本文是 Dynamics 365 SSRS 报表开发的完整指南,不仅涵盖从 Visual Studio 环境搭建到使用 FetchXML 创建自定义报表的全过程,还包含“获取用户最后一次登录时间”的实例、连接字符串配置及报表发布步骤
Table of contents
Open Table of contents
1. 环境搭建
请按下面的顺序执行以下步骤,否则会出现意想不到的问题
- Visual studio 2019 → 开发环境
- SQL Server Data Tools → 报表设计基础工具
- Microsoft Reporting Services Projects 下载
- 重启电脑 → 确保组件正确加载
- 安装 Dynamics 365 Report Authoring Extension 下载
TIP
完成第3步安装后必须重启计算机!重启后再继续安装 Dynamics 365 Report Authoring Extension 扩展
2. 实例:获取用户最后一次登录时间
Step 1. 创建报表项目
- 打开 Visual Studio 2019,选择 “创建新项目”
- 在搜索框中输入 “报表”,选择 “报表服务器项目”
- 点击 “下一步”,输入一个有意义的项目名称,然后创建项目

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

Step 2. 添加报表文件
- 右击报表项目下的 “报表” 文件夹(上面截图中D365CrmSampleCode.Reports项目下的报表文件夹)
- 选择 “添加” → “新建项”
- 选择 “报表” 模板,输入一个有意义的报表名称(中文、英文都可以)

Step 3. 配置数据源
- 右击左侧报表数据面板中的 “数据源” 文件夹 → 选择 “添加新数据源”
- 设置数据源属性,请看下方表格
| # | 数据源属性 | 值 |
|---|---|---|
| 1 | 名称 | 输入一个有意义的名称就行,一般我写的是 “DynamicsCRMDataSource” |
| 2 | 类型 | 选择 “Microsoft Dynamics 365 Fetch” |
| 3 | 连接字符串 | 根据实际情况填写,格式为 {环境URL}/{环境唯一名称} |
TIP
(1) 如果不小心关掉了左侧的“报表数据”,可以通过快捷键重新打开,快捷键:Ctrl + Alt + D
(2) 连接字符串获取方法可以参考本文补充说明章节中的 “获取连接字符串”

Step 4. 准备 FetchXML 查询
本实例使用到的 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>
Step 5. 创建数据集
- 右击右击左侧报表数据面板中的 “数据集” 文件夹 → 选择 “添加数据集”

- 配置数据集属性:
- 使用 “嵌入在报表中的数据集”
- 选择之前创建的数据源(DynamicsCRMDataSource)
- 查询类型选择 “文本”
- 粘贴 Step 4 中的 FetchXML
TIP
首次连接时会弹出 Dynamics 365 登录框,请使用开发账号登录

Step 6. 设计报表界面
- 添加标题:从工具箱拖拽 “文本框” 控件,输入报表标题

- 添加表格:拖拽 “表(Table)” 控件到设计区域,设计列标题和样式

Step 7. 绑定数据字段
以 “用户名称” 列为例,后续是列操作都是差不多的,相信你能搞定的!
- 右击单元格 → 选择 “表达式”
- 在表达式编辑器中,双击 “字段” 下的 “FullName”
- 点击 “确定” 完成绑定。

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

Step 8. 预览报表
点击 “Preview” 选项卡查看报表效果:

最终的效果如下:

Step 9. 发布到 Dynamics 365
- 进入 Power Apps 门户,创建或打开解决方案
- 点击 “新建” → 选择 “报表”

- 上传
.rdl文件,填写一个有意义的报表名称

完成后将会看到我们新建的报表,打开报表就可以查看了

补充说明
自定义报表的分类
在 Dynamics 365 中,自定义报表主要分为两类:
- 全局类报表,如本例所示,可通过报表实体或视图工具栏访问
- 单记录类报表,通常嵌入在业务记录表单中,接收特定记录的 GUID 作为参数
获取连接字符串
连接字符串格式:{环境URL}/{环境唯一名称}
例如你的环境 URL 是 https://sample.crm.dynamics.cn,你的环境唯一名称是 123456789,那么完整的连接字符串应该是 https://sample.crm.dynamics.cn/123456789
方法一:UCI 界面(推荐)
- 登录 Power Apps
- 点击右上角设置按钮(⚙️) → 选择 “开发人员资源”

在这里就能看到环境唯一名称:

方法二:经典 UI 界面
- 设置 → 自定义项 → 开发人员资源


- 在页面中查找”实例唯一名称”
