症状
请考虑以下情况:
-
你有 microsoft SQL Server Reporting Services 2008 R2 (SSRS 2008 R2)或 microsoft SQL Server Reporting Services 2012 (SSRS 2012)报表,适用于 Microsoft SharePoint 列表或文档库。
-
报表使用内置的 SQL Server Reporting Services SharePoint 列表数据扩展插件。
-
构建基于 SharePoint 列表或文档库的数据集查询,然后在报表设计器中运行查询。
-
将报表部署到托管 SharePoint 列表或文档库的 SharePoint 场。
在这种情况下,数据集查询在报表设计器中返回的结果与在 SharePoint 场中的结果不同。例如,在 SharePoint 中创建一个新视图,在其中选择文档库中的 " 显示所有项目,但不显示文件夹 视图" 选项。 将新视图设置为文档库的默认视图。 在此情况下,报表返回的 SharePoint 场中的数据与报表设计器中的数据不同。注意如果将报表部署到 SharePoint 网站,则仅返回顶级文件夹和文档库的文件。 但是,报表设计器将返回反映默认视图的所有文件无论文件夹位置如何更改。
原因
出现此问题的原因是,当 SharePoint 在与列表相同的服务器场中运行报表时,由 SSRS 2008 R2 或 SSRS 2012 获取的代码路径不同。 当本地 SharePoint 场运行报表时,将使用 SPLocalConnection 路径检索列表。 路径直接从 SharePoint 列表中读取而不进行 SOAP 调用,并生成不使用默认视图配置的列表信息的本地副本。 因此, SPLocalConnection 路径不会反映默认视图中的更改。 但是,当报表设计器运行报表时,报表将使用 SPRemoteConnection 路径。 此路径使用与 GetListCollection 函数类似的 SOAP 调用。 此函数通过远程 HTTP 连接(而不是本地连接)访问网站。 因此,更改将反映在默认视图配置中。
解决方法
若要解决此问题,请使用以下某种方法:
-
将报表部署到本机模式报表服务器,然后从本机模式报表服务器运行该报表。 注意 如果你必须在 SharePoint 中查看报表,请在 SharePoint 中安装 "本机模式报表查看器" Web 部件,然后从 Reporting Services 的本机实例调用报表。有关如何使用 SharePoint Web 部件查看和浏览本机模式报表的详细信息,请转到以下 MSDN 网站:
-
将 SharePoint 列表或文档库部署到可由部署了报表的服务器场访问的其他 SharePoint 场。 因此,本地服务器场中的报表可以远程访问列表。
-
使用 XML 数据扩展生成 XML 查询,而无需使用 SharePoint 列表数据扩展。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。