我有一个Winforms应用程序,它使用ReportViewer
控件来显示SSRS报告。我有一个报告,其中包含许多必须由用户设置的参数。我特意将其中一个参数设置为没有默认值,以便在运行报表之前参数提示将显示在报表查看器中。
但是,当报告查看器显示时,参数提示不会显示,并显示消息
此报告需要报告的默认值或用户定义值 参数'ReservationStatus'。要运行或订阅此报告, 你必须提供一个参数值。
如果我执行ReportViewer.RefreshReport()
,则会显示提示。但是,我不想调用它,因为我还调用ReportViewer.SetDisplayMode()
方法将其置于打印模式。假设这种方法调用RefreshReport()
方法。
此外,首次显示表单时,Show / Hide Parameter
按钮显示为灰色。如果单击刷新按钮,则启用参数按钮。如果观看者在调用刷新之前没有获取参数,则为a。
有人可以解释为什么我似乎不能首先让查看器提示参数,然后尝试刷新/运行报告?
答案 0 :(得分:0)
在报表控件上设置ReportViewer.Messages属性会导致参数窗格刷新。我能用这个替换RefreshReport:
ReportViewer.Messages = ReportViewer.Messages
.NET Reflector之旅解释了原因:
调用rsParams.EnsureParamsLoaded的唯一其他方法是RefreshReport。并且该方法是Private,因此没有希望使用继承。将消息设置为自身虽然非常好,但却是我能找到的唯一解决方法。