使用参数在新选项卡中进行 SSRS 钻取 - 链接打开但报告不会自动运行

问题描述 投票:0回答:1

我正在尝试将我们的报告之一设置为在新选项卡中打开钻取报告,而不是覆盖现有窗口。我对 SSRS 或 Visual Basic 不太熟悉,我主要从事 SQL 开发,但我一直在尝试从在线论坛中找出答案,这就是我到目前为止所拥有的:

="javascript:void(window.open('http://server/Reports/Pages/Report.aspx?ItemPath=%2fProgram+Directors+Report%2fTransaction+Detail+Report&rs:Command=Render&rc:Parameters=true&BeginDate="&Parameters!BeginDate.Value &"&EndDate="&Parameters!EndDate.Value &"&AvailRU="&Fields!sCodeIDf_2.Value &"&AvailAccnt="&Fields!sCodeIDf_0.Value &"&secoverride="&Parameters!secoverride.Value &"','_blank'))"

经过大量试验和错误,此尝试最终打开了钻取报告的工作链接,我可以在地址中看到正确的参数值,但是钻取报告实际上并未运行。

在当前版本的报告中,钻取会覆盖原始报告窗口,单击钻取链接将打开事务详细报告并使用传递的参数自动运行它,因此它看起来像这样,没有更改参数的选项:

在新版本中,钻取会打开一个包含此地址的新选项卡,因此所有参数都会传递:

http://server/Reports/Pages/Report.aspx?ItemPath=/Program+Directors+Report/Transaction+Detail+Report&rs:Command=Render&rc:Parameters=true&BeginDate=7/8/2023&EndDate=7/15/2023&AvailRU=1000&AvailAccnt=50010&secoverride=1

但是报告看起来像这样,因此它实际上尚未运行,并且参数下拉列表可见并设置为默认值:

谁能告诉我我做错了什么,或者当您单击钻取链接时我需要做什么才能使报表实际运行?谢谢!

reporting-services ssrs-2012
1个回答
0
投票

我认为您需要使用报告服务器 URL 而不是“报告”。

这个示例没有使用 JS 包装器在新选项卡中打开,但听起来实际的 URL 是错误的。

我通常将 URL 构建为类似这样的表达式(在文本框操作属性的 URL 表达式中)

= Globals.ReportServerUrl
+ "?/My+Report+Folder/My+Report+Name" 
+ "&CountryID=" + cStr(Fields!CountryID.Value)
+ "&CategoryID=" + cStr(Fields!CategoryID.Value)
+ "&RecordedPeriodID=" + cStr(Parameters!PeriodID.Value)
+ "&TMB=" + cStr(Fields!TrademarkBrandID.Value)
+ "&PriceStage=" + cStr(IIF(Fields!IsActualprice.Value = 1, 10, 11))
+ "&pm=" + cStr(Fields!PackMaterialID.Value)
+ "&pt=" + cStr(Fields!PackTypeID.Value)
+ "&ps=" + cStr(Fields!PackSizeID.Value)
+ "&psu=" + cStr(Fields!PackSizeUnitID.Value)
+ "&upp=" + cStr(Fields!UnitsPerPack.Value)
+ "&rc:Parameters=Collapsed"

这会给你这样的东西。

http://mySSRSServerName/ReportServer?/My+Report+Folder/My+Report+Name&CountryID=9&CategoryID=2&RecordedPeriodID=2022000&TMB=3351&PriceStage=10&pm=1&pt=1&ps=34&psu=1&upp=1&rc:Parameters=Collapsed

重要提示:我使用

Globals.ReportServerURL
,因此它可以在不同的服务器上工作,但请注意,这只有在将报表部署到 SSRS 后才起作用,而不是从 Visual Studio 中起作用(未在报表生成器中进行测试 - 如果连接到服务器可能会起作用) .

报告不会自动运行的唯一原因是未传递一个或多个参数。

这样做的另一个优点是,即使您将其导出到 Excel,链接仍然有效,它仍然会在浏览器中打开钻取报告。

最后您可以看到我隐藏了参数部分,但这通常始终存在,您只需单击主报告区域上方的边框即可再次看到它们。

© www.soinside.com 2019 - 2024. All rights reserved.