我有一个报告(BIDS SSRS 2008 R2),它有一个参数,允许用户从列表中选择多个值(简称销售区域)。
我想要,因为列表很长(15个左右可能的值)默认选择了最常用的2个值。
我在参数属性>>中配置它“默认值”对话框,当我在预览模式下运行报表时,它可以工作,这意味着会检查默认值。
但是,当我部署它并使用IE9(或Chrome)运行它时,它不起作用。
有什么想法吗?
答案 0 :(得分:24)
我猜你的构建很糟糕,你正在部署并且没有从你所做的更改中获得更新,或者它没有覆盖一个值。您可以做一些事情来确保默认参数值。
在服务器上查看已发布的报告,然后单击右侧的下拉箭头并选择“管理”。现在选择左窗格中的“参数”。在“有默认值”列(2008R2及更高版本左侧第3列)下,应进行检查。然后在“默认值”下,它或者是特定的显式输入,或者它将显示“基于查询”,这意味着它从数据集或类似方式中获取其值。如果这与您期望的值不同,并且明确您可以在此处进行更改。
如果它是基于查询的,并且您发现您的数据无法在此处更改,我将转到BIDS并在解决方案下打开SSRS项目并选择“在Windows资源管理器中打开文件夹”。找到您的报告的DATA文件并将其删除。请注意,这不是报告本身,而是类似于'report.rdl.data'的文件。这不是一个很可能影响构建但仅仅是预览的步骤,但是我们希望在重建之后看到完全相同的预览。转到报告的项目并选择“清理”,然后选择“重建”,以确保除了明确指定的文件之外,还要删除垃圾箱中的所有数据文件。现在,Rebuild将根据说明构建所有文件。现在单击报表上的预览,使用默认值验证它是否符合预期。再次发布并观察。
如果这仍然没有改变报告我会猜测更新没有采取。我会将服务器上的报告重命名为'report_old'并尝试再次发布。
如果仍然没有这样做,我会检查我们想要的发布位置是否有效,我们是否正确部署,并且任何参数都没有从未设置为“不覆盖”的共享数据集中获取数据或由于配置设置暂停发布导致的奇怪边缘情况。
SSRS过去曾遇到过一些奇怪的问题,我的文件处于源代码控制之下,然后系统不希望自己更新参数。通常,这是通过重建来修复的,但有时它确实需要发布新的二进制文件。
答案 1 :(得分:4)
本周我看到了同样的事情,原来是因为我的多值参数" s"默认列表"有时不在数据选择中 - 在我的情况下,默认列表的值对于我可能选择的某些日期无效。
这就是抓住我的原因:SSRS在开发预览期间允许默认列表中的无效值,但不允许它们在生产中使用。
在我的示例中,报表是在Report Builder中开发的。当我做了#34; Run"报表生成器中报表的(预览),按设计选择列表参数的复选框作为默认列表的值。但是当我保存报表并按用户运行它 - 从Reporting Services浏览器页面运行报表 - 然后没有选择任何值 - 没有默认值。
然后,为了解决这个问题,我采用了所有选择标准,并将它们应用到默认列表中 - 确保"默认值"仅包含"可用值"中的值。 - 然后选择默认值,报表生成器开发和SSRS生成中的两个选项。
示例:假设我的选择查询"可用值"是:
SELECT Type
FROM MyTable
WHERE Date <= @BEG_DATE
AND Date >= @END_DATE
并假设,使用2013年1月1日和12月31日作为日期,上述内容将返回&#39; A&#39;,&#39; B&#39;&#39; C&# 39;,&#39; X&#39;&#39; Y&#39;&#39; Z&#39;作为值列表,供用户选择(显示为复选框)。
现在,假设我的选择查询&#34;默认值&#34;是:
SELECT Type
FROM MyTable
WHERE Type IN ('A','B','G','H')
此示例中的问题是,对于2013年1月1日和2013年12月31日的日期,默认值为&#34; G&#34;和&#34; H&#34;不是有效值。
此示例中的修复是添加到&#39; WHERE&#39;条款,在&#34;默认值&#34;查询。它变成了:
SELECT Type
FROM MyTable
WHERE Type IN ('A','B','G','H')
AND Date <= @BEG_DATE
AND Date >= @END_DATE
现在,当为2013年1月1日和12月31日的日期运行此默认值查询时,&#34; G&#34;和&#34; H&#34;退出默认值,只留下&#34; A&#34;和&#34; B&#34;作为默认值。 &#34; A&#34;和&#34; B&#34;可以选择,因为它们也都在参数的可用值中。因此,默认多值参数现在可以正常工作,两者都在开发中,并在保存报告后(部署后,发布后)并从浏览器运行它。
答案 2 :(得分:2)
我今天也有同样的问题。我有两个关于SSRS 2008 R2的报告(共享点集成),当我设置一个参数以具有默认值时,无论我尝试什么,都不会进行更改。它在BIDS(VS 2012)中运行良好。我甚至更新了一个标签,以验证我的更改是否已上传到服务器。我最终不得不从服务器中删除报告并在默认值起作用之前再次上传它们。
答案 3 :(得分:2)
我遇到了类似的问题,除了在预览模式下甚至没有填充默认值。
问题是可用值查询中可用值查询中没有从默认值查询加载的代码 >
例如,代码2000位于默认值查询中,但不在可用值查询中
结果:未选择任何默认值
修复人口查询后,我选择了所有默认值。
去图。
答案 4 :(得分:2)
我今天也遇到过同样的问题。 (23rd June 2016)
原因: 在报表服务器上上传/部署相同报表后,参数默认值和默认值会在报表服务器级别控制一些属性。
解决方案: 如果您使用reportsync
等任何实用程序重新部署同一报告,则必须确保首先删除所有这些报告/单个报告默认值生效,然后执行同步操作。
注意: 在此之前,请使用您使用的相同实用程序备份所有SSRS报告。因为有时您的操作可能会因超时错误或某些服务器问题而失败。
备用解决方案: 如果您的报告非常少而且您不想删除这些报告,请转到参数选项卡并手动更改默认值勾选 Has Default
。那就是它。
希望这对所有SSRS开发者都有帮助。