2012-01-04 4 views
1

Мы используем SSRS 2008 R2Отчет SSRS, вызывающий хранимые процедуры

У нас есть несколько отчетов, которые вызывают несколько хранимых процедур. Похоже, что как только отчет будет называться, он запускает сохраненные 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

Мы используем средство просмотра отчетов Report – Duane

ответ

1

Похоже, что вы слишком поздно передаете свои параметры для элемента управления reportviewer. Убедитесь, что в цикле выполнения страницы вы устанавливаете их как можно скорее. Я работал над этой проблемой, инициализируя элемент управления ReportViewer в коде загрузки страницы за кодом, а не объявляя его в части aspx. Это решило это для меня.

+0

Это не помогло. Я сделал след и смотрел профайлер sql, и SP дважды вызывался по методу SetParameters ** ** (выше) – Duane

0

Больше обходного решения, чем решение.

В результате мы установили значение по умолчанию для одного из параметров -1, а в хранимой процедуре мы запускаем только код, если параметр не равен -1.

Смежные вопросы