2012-01-04 98 views
1

我們正在使用SSRS 2008 R2SSRS報告調用存儲過程

我們有幾個調用多個存儲過程的報告。看起來,只要報告被調用,其運行存儲的特效與他們的默認值,然後重新運行存儲的特效與傳遞的參數。那有意義嗎?

我們正在考慮使用快照來存儲包含所有默認參數的報告快照,但有沒有更好的方法?

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))** 
+1

您是使用ReportViewer控件還是報告界面? (甚至還在VS) – Phil 2012-01-04 22:03:37

+0

我們正在使用報告查看器控件 – Duane 2012-01-05 11:37:17

回答

1

聽起來就像你傳遞你的參數太晚了Reportviewer控制。確保在頁面的執行週期中儘可能快地設置它們。我通過初始化代碼背後的頁面加載代碼中的ReportViewer控件而不是在aspx部分中聲明一個代碼來解決此問題。這爲我解決了它。

+0

這沒有幫助。我做了一個跟蹤,並觀察了SQL分析器和SP在SetParameters方法**(上面)上被調用兩次, – Duane 2012-01-06 18:43:58

0

更多解決方案的解決方法。

我們最終將其中一個參數的默認值設置爲-1,並且在存儲過程中,如果參數不是-1,我們只運行代碼。