繁体   English   中英

ReportViewer的SSRS参数问题

[英]SSRS Parameter Issue with ReportViewer

我有一个Winforms应用程序,该应用程序使用ReportViewer控件显示SSRS报告。 我有一个报告,其中包含许多必须由用户设置的参数。 我专门将其中一个参数设置为没有默认值,以便在运行报表之前将参数提示显示在报表查看器中。

但是,在显示报表查看器时,不会显示参数提示,并且会显示一条消息,

该报告需要报告参数“ ReservationStatus”的默认值或用户定义的值。 要运行或订阅此报告,必须提供一个参数值。

如果我执行ReportViewer.RefreshReport() ,则会显示提示。 但是,我不想调用此方法,因为我还调用了ReportViewer.SetDisplayMode()方法以将其置于打印模式。 该方法应该调用RefreshReport()方法。

同样,首次显示表单时,“ Show / Hide Parameter按钮Show / Hide Parameter为灰色。 如果单击刷新按钮,则启用参数按钮。 如果查看器在调用刷新之前没有选择参数,则为a。

有人可以解释为什么我似乎不能先让查看器提示输入参数,然后再尝试刷新/运行报告吗?

在报表控件上设置ReportViewer.Messages属性会导致参数窗格刷新。 我可以用以下代码替换RefreshReport:

ReportViewer.Messages = ReportViewer.Messages

.NET Reflector之旅解释了为什么:

  • ReportViewer.Messages调用rsParams.ApplyCustomResources
  • rsParams.ApplyCustomResources调用rsParams.EnsureParamsLoaded

调用rsParams.EnsureParamsLoaded的唯一其他方法是RefreshReport。 而且该方法是私有的,因此没有希望使用继承。 我可以找到唯一的解决方法,尽管将消息设置为自身,尽管这非常棘手。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM