使用可选的多值文本框作为数据集过滤器

时间:2013-02-27 00:22:17

标签: reporting-services optional-parameters

我有一份报告,它会返回产品名称列表和其他产品规格。此报告目前有不同的搜索选项。我的用户现在也希望能够通过输入多个产品编号按产品编号进行搜索。

如何按产品编号添加过滤器,这是一个可选的多值文本框? 我试图添加一个多值文本框。如果未输入任何值,则报告似乎不起作用。如果我在文本框中放入一个或多个产品编号,它似乎工作正常。有没有办法可以告诉报告没有过滤Null值参数?或者使用可选的多值参数的任何其他想法?

以下是我的多值文本框

的设置
    Name = ProductNumber
    Prompt = Product Number
    Data Type = Text
    Allow Blank Value (checked)
    Allow Null value (not checked)
    Allow Multiple Values (checked)

这是数据集过滤器

    Expression = [ProductNumber]
    Operator = In
    Value = [@ProductNumber]

由于

TL

2 个答案:

答案 0 :(得分:3)

我认为您应该通过以下方式欺骗数据集过滤器:

  1. 表达式应该检查参数是否为空,如果是,则给表达式1,否则为字段。
  2. 值应执行相同的检查,如果参数为空,则将设置值设置为1,否则将其设置为参数。
  3. 但请保留您的运营商。


    或者,您可以在SQL中以类似方式执行此操作,并具有更高的灵活性和性能。

答案 1 :(得分:2)

正如您在自己的测试中看到的那样,必须使用多值参数选择至少一个值。您无法在设计时将Allow null value设置为true,如果您在未选择任何值的情况下运行报告,则会抛出错误消息。

所以你真的没有一个报告,用户可以在没有选择值的情况下运行它。

退一步后,忽略参数时要尝试实现的目的是默认包含所有产品编号。那么为什么不设置参数以选择所有产品编号的默认值?这样,如果用户不想按产品编号进行过滤,用户可以忽略并将其全部勾选。对我来说似乎是一个很好的解决方法。

要执行此操作,请使用填充参数的相同数据集设置参数的默认值:

enter image description here

现在选择了所有产品编号,如果用户希望返回这些产品的子集,则用户只需采取措施。