2012-01-04 9 views
1

SSRS 2008 R2SSRSレポートストアドプロシージャを呼び出す

複数のストアドプロシージャを呼び出すいくつかのレポートがあります。レポートが実行されるとすぐに、デフォルト値で格納されたprocsを呼び出し、渡されたprocsを渡されたパラメータで再実行しているようです。それは理にかなっていますか?

私たちはスナップショットを使用して、デフォルトのパラメータすべてを含むレポートのスナップショットを保存することを検討していますが、より良い方法がありますか?

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

+0

レポートビューアコントロール – Duane

答えて

1

reportviewerコントロールのパラメータを渡すのが遅すぎるようです。ページの実行サイクルで、できるだけ早くそれらを設定していることを確認してください。私はこの問題を回避するために、aspxの部分で宣言するのではなく、コードの背後にあるコードを読み込むコードでReportViewerコントロールを初期化しました。これは私のためにそれを解決しました。

+0

を使用しています。私はトレースを行い、SQLプロファイラを見て、SPはSetParametersメソッド**で2回呼び出されています**(上記) – Duane

0

解決策よりも多くの回避策があります。

デフォルト値を-1のパラメータに設定し、ストアドプロシージャでパラメータが-1以外の場合にのみコードを実行しました。

関連する問題