今天一个同事在做报表的时候向我提了一个问题。他的问题大概是这样子:有一份带参数的报表,当用户输入一个参数,表格的内容根据该参数的条件筛选,当用户不输入参数时,表格内容将忽略该条件。

  当我们使用SQL语句去处理表格的数据集的时候,问题显然很容易解决。只要我们把WHERE子句改造一下WHERE (@A = '' OR A = @A)就可以实现了。但现在的问题是他做的报表的数据源是一个报表模型,筛选条件只能通过数据集中的筛选器进行改造。下面我将讲解这个筛选器的妙用。

  一般我们使用筛选器的方法如下;但这样做法不符合我们上面提到的要求。

  10

  那么我们该怎么做呢?很简单,点击值右侧的Fx按钮。仿照下图写上表达式。

  11

  然后设置一下参数的属性,允许空白值。

  运行一下看看效果。

  有输入值时,如下:

  12

  无输入值时,如下:

  13