惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
博客园 - 司徒正美
宝玉的分享
宝玉的分享
阮一峰的网络日志
阮一峰的网络日志
The Cloudflare Blog
月光博客
月光博客
博客园 - 【当耐特】
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
V
V2EX
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
雷峰网
雷峰网
博客园 - 叶小钗
量子位
IT之家
IT之家

Donghai's Blog

使用DBeaver连接Dynamics 365 Dataverse | Donghai C# 技术备忘 - LINQ | Donghai 为Astro站点添加Google Analytics | Donghai C# 技术备忘 - LINQ - Donghai’s Blog 20260819 说些什么 | Donghai Dynamics 365 interview questions | Donghai C# 技术备忘 (1) | Donghai Dynamics 365 事件框架、事件执行管道 | Donghai 马拉松配速表 | Donghai 马拉松赛事分级 | Donghai 抖音创作日志(2026年) | Donghai 2026年跑步日志(5月开始) | Donghai 2FA | Donghai 初尝Github Actions | Donghai AstroPaper主题添加Waline评论 | Donghai Dynamics 365集中视图/聚焦视图/Focused View | Donghai AstroPaper主题添加GitHub风格的Markdown警告框 | Donghai AstroPaper主题自定义记录 | Donghai 我日常收藏的优质网站资源导航(持续更新) | Donghai 如何从归档页批量获取URL并提交到Bing Webmaster Tools | Donghai PaperMod 使用 Zeoseven 自定义网页字体 | Donghai 我常用的Prompt | Donghai Hugo默认时区导致本地预览文章不显示 | Donghai 通过手动提交工单解决Bing不收录网站问题 | Donghai 如何访问 Power BI 管理门户(Power BI Admin Portal) | Donghai 还在手敲时间戳?Win11输入法一个技巧,秒输当前时间戳 | Donghai 工作术语备忘录(持续更新) | Donghai 使用XrmToolBox导出安全角色表级权限到Excel | Donghai 24年的年终总结 | Donghai World笔记 | Donghai
Dynamics 365使用FetchXML创建自定义报表 | Donghai
Donghai · 2024-10-17 · via Donghai's Blog

本文是 Dynamics 365 SSRS 报表开发的完整指南,不仅涵盖从 Visual Studio 环境搭建到使用 FetchXML 创建自定义报表的全过程,还包含“获取用户最后一次登录时间”的实例、连接字符串配置及报表发布步骤

Table of contents

Open Table of contents
  • 1. 环境搭建
  • 2. 实例:获取用户最后一次登录时间
    • Step 1. 创建报表项目
    • Step 2. 添加报表文件
    • Step 3. 配置数据源
    • Step 4. 准备 FetchXML 查询
    • Step 5. 创建数据集
    • Step 6. 设计报表界面
    • Step 7. 绑定数据字段
    • Step 8. 预览报表
    • Step 9. 发布到 Dynamics 365
  • 补充说明
    • 自定义报表的分类
    • 获取连接字符串
      • 方法一:UCI 界面(推荐)
      • 方法二:经典 UI 界面

1. 环境搭建

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

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

TIP

完成第3步安装后必须重启计算机!重启后再继续安装 Dynamics 365 Report Authoring Extension 扩展

2. 实例:获取用户最后一次登录时间

Step 1. 创建报表项目

  1. 打开 Visual Studio 2019,选择 “创建新项目”
  2. 在搜索框中输入 “报表”,选择 “报表服务器项目”
  3. 点击 “下一步”,输入一个有意义的项目名称,然后创建项目

Visual studio 2019 创建报表项目

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

Visual studio 2019 报表项目文件结构

Step 2. 添加报表文件

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

Visual studio 2019 添加报表

Step 3. 配置数据源

  1. 右击左侧报表数据面板中的 “数据源” 文件夹 → 选择 “添加新数据源”
  2. 设置数据源属性,请看下方表格
#数据源属性
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. 创建数据集

  1. 右击右击左侧报表数据面板中的 “数据集” 文件夹 → 选择 “添加数据集”

添加数据集

  1. 配置数据集属性:
    • 使用 “嵌入在报表中的数据集”
    • 选择之前创建的数据源(DynamicsCRMDataSource)
    • 查询类型选择 “文本”
    • 粘贴 Step 4 中的 FetchXML

TIP

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

填写数据集信息

Step 6. 设计报表界面

  1. 添加标题:从工具箱拖拽 “文本框” 控件,输入报表标题

添加文本框组件

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

添加表格组件

Step 7. 绑定数据字段

以 “用户名称” 列为例,后续是列操作都是差不多的,相信你能搞定的!

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

数据绑定

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

为各列添加表达式

Step 8. 预览报表

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

预览报表

最终的效果如下:

效果

Step 9. 发布到 Dynamics 365

  1. 进入 Power Apps 门户,创建或打开解决方案
  2. 点击 “新建” → 选择 “报表”

在解决方案新添报表

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

填写报表信息

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

在环境中打开报表

补充说明

自定义报表的分类

Dynamics 365 中,自定义报表主要分为两类:

  • 全局类报表,如本例所示,可通过报表实体或视图工具栏访问
  • 单记录类报表,通常嵌入在业务记录表单中,接收特定记录的 GUID 作为参数

获取连接字符串

连接字符串格式:{环境URL}/{环境唯一名称}

例如你的环境 URLhttps://sample.crm.dynamics.cn,你的环境唯一名称是 123456789,那么完整的连接字符串应该是 https://sample.crm.dynamics.cn/123456789

方法一:UCI 界面(推荐)

  1. 登录 Power Apps
  1. 点击右上角设置按钮(⚙️) → 选择 “开发人员资源”

UCI界面获取环境唯一名称

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

环境唯一名称

方法二:经典 UI 界面

  1. 设置 → 自定义项 → 开发人员资源

经典UI界面打开自定义项

选择自定义项

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

环境唯一名称

(完)

如果这篇文章刚好帮到了你,欢迎请我喝杯咖啡