基于其他参数值,以字母方式更改SSRS参数中的默认值。

基于其他参数值,以字母方式更改SSRS参数中的默认值。

问题描述:

我有一个3 cascading parameters的报告。用户类型,地区,地区和办公室。我有以下要求。 1.当user-typeManager时,用户必须选择Region, District and office下拉列表。 2.当user-typeDistrict Manager时,Regiondistrict下拉式需要填写default[first value from data-set],用户必须选择office drop-down基于其他参数值,以字母方式更改SSRS参数中的默认值。

因此,other parametersdefault值需要根据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 

,但它非常快速安装,易于保持,你也不需要依赖数据集中记录的顺序,这可能会在未来出现问题。

+0

谢谢。我们如何处理没有参数默认值的用户? – bmsqldev

+0

这取决于您的数据库结构。修改您的帖子以显示默认值与用户的关联方式,我将更新答案。 –