基于其他参数值,以字母方式更改SSRS参数中的默认值。
问题描述:
我有一个3 cascading parameters
的报告。用户类型,地区,地区和办公室。我有以下要求。 1.当user-type
为Manager
时,用户必须选择Region, District and office
下拉列表。 2.当user-type
为District Manager
时,Region
和district
下拉式需要填写default
值[first value from data-set]
,用户必须选择office drop-down
。基于其他参数值,以字母方式更改SSRS参数中的默认值。
因此,other parameters
的default
值需要根据user-type parameter
的值进行更改。我在Region parameter
的默认属性中尝试了下面的内容。
=iif(parameters!usertype.value = 'DM', first(Fields!RegionName.Value ,"RegionDataset"),nothing)
其给出以下错误..
字段不能在报表参数表达式中使用。
我们是否有任何解决方法在SSRS
基于其他参数值设置dynamic default
值?
答
最简单的方法是为您的默认值建立几个数据集,一个用于区域,一个用于区域。
例如,让我们创建一个名为dsRegionDefaults
的数据集,数据集查询可能看起来像这样。 (这是一个有点冗长,但我不;吨知道你的数据是什么样子是说明的最好方式),我知道这看起来是一个大量的工作
DECLARE @Regions TABLE (RegionID int, RegionName varchar(100))
IF @userType = 'Manager'
BEGIN
INSERT INTO @Regions
SELECT RegionID, RegionName FROM myTable
END
ELSE
BEGIN
INSERT INTO @Regions
SELECT RegionID, RegionName FROM myTable
WHERE something = somethingelse
END
SELECT * FROM @Regions
,但它非常快速安装,易于保持,你也不需要依赖数据集中记录的顺序,这可能会在未来出现问题。
谢谢。我们如何处理没有参数默认值的用户? – bmsqldev
这取决于您的数据库结构。修改您的帖子以显示默认值与用户的关联方式,我将更新答案。 –