2011-09-23 86 views
20

我有一个带有几个参数的SSRS(SQL Server 2008 R2)报告。我有一个问题,其中一个参数在首次加载报告时不一致地选择其默认值。问题在SSRS报告中重新部署更新的默认参数

具体来说,它可以在BIDS中正常工作,但一旦部署到IIS并在IE中查看,它会间歇性地工作(在一台服务器上工作,但不在另一台服务器上)。间歇性地,我的意思是它在我部署它的服务器上工作,但是当我将RDS文件复制到另一台服务器时,我的参数的默认行为被破坏。

详细

参数具有一系列在可用的值部分中指定规定(一定)的整数值,其代表一个选择固定报告周期的。默认值具有单个指定值,该值与可用值之一匹配。

选项:数据类型整数,无空值,无多个值,参数可见,自动确定何时刷新。

任何想法,为什么我看到这种行为?

+5

**我已经发现了我自己对这个问题的答案。**我在这里详细介绍了其他任何可能会被相同行为困惑的SSRS新手。 可以从RDL文件中单独管理这些参数,并且可以在将报告部署到服务器后覆盖默认值。管理服务器上的参数: 1.单击浏览器页面左上方的报告名称链接。 2.单击左侧的参数选项卡。 3.根据需要管理参数(例如,设置默认值)。 4.单击应用。 5.单击报告名称链接(顶部大粗体文本)返回到报告。 –

+0

如果您仍在身边,将解决方案标记为“已接受”可能是个好主意 –

回答

23

确实如此,一旦报告部署到服务器,那么参数就会在服务器级别进行控制。
然而,要注意的一点是,如果您重新部署报告并更改了默认值,则不会在服务器上更改它们!报告必须被删除并部署以使新的默认生效。
如果您不希望删除报告,请在报告服务器上手动更改默认值。

+0

谢谢。这正是我发现的。当然,我无法知道服务器是否保留了它自己的默认值,所以这就是我通常所说的“神秘行为”的一个例子,你只需要知道,否则显然的行为是非直觉的。 –

+0

谢谢,删除和重新部署完成了这项工作。 – kmria

+0

只是要清楚 - 它只是在部署时未覆盖的参数的默认设置。我相信,一切都会更新。 – NReilingh

10

我发现了我自己对这个问题的答案。我在这里详细介绍了其他任何可能会被相同行为困扰的SSRS新成员。这些参数可以与RDL文件分开管理,并且一旦将报告部署到服务器后,可以覆盖默认值。管理服务器上的参数:

  1. 单击浏览器页面左上方的报告名称链接。
  2. 单击左侧的参数选项卡。
  3. 根据需要管理参数(例如,设置默认值)。
  4. 单击应用。
  5. 单击报告名称链接(顶部大粗体文本)返回到报告。
1

无需删除报告(删除报告时的问题是日志也会被删除)的另一个解决方案是使用ReportBuilder(Modifier dans leGénérateurde rapport)打开新部署的报告。

只保存报告,默认值将被更改。

0

可以说你的报告名是xyz.rdl 如果你已经设置了默认参数并且现在把它部署到服务器上,它不会在服务器上改变。 我建议3个选项 1.通过右键单击报告上的管理更改服务器上的参数'Has Default' 2.删除服务器上的报告并重新部署它 3.部署虚拟报告或旧版本报告同名的'xyz.rdl'没有这个参数,这样做会清除服务器上的报告参数,报告保持完整。然后用默认参数部署您的新版本报告,现在它应该可以工作。

0

我有类似的问题。当报告部署到服务器“没有”默认值,并且随后在Visual Studio中修改此报告并将相同的参数更改为默认值时,服务器将不会提取修改报告现在具有默认值。

我对这种困境的解决方法是创建一个虚拟参数并将其放在列表的顶部。然后,我用新的虚拟参数重新部署了报告,并使用默认参数修改了相同的修改后的虚拟参数。这次服务器拿起了我感兴趣的参数作为默认值。然后我开始删除visual studio中的dummy参数并重新部署报告。我感兴趣的参数仍然具有默认值。

为了解决我的困境,我阻止了删除报告并添加订阅。

+0

这真的有用吗?我尝试了所有我可以想到的技巧:在报表的开始和结束时创建和删除虚拟参数,隐藏和可见,使用新的默认值更改参数的提示等等,但仍然不会显示默认值。 –

0

这需要一些工作,正确处理好所有的各种方案,但它(至少与SQL Server 2012)可能通过加载.rdl文件作为XML文件进行更新从脚本参数并将其与ReportingService2010.GetItemParametersReportingService2010.GetItemParameters方法中可用的各种设置进行比较,然后使用方法更新SSRS服务器上的参数。

最后,存在一个连接问题“Report parameter defaults not updated during deployment”,它的范围有点局限,只允许自动更新参数默认值。