【问题标题】:SSRS: Adding a filter that returns information from entire groupSSRS:添加一个从整个组返回信息的过滤器
【发布时间】:2015-12-16 21:18:42
【问题描述】:

我正在尝试在 SSRS 中创建报告。下面是我的数据集的一个小例子。

Example Data Set

因此,有三个不同的商店(A、B、C),每个商店都有一个房东(a、b、c)。房东可以通过三种不同的方式(1、2、3)付款,并显示每种方式支付的金额。

现在,我设置了两个过滤器。第一个是商店,第二个是房东。

我遇到的问题是: 如何按金额设置过滤器,以返回整个商店/房东的信息?

例如,如果我想按 150 筛选金额,我想返回支付 150 的商店的所有“付款”信息。例如:

Desired Result

是否可以添加过滤器以返回整个组的信息? (本案例中Store和Landlord是组)

我是 SSRS 的新手,因此非常感谢任何帮助/见解!

【问题讨论】:

    标签: ssrs-2014


    【解决方案1】:

    您可以使用 LookUpSet 定位匹配组,使用 JOIN 将结果放入字符串中,使用 INSTR 函数过滤您的结果。

    =IIF(ISNOTHING(Parameters!AMOUNT.Value) OR INSTR(
    Join(LOOKUPSET(Fields!Amount.Value, Fields!Amount.Value, Fields!Store.Value, "DataSet1"), ", ") , 
    Fields!Store.Value
    ) > 0, 1, 0)
    

    这转化为: 如果在 Stores 的列表 (JOIN) 中找到 Store 值 (INSTR > 0),其中 Amount 是当前 Amount (Lookupset)。

    在您的过滤器中,将上述表达式放在 Expression 中,将 type 更改为 INTEGER,将 Value 更改为 1。

    [

    【讨论】:

    • 这很有帮助。我面临的另外两个问题。我稍微修改了代码,以便用户可以输入提示的数量作为过滤参数。但是,如果您尝试将参数留空,则报告将不会运行(即无法评估过滤器)。那么,有没有办法让这个工作,以便用户可以将参数留空或填写?其次,当使用上述过滤器运行报告时,它会提供具有“x”数量的所有属性,但也会提供一些没有该数量的属性......为什么会发生这样的事情?
    • 更新:我发现了第二个问题。不过在第一个问题上仍然需要帮助。
    • 我在 IIF 语句中添加了一个 OR,这样如果 AMOUNT 参数为 blank (ISNOTHING),它将重新运行所有记录。
    • 这在原则上是有道理的,但是它返回一个错误,说只有当参数留空时它才能评估过滤器表达式
    • 您是否在参数上勾选了允许空值
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    相关资源
    最近更新 更多