如何从 "base" SSRS 报告向辅助报告提供报告参数?

How can I supply report parameters to ancillary reports from a "base" SSRS report?

我需要几份(四份)报告,它们除了特定参数的值外都相同。不过,我不希望用户必须手动输入所有参数。

当他们输入以下参数时:

BEATLES
-------
BegDate: 1962
EndDate: 1970
Unit: Beatles

我想向 运行 发送四份报告,使用这些参数:

LENNON
------
BegDate: 1962
EndDate: 1970
Unit: John Lennon

MCCARTNEY
---------
BegDate: 1962
EndDate: 1970
Unit: Paul McCartney

HARRISON
--------
BegDate: 1962
EndDate: 1970
Unit: George Harrison

STARR
-----
BegDate: 1962
EndDate: 1970
Unit: Ringo Starr

因此,当用户输入三个参数时,前两个 ("date") 参数以及 appropriate-for-the-ancillary-report "Unit" 参数 ("John Lennon" 到第一个,"Paul McCartney" 到第二个,依此类推。

报告 "robot" 在该人输入 "Beatles" 单位后自言自语:"Oh, he entered 'Beatles'! So I'll pass 'John Lennon' as the Unit parameter to the first report, 'Paul McCartney' as the Unit parameter to the second report, "(等)。

我尝试通过在几乎相同的存储过程中提供文字值来做到这一点(在某种程度上进行了阐述,但它根本不起作用。

所以我正在寻找其他方法将多个相关但不同的报告放在同一表面上。最终目标是确保当 运行 导出为 Excel 时,每个报告(LENNON、MCCARTNEY 等)都在 Excel 中单独显示 sheet =] 文件.

不过现在,我只需要知道如何将适当的参数从一个报告 ("BEATLES") 传递到其他报告("LENNON",等等)。我认为这些是不同的报告,全部嵌入一个报告 project/page,但也许它们需要是一个报告,然后是一堆子报告(如果你正在阅读这篇文章,你可能比我更了解SSRS 的内部运作和变幻莫测)。

那么,我如何向来自 "base" SSRS 报告的辅助(子?)报告提供报告参数 - 或者是否有 another/better 方法来完成此操作?

我有一个可能适合你的解决方案。

使用您上面提到的 3 个参数创建报告。在报告中添加一个将采用 3 个参数的数据集和 return 一个类似于此的数据集:

Band      Member          Start   End     Page
Beatles   John Lennon     1962    1970    LENNON
Beatles   Paul McCartney  1962    1970    MCCARTNEY
…

在报表正文中,从工具箱中添加一个列表。将列表的数据集名称设置为上面数据集的名称。在 Row Groups pain 中,列表将有一行标记为 (Details)。右键单击该行并从上下文菜单中选择组属性。添加一个新组并选择 Page 作为要分组的列。转到组属性对话框的分页符部分并选中 组的每个实例之间。如果需要,请添加排序,然后单击“确定”按钮。

确保选中行组中的(详细信息)行,然后在属性面板中查找组选项。展开它,然后查找页面名称设置。像这样在字段中添加一个表达式(下面的屏幕截图也是):

=Fields!Page.Value

这将使报表中的每个页面都以此值作为名称。因此,当您将其导出到 Excel 时,每个 sheet 将根据此值拥有自己的名称。

在列表中添加文本框,并将它们的值设置为您在每个页面上需要的字段。在这种情况下 PageStartEndMember。如果您想匹配问题中的内容,请添加标签。

只要在您选择正确的参数时数据集 return 是预期的 4 行,您最终应该得到一份包含 4 页的报告,每个乐队成员一页。当您将其导出到 Excel 时,您将有 4 个 sheet,它们应该具有 Page 字段中的名称。

希望对您有所帮助!

根据所写 here,我是这样完成的:

我添加了一个子报表,然后将现有报表拖到它上面。然后我选择上下文菜单项 "Subreport Properties" 并添加一个参数 ("Unit"),为其提供一个 "hard-coded/baked-in" 值 ("CHOPHOUSE") 与主报告的用户。

然后,由于我想保留与现有报告相同的日期值,我向子报告添加了两个参数,并将它们设置为使用与主报告中使用的日期范围相同的值选择 "formula" ("fx") 按钮并单击 2 次要用作传入(tramp)值的适当参数:

行得通。

我在类似问题的答案中提供了更多详细信息