【问题标题】:Mutually dependent parameters相互依赖的参数
【发布时间】:2018-11-29 05:19:45
【问题描述】:

如果另一个参数下拉值已更改,是否可以更改一个参数下拉值?

例如,你有两个参数:

  1. 下拉 YEAR(从存储过程中简单填充的 int 值:2016,2017,2018)

  2. 下拉类型(存储过程中的产品文本值列表)

我们可以选择 YEAR 2018,它会在 TYPES 中显示特定值。然后选择任何其他年份并显示 DEFAULT 值?这两个参数都在调用存储过程。

简而言之: 想法是选择年份,只显示在与该年份产品类型相关的 TYPE 参数中。

【问题讨论】:

  • 级联参数; Alan 在下面为您提供了一个很好的解决方案。

标签: reporting-services ssrs-2008-r2 ssrs-tablix


【解决方案1】:

您可以这样做,但有一些注意事项。

日期选择器效果不佳,但如果您只选择年份 9 作为数字)那么这应该没问题。

如果您多次选择一年(即您选择 2018 年然后改变主意并选择 2017 年),则默认选择值可能不会设置为您期望的值。

基本上你只需要制作秒数据集,依赖于你的第一个参数的值。我不知道你的数据是什么样的,但我们假设你有一个大数据集,每条记录都有一个年份、类型和一些更详细的列。

假设您要选择年份,然后从该年份存在的类型列表中进行选择。我不会涵盖最终数据集,因为它不是您问题的一部分..

假设第一个存储过程做了类似的事情

CREATE PROC GetYears AS
SELECT DISTINCT [year] FROM myTable ORDER BY [Year]`

创建一个名为 dsYears 的数据集并将其指向此存储过程。

在 SSRS 中,您创建一个名为 @pYear 的参数并将可用值设置为指向 dsYears

现在创建你的第二个存储过程,它接受年份作为参数,因此过程看起来像

CREATE PROC GetTypes(@pYear as int) AS
SELECT DISTINCT [Type] FROM myTable WHERE [Year] = @pYear

创建一个名为 dsTypes 的秒数据集,并将其指向秒存储过程,将参数设置为 @pYears 参数。

现在创建名为@pTypes 的第二个参数,make 是多值的(我假设您希望在最终报告中一次选择多个类型)。将可用的 AND 默认值设置为指向 dsTypes

应该是这样的。我是凭记忆完成的,所以它可能并不完全正确,但希望足够接近。

【讨论】:

    猜你喜欢
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    相关资源
    最近更新 更多