【问题标题】:Change the default value in SSRS parameter dyanamically based on other parameter value.根据另一个参数值动态更改 SSRS 参数中的默认值。
【发布时间】:2017-10-05 19:58:26
【问题描述】:

我有一个与3 cascading parameters 的报告。用户类型、地区、地区和办公室。我有以下要求。 1.当user-typeManager时,用户必须选择Region, District and office下拉菜单。 2.当user-typeDistrict Manager时,Regiondistrict下拉框需要填写default[first value from data-set],用户必须选择office drop-down

因此,other parametersdefault 值需要根据 user-type parameter 值进行更改。我在Region parameter的默认属性下面试过了。

=iif(parameters!usertype.value = 'DM', first(Fields!RegionName.Value ,"RegionDataset"),nothing)

它给出以下错误..

字段不能用于报表参数表达式。

SSRS 中是否有任何解决方法可以根据其他参数值设置 dynamic default 值?

【问题讨论】:

    标签: sql sql-server reporting-services sql-server-2016


    【解决方案1】:

    最简单的方法是专门为您的默认值构建几个数据集,一个用于 Region,1 个用于 District。

    例如,让我们创建一个名为 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
    

    我知道这似乎需要做更多的工作,但设置起来非常快速且易于维护,您也不必依赖数据集中的记录顺序,这可能会在未来造成麻烦。

    【讨论】:

    • 谢谢。我们将如何处理参数中没有默认值的用户?
    • 这取决于您的数据库结构。编辑您的帖子以显示默认值如何与用户相关联,我会更新答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多