如果更改了另一个参数下拉值,是否可以更改一个参数下拉值?
例如,您有两个参数:
下拉YEAR(存储过程中填充的int值:2016、2017、2018)
下拉TYPES(存储过程中的产品文本值列表)
我们可以选择YEAR 2018,它将在TYPES中显示特定值。然后选择其他年份并显示DEFAULT值吗?这两个参数都在调用存储过程。
短内: 想法是选择年份,只在与该YEAR产品类型相关的TYPE参数中显示。
答案 0 :(得分:1)
您可以这样做,但有一些警告。
日期选择器不能很好地工作,但是如果您仅选择数字9作为年份,那应该没问题。
如果您选择一年以上(例如,选择2018年,然后改变主意,然后选择2017年),则默认的默认值可能未设置为期望值。
基本上,您只需要制作秒数数据集,就取决于第一个参数的值。我不知道您的数据是什么样子,但假设您有一个大型数据集,并且每条记录都有Year,Type和一些更详细的列。
假设您要选择年份,然后从s中存在该年份的类型列表中进行选择。我不会介绍最终的数据集,因为它不属于您的问题..
因此,假设第一个存储的proc做类似
CREATE PROC GetYears AS
SELECT DISTINCT [year] FROM myTable ORDER BY [Year]`
创建一个名为dsYears
的数据集,并将其指向该存储的过程。
在SSRS中,您将创建一个名为say @pYear的参数,并将可用值设置为指向dsYears
现在创建您的第二个存储过程,该过程接受一个年份作为参数,这样该过程将类似于
CREATE PROC GetTypes(@pYear as int) AS
SELECT DISTINCT [Type] FROM myTable WHERE [Year] = @pYear
创建一个名为dsTypes
的秒数据集,并将其指向存储参数设置为@pYears参数的秒存储过程。
现在创建第二个名为@pTypes的参数,make是多值的(我假设您希望在最终报告中一次选择多个类型)。将可用的AND默认值设置为指向dsTypes
应该的。我已经从内存中完成了此操作,因此它可能并不完全正确,但希望足够接近。