【问题标题】:Passing Parameters To report using url address传递参数使用url地址进行报告
【发布时间】:2026-02-23 12:30:02
【问题描述】:

我正在为 Dynamics Ax 中的主页开发一些报告,但是我遇到的问题与 SSRS 有关。典型场景我有报表A和报表B,点击报表B时需要打开报表A。打开报表本身是正确的,但是传递参数比较棘手。经过一些研究,我想在浏览器中使用地址运行报告 A

http://(serveraddress)/Reports/Pages/Report.aspx?ItemPath=/Dynamics/Reports.VendorsOpenTransactionsCount.AutoDesign1&rs:Command=Render&VendOpenTrans_dataAreaID=dor&VendOpenTrans_p1=2011-07-21&VendOpenTrans_p2=2011-07-21

然后我显示报告(主窗口),但没有参数被验证到正确的文本框中,并且更改它们的值没有任何影响。 谁能帮我解决这个“挑战”

【问题讨论】:

    标签: url reporting-services parameters


    【解决方案1】:

    实际上,我认为关键的区别在于您是将参数(通过 URL)传递给使用数据库引擎还是 SSAS(分析引擎作为数据源)的报表。

    如果您的数据源是分析引擎,那么您的参数应该以“维度格式”给出,而不是像 &parmname=140 等精确格式。请允许我使用具体示例和使用 SSAS 数据源进行解释对于这个插图(网上有很多基于数据库引擎的解决方案,包括微软的帖子)。

    我的服务器名称是 FRELASM。 所以,我有一个名为 DealerSource 的 SSAS 数据源(此处不可见)。

    我在 SSRS 的参数部分中将参数定义为:@DwDimDealerCorpDlrNbr

    在 SSAS 中,我有以下维度:

    • [Dw dim Dealer] 具有属性:[Corp Dlr Nbr] ==> 给予:[Dw dim Dealer].[Corp Dlr nbr]

    我想要显示一个等于 00140 的单个经销商“编号”(但它是一个文本字段,因此前导零)的报告。所以,我正在寻找企业经销商编号 = 00140。

    如果我使用this,则参数传递不起作用[这将在数据库引擎中找到,但它不适用于 SSAS)。

    你需要的是这个:

    1. [dimension].[attribute].[value]替换常量00140
    2. 不要使用& 字符,而是将其替换为:%26

    所以,工作版本是this

    【讨论】:

      【解决方案2】:

      你能看看这个页面吗:http://msdn.microsoft.com/en-us/library/ms155391.aspx

      它解释了何时可以通过 URL 传递参数。也许您的参数未设置为提示用户输入。 HTH。

      【讨论】:

      • Cam L,谢谢你的努力,但我已经通过 msdn 并检查了这个,但对我来说没有用,在一些论坛上,我发现了一个提示,有时会删除"rs:Command = Render " 有帮助,但也没有帮助