20

我有一个报告(BIDS SSRS 2008 R2),它有一个参数,允许用户从列表中选择多个值(比方说销售区域)。

不过,我想要,因为列表很长(大约 15 个可能的值),默认情况下选择了最常用的 2 个值。

我在 Parameter Properties >> Default Value 对话框中配置它,当我在预览模式下运行报告时,它可以工作,这意味着检查了默认值。

但是,当我部署它并使用 IE9(或 Chrome)运行它时,它不起作用。

有任何想法吗?

4

5 回答 5

29

我猜你的构建很糟糕,你正在部署并且没有从你所做的更改中得到更新,或者它没有覆盖一个值。您可以做一些事情来确保存在默认参数值。

  1. 转到服务器上发布的报告,然后单击右侧的下拉箭头并选择“管理”。现在选择左侧窗格中的“参数”。在“有默认值”列(2008R2 及更高版本的左起第 3 个)下,应选中它。然后在“默认值”下,它要么是特定的显式输入,要么会说“基于查询”,这意味着它从数据集或类似方式中获取其值。如果这与您期望的值不同并且是明确的,您可以在此处进行更改。

  2. 如果它是基于查询的,并且您发现您的数据无法在此处更改,我将转到 BIDS 并在解决方案下打开 SSRS 项目并选择“在 Windows 资源管理器中打开文件夹”。找到您报告的 DATA 文件并将其删除。请注意,这不是报告本身,而是类似于“report.rdl.data”的文件。这不是最有可能影响构建的步骤,而只是预览,但是我们希望在重建后看到预览的样子。转到您的报告项目并选择“清理”,然后选择“重建”,以确保除了您明确删除的文件之外,您还删除了 bin 中的所有数据文件。Rebuild 现在将根据说明构建所有文件。现在单击报告上的预览,验证它是否与默认值一致。再次发布并观察。

  3. 如果这仍然没有改变报告,我猜想更新没有采取。我会将服务器上的报告重命名为“report_old”并尝试再次发布。

  4. 如果这仍然没有采取,我会检查我们想要的发布位置是否有效并且我们正在正确部署,并且任何参数都没有从未设置为“不覆盖”的共享数据集中获取数据或发布导致的奇怪边缘情况由于配置设置而被暂停。

SSRS 过去对我有过奇怪的问题,即我的文件处于源代码控制之下,然后系统不想自己更新参数。通常,这可以通过重建修复,但有时确实需要发布新的二进制文件。

于 2013-09-30T20:47:10.530 回答
6

本周我看到了同样的事情,结果证明是因为我的多值参数的“默认列表”中有一些值有时不在数据选择中——在我的情况下,默认列表的值对某些人无效我可能选择的日期。

这就是我的想法:SSRS 在开发预览期间允许默认列表中的无效值,但不允许在生产中使用它们。

在我的示例中,报表是在报表生成器中开发的。当我在报表生成器中对报表进行“运行”(预览)时,按照设计,默认列表值的列表参数复选框被选中。但是当我保存报表并以用户的方式运行它时——从 Reporting Services 浏览器页面运行报表——然后没有选择任何值——没有默认值。

然后,为了解决这个问题,我采用了所有选择标准,并将它们应用于默认列表——确保“默认值”仅包含“可用值”中的值——然后选择默认值,在报表生成器开发和 SSRS 生产中。

示例:假设我对“可用值”的选择查询是:

SELECT Type
FROM MyTable
WHERE Date <= @BEG_DATE
  AND Date >= @END_DATE

并假设,使用 1/1/2013 和 12/31/2013 作为日期,上面返回 'A','B','C','X','Y','Z' 作为值,供用户选择(显示为复选框)。

现在,假设我对“默认值”的选择查询是:

SELECT Type
FROM MyTable
WHERE Type IN ('A','B','G','H') 

此示例中的问题是,对于日期 2013 年 1 月 1 日和 2013 年 12 月 31 日,默认值“G”和“H”不是有效值。

此示例中的修复方法是在“默认值”查询中添加到“WHERE”子句。它成为了:

SELECT Type
FROM MyTable
WHERE Type IN ('A','B','G','H') 
  AND Date <= @BEG_DATE
  AND Date >= @END_DATE

现在,当针对日期 1/1/2013 和 12/31/2013 运行此默认值查询时,“G”和“H”将退出默认值,仅保留“A”和“B”作为默认值价值观。“A”和“B”都可以选择,因为它们也都在参数的可用值中。因此,默认多值参数现在可以工作,无论是在开发中,还是在保存报告后(部署后、发布后)并从浏览器运行它。

于 2014-12-05T15:26:07.777 回答
3

我今天有同样的问题。我有两个关于 SSRS 2008 R2(sharepoint 集成)的报告,当我将一个参数设置为具有默认值时,无论我尝试什么,都不会进行更改。它在 BIDS (VS 2012) 中运行良好。我什至更新了一个标签以验证我的更改是否已上传到服务器。我最终不得不从服务器中删除报告并重新上传它们,然后默认值才能起作用。

于 2014-09-17T09:24:48.153 回答
3

我有一个类似的问题,除了在预览模式下甚至没有填充默认值。

问题是从我的默认值查询加载的代码之一在可用值查询中不存在

例如,代码 2000 在默认值查询中但不在可用值查询中

结果:未选择任何默认值

一旦我修复了我的人口查询,我所有的默认值都被选中了。

去搞清楚。

于 2015-12-07T07:35:24.403 回答
2

我今天也遇到了同样的问题。(23rd June 2016)

原因:一旦我们在报表服务器上上传/部署相同的报表,那么参数默认值和默认某些属性在报表服务器级别控制。

解决方案:如果您使用任何实用程序重新部署相同的报告,reportsync您必须确保首先删除所有这些报告/单个报告以使默认值生效,然后执行同步操作。

注意: 在您执行此操作之前,请使用您使用的相同实用程序备份所有 SSRS 报告。因为有时您的操作可能会由于超时错误或某些服务器问题而失败。

替代解决方案:如果您的报告很少,并且您不想删除这些报告,则转到“参数”选项卡并勾选 手动更改默认值Has Default。而已。

希望这将有助于所有 SSRS 开发人员。

于 2016-06-23T07:34:40.603 回答