【问题标题】:SSRS report calling stored procsSSRS 报告调用存储过程
【发布时间】:2012-01-04 16:21:30
【问题描述】:

我们正在使用 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))**

【问题讨论】:

  • 您使用的是 ReportViewer 控件还是报表界面? (甚至还在VS中)
  • 我们正在使用报表查看器控件

标签: reporting-services ssrs-2008


【解决方案1】:

听起来您为报告查看器控件传递参数太晚了。确保在页面的执行周期中尽快设置它们。我通过在代码后面的页面加载代码中初始化 ReportViewer 控件而不是在 aspx 部分中声明一个来解决此问题。这为我解决了。

【讨论】:

  • 那没有帮助。我做了一个跟踪并观察了 sql profiler,SP 在 SetParameters 方法上被调用了两次 ** **(上图)
【解决方案2】:

更多的是解决方法而不是解决方案。

我们最终将其中一个参数的默认值设置为 -1,并且在存储过程中,我们仅在参数不是 -1 时才运行代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    相关资源
    最近更新 更多