我有一个运行我想要的数据的报告 - 从预览选项卡,或者在 VS 2010 中使用 F5 运行时。但是当我将报告(.rdl 文件)上传到 SQL Server Reporting Services 并运行更新后从那里报告,它仍然显示旧的(受限)数据。
我错过了一个步骤 - 除了从项目上传 .rdl 文件之外,还需要做些什么吗?它确实告诉我数据源是错误的,但是一旦我指定了正确的数据源,它就会顺利运行(除了丢失的数据)。
我通过向标签添加虚假添加确保 SQL Server Reporting Services 真正使用更新的报告,果然,当我运行报告时,我确实看到了,所以更新的报告到达那里。
我还验证了设计时和运行时报告(相同的文件,但复制到不同的位置)都使用相同的数据源:项目中的 SharedDataSource 引用,当我选择 View > Report Data > Data Sources 时看到的是在 SQL Server Reporting Services 中使用相同,我通过选择报表名称上的黄色右下箭头来设置数据源,然后选择“管理”>“数据源”>“共享数据源”>“浏览”>“主页”>“数据” Sources > 并选择与项目中所见同名的共享数据源。最后,我在 SQL Server Reporting Services 中选择了 OK > Apply,但只生成了一部分数据。
为什么会这样?我该怎么做才能检索所有数据?
更新
为了澄清会发生什么,在回答 yelxe 的评论时:
当我在 SSRS 中删除以前版本的报告并上传一个“新”文件(.rdl 文件 - 刚刚删除的新版本报告),然后单击报告链接尝试运行它,我得到,“报表服务器无法处理报表或共享数据集。报表服务器或 SharePoint 站点的共享数据源“CPSData”无效。浏览到服务器或站点并选择一个共享数据源。(rsInvalidDataSourceReference)"
因此,我单击报告右侧的黄色向下箭头并选择管理。
从那里,我选择 Data Sources > A shared data source > Browse > Home/Data Sources/CPSData(“CPSData”与项目中选择的共享数据源相同)> OK > Apply,然后运行报表。
这就是我这样做的地方:
它运行,但返回到报告的数据是我从 IDE (VS 2010) 运行它时得到的数据的一个子集。
更新 2
至于从 SSRS 运行报告时存在的数据,它们是相同的 - IOW,超集和数据子集共有的行相同;只是子集中缺少许多行。超集中存在的数据似乎没有任何“奇怪”之处——它不是 0 或负数,也不是任何特殊或引人注目的东西。
更新 3
要更详细地回复 Eric 的评论,报告的“订阅”、“缓存刷新选项”和“报告历史记录”页面显示“此视图中没有可显示的项目。单击帮助以获取有关此页面的更多信息。 ”
报告的处理选项页面显示
...并且报告的“快照选项”页面显示
更新 4
我注意到我的数据源的名称与我的主数据集的名称相同(它们都是“CPSData”)。数据集名称只是一个标签(可以命名为“duckbilledplatypus”或其他名称),但我仍然想知道这个数据集的混淆/误导性名称是否有问题。因此,我将数据集的名称更改为更合理的名称(我将其重命名为“VPM_V_RockBottom”,因为存储过程名为“sp_ViewPriceMatrix_Variance_RockBottom”)。
不过,这并没有什么区别。我在 SSRS 中替换了新版本的报告(.rdl 文件),重新运行了报告,但仍然(不)看到丢失的数据。
使用相同的参数(日期范围和单位名称),这是我从项目的“预览”选项卡运行时看到的:
...这是在 SSRS 中运行时:
因此,从 VS 2010 运行时,“Hass”* Avocados 显示 18 个成员(应该如此),而从 SSRS 运行时仅显示 3 个成员。在这两种情况/地方,“Asparagus Standard 11/1#”显示了 18 个成员,因为它们应该。
为什么会有差异,我该如何纠正这种异常情况?
- (原文应该是“Haas”,而不是“Hass”(德语中的“恨”字))