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

SSRS报表中MS Dynamic Fetch Query数据获取限制问题求助

解决SSRS中Fetch XML查询仅能返回最多5000条记录的问题

核心原因

SSRS的Fetch XML数据源默认依赖Dynamics 365的Fetch API分页机制,单页最大返回数为5000,且SSRS不会自动处理多页数据的合并;而XRM Toolbox的Fetch XML Builder会自动遍历所有分页并合并结果,因此能获取完整数据。

具体解决方案

1. 修正Fetch XML基础配置

确保Fetch XML根标签包含以下属性,用于获取总记录数来计算分页:

<fetch version="1.0" output-format="xml-platform" mapping="logical" returntotalrecordcount="true" count="5000">
  <!-- 你的实体、链接、过滤条件等 -->
</fetch>
  • returntotalrecordcount="true":启用总记录数返回,后续可通过SSRS参数@TotalRecordCount获取总条数
  • count="5000":保持单页允许的最大返回数

2. 在SSRS中实现多页数据合并

步骤1:创建总记录数数据集

新建数据集(如命名为DS_TotalCount),使用上述带returntotalrecordcount="true"的Fetch XML,仅需返回总记录数即可。

步骤2:生成页码序列数据集

新建数据集(如DS_PageNumbers),用SSRS表达式生成从1到总页数的序列:

  • 若能直接访问Dynamics数据库,可使用SQL生成:
WITH Pages AS (
    SELECT 1 AS PageNumber
    UNION ALL
    SELECT PageNumber + 1
    FROM Pages
    WHERE PageNumber < CEILING((SELECT TotalRecordCount FROM DS_TotalCount) / 5000.0)
)
SELECT PageNumber FROM Pages
  • 若无法访问数据库,可在报表「报表属性」→「代码」中添加VB代码:
Public Function GetPageNumbers(totalRecords As Integer, pageSize As Integer) As List(Of Integer)
    Dim pages As New List(Of Integer)()
    Dim totalPages As Integer = Math.Ceiling(totalRecords / pageSize)
    For i As Integer = 1 To totalPages
        pages.Add(i)
    Next
    Return pages
End Function

然后将DS_PageNumbers的数据源设为表达式:

=Code.GetPageNumbers(First(Fields!TotalRecordCount.Value, "DS_TotalCount"), 5000)
步骤3:配置主数据集的分页参数

修改主数据集中的Fetch XML,将page属性绑定到SSRS参数:

<fetch version="1.0" output-format="xml-platform" mapping="logical" count="5000" page="@PageNumber">
  <!-- 你的实体、链接、过滤条件等 -->
</fetch>

在数据集参数中添加@PageNumber,值设为=Fields!PageNumber.Value,关联到DS_PageNumbers的PageNumber字段。

步骤4:合并多页数据

通过报表的列表/表格控件遍历所有页码对应的数据集结果,合并为完整的报表数据。

3. 检查SSRS数据源额外限制

部分SSRS Dynamics 365数据源存在全局返回限制,可在数据源属性中查看是否有「最大返回记录数」配置项,调整为更大值或设为0表示无限制。

4. 备选方案:直接使用SQL查询(仅适用于本地部署环境)

如果是Dynamics 365本地部署版本,可直接连接SQL数据库,查询实体视图(如FilteredAccount)或基础表,绕过Fetch API分页限制:

SELECT * FROM FilteredYourEntity
WHERE -- 你的过滤条件

内容的提问来源于stack exchange,提问作者Marvin Raymund Popioco

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:01:03