我们正在使用SSRS 2008 R2
我们有几个报告可以调用多个存储过程。似乎只要报告被调用,它就会运行带有默认值的存储过程,然后使用传递的参数重新运行存储过程。这有意义吗?
我们正在考虑使用快照来存储包含所有默认参数的报告快照,但有更好的方法吗?
rptViewer.ProcessingMode = ProcessingMode.Remote
rptViewer.ShowCredentialPrompts = False
rptViewer.ShowBackButton = False
rptViewer.ShowDocumentMapButton = False
rptViewer.ShowExportControls = False
rptViewer.ShowFindControls = False
rptViewer.EnableViewState = True
rptViewer.ShowPageNavigationControls = False
rptViewer.ShowParameterPrompts = True
rptViewer.ShowRefreshButton = False
rptViewer.ShowPrintButton = True
rptViewer.ShowPromptAreaButton = False
rptViewer.ShowToolBar = True
rptViewer.ShowZoomControl = False
rptViewer.SizeToReportContent = True
rptViewer.AsyncRendering = False
rptViewer.Height = Unit.Percentage(100)
rptViewer.Width = Unit.Percentage(100)
Dim RepParameters As New ReportParams
With RepParameters
.ApplicationID = MyBase.CurrentApplicationID.ToString
.EntityID = EntityIDList
If ShowTitle Then .isExported = "True" Else .isExported = "False"
.LanguageID = CShort(MyBase.CurrentLanguage.ID).ToString
.UserSecurityID = CInt(MyBase.CurrentLoggedUser.SecurityID).ToString
End With
**rptViewer.ServerReport.SetParameters(rep.SsrsReportParameters(RepParameters))**
答案 0 :(得分:1)
听起来你传递的参数太晚了,无法用于reportviewer控件。确保在页面的执行周期中尽快设置它们。我通过在代码后面的页面加载代码中初始化ReportViewer控件而不是在aspx部分中声明一个来解决这个问题。这解决了我。
答案 1 :(得分:0)
更多的解决方法而非解决方案。
我们最终将其中一个参数的默认值设置为-1,而在存储过程中,如果参数不是-1,我们只运行代码。