我正在尝试在报告的文本字段中添加可选过滤器。我已尝试在数据集中进行设置,但它将其视为必需的过滤器,因此如果未填充,则不会返回任何结果。它需要使用Like运算符。有什么建议吗?
答案 0 :(得分:6)
当我打算解决这个问题时,我意识到了一个非常简单的解决方案(现在我更了解它是如何工作的)。
这是我做的: 由于洪指出必须满足所有过滤条件,我改变了我的想法。我将现有的“IN”过滤器移动到查询中,并将参数直接提供给查询。然后我在报告上创建了“LIKE”文本过滤器,其默认值为“*”,因此它会立即返回所有内容。
这就是我能做到的: 只是最后一部分。添加了“LIKE”过滤器,其默认值为“*”,因此它会立即返回所有内容。
答案 1 :(得分:2)
我也同意大多数时候最好将params发送回SQL。由于这不是OP所要求的,这是我找到的最佳选择。它实际上很简单。
使用适当的数据类型添加参数。我们来用吧 在这种情况下“城市”的示例(文本/字符串字段)。
检查参数上的“允许空值”。
将过滤器添加到Tablix,表格或数据集。
在表达式中,选择要筛选的字段。在我的数据集示例中选择适当的运算符,其值为:
= IIF((参数!City.Value无效),Fields!City.Value,Parameters!City.Value)
答案 2 :(得分:1)
我不认为您可以在DataSet属性/过滤器中创建可选过滤器,添加过滤器意味着返回与所有过滤器连词匹配的结果,因此它是所有过滤器之间的“AND”逻辑关系,而不是“OR”。 / p>
我的建议是在数据集的查询设计器中使用过滤器,您可以在其中定义“OR”关系以过滤掉数据。例如:Your_Text_Field =“SomeValue”或Your_Text_Field为空。
答案 3 :(得分:0)
虽然我同意大多数情况下最好将参数发送回存储过程或数据层以减少返回的数据量,但我有一个案例,即在参数处理中同样容易RDL文件通过过滤器。由于这种独特的情况,我找到了这个解决方案,它为您提供了一种在RDL文件中创建可选过滤器的方法。
http://www.andrewshough.com/development/sqlserver/ssrs/optional-filter-in-ssrs/
这是一篇很棒的博客文章,其中包含有关如何创建可选过滤器的简单分步说明。
请注意:这是不我的博客但是我虽然这个解决方案非常适合我需要的东西,我希望它可以帮助其他人,当他们google“可选过滤器在SSRS“就像我做的那样。
答案 4 :(得分:0)
我发现了一个帖子解决了我为报告使用者设置过滤器的问题a)所有多值字段都被选中,因此用户b)可以在必要时指定他/她的选择。
Kasim 2010年12月8日上午8:55#
在报告中我们要将多值参数默认为“全选”以下是步骤。
从“报告”菜单中打开“报告”参数窗口。
从窗口左侧选择Report参数。
选中“多值”复选框和相应的“可用值”。
在默认值下,选择“从查询”单选按钮'。
选择合适的“数据集”。
选择合适的“价值字段”。
- 醇>
保存报告并选择预览标签。您将找到在多值>参数列表中选择的所有项目,并显示所有选定项目的结果。
(The Post在评论中出现了很多。)
答案 5 :(得分:0)
您可以通过在数据集过滤器上使用表达式来完成此操作。 查看this