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

Reporting services 使用可选的多值文本框作为数据集过滤器,reporting-services,optional-parameters,Reporting Services,Optional Parameters,我有一份报告,它返回产品名称和其他产品规格的列表。此报表当前有不同的搜索选项。我的用户现在也希望能够通过输入多个产品编号按产品编号进行搜索 如何按产品编号添加过滤器(可选多值文本框)? 我尝试添加多值文本框。当没有输入值时,报告似乎不起作用。如果我在文本框中输入一个或多个产品编号,它似乎可以正常工作。有没有一种方法可以告诉我报告不过滤空值参数?或者有没有其他想法来处理可选的多值参数 这是我的多值文本框的设置 Name = ProductNumber Prompt = Produc

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

如何按产品编号添加过滤器(可选多值文本框)? 我尝试添加多值文本框。当没有输入值时,报告似乎不起作用。如果我在文本框中输入一个或多个产品编号,它似乎可以正常工作。有没有一种方法可以告诉我报告不过滤空值参数?或者有没有其他想法来处理可选的多值参数

这是我的多值文本框的设置

    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

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

  • 表达式应检查参数是否为空,如果为空,则在字段中为表达式a 1
  • 值应执行相同的检查,如果参数为空,则将值设置为1,否则将其设置为参数
  • 但请留下接线员



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

    因此,正如您在自己的测试中所看到的,必须使用多值参数选择至少一个值。您不能在设计时将
    允许空值
    设置为true,如果您运行报表时未选择任何值,它将抛出错误消息

    因此,您不能真正拥有一个报表,用户可以在不选择任何值的情况下运行它

    退一步说,当忽略该参数时,您试图实现的是在默认情况下包括所有产品编号。那么,为什么不将参数设置为选择所有产品编号的默认值呢?这样,如果用户不想按产品编号进行过滤,就可以忽略它们并将它们全部打勾。对我来说似乎是一个很好的解决办法

    为此,请使用填充参数的相同数据集设置参数的默认值:


    现在,所有产品编号都已选定,用户只需在希望返回其中的一个子集时采取行动。

    我不知道这里的问题是什么。。。按照我的理解,似乎您已经设置了一个正常工作的多值参数?对于多值参数,始终必须至少选择一个值。你能确认一下你想要实现什么吗?嗨,伊恩,我想要实现的是在我的报告中有一个可选的多值文本框(按产品编号过滤)作为搜索条件之一。这意味着用户可以决定是将一个或多个产品编号用于搜索,还是可以忽略按产品编号搜索。明白了,谢谢更新。谢谢你的建议,伊恩。我遇到的问题是,文本框中没有填充产品编号,用户无法选中或取消选中。文本框是一个空白文本框,用户可以将一个或多个产品编号(逐行)粘贴到其中。报告将自动在它们之间放置昏迷分隔符。谢谢glh。您能告诉我如何在dataset filter中的值设置处执行表达式吗?不确定它是否是我的报告版本(MS VS 2008,SQL 2008)。当操作员处于“In”状态时,“Expression”按钮将变灰。老实说,根据最近的评论,在数据库级别执行此操作将是目前为止最简单的选择。所以这个选项是+1。