我是SSRS的新手。我认为应该很简单,花了我一天的时间,我无法解决它。我只需要以下
Select * from table1 where len(username) <= 6
Select * from table1 where len(username) >= 7
我想显示一个下拉菜单,其中包含两个选项Short Username和Long Username。 当用户名单击短用户名时,将显示第一个查询结果,当用户单击长用户名时,将显示第二个查询结果。
到目前为止,我添加了一个带有两个值的参数列表,即Short参数列表= 6和Long参数列表= 7.然后我添加了两个过滤器。在第一个表达式= len(NameColumn.value)operator =&lt; = value = @parameter。在第二个表达式= len(NameColumn.value)operator =&gt; = value = @parameter。你能取悦我能做些什么来实现它。
答案 0 :(得分:2)
我认为在查询中进行过滤可能会更好,而不是使用SSRS过滤器。试试这个查询。
select * from table1 where (@Parameter = 0 and len(username) <= 6) or (@Parameter = 1 and len(username) >= 7)
您的参数可以像这样设置。
答案 1 :(得分:2)
您可以在@ energ1ser提到的数据集中执行类似的FILTER。
您将拥有一个参数,用户可以选择Long或Short。您可以使用不同的值。
对于表达式,您将使用:
=IIF( (Parameters!YourParameter.Value = "Short" and LEN(FIELDS!USERNAME.VALUE) <= 6)
OR (Parameters!YourParameter.Value = "Long" and LEN(FIELDS!USERNAME.VALUE) >= 7), 1, 0)
对于类型,请使用整数,运算符 = 和值 1 。
此表达式将每行计算为 0 或 1 ,然后针对 1 对其进行过滤。
要显示所有记录,请在为参数选择全部时添加另一个 OR 。
=IIF( (Parameters!YourParameter.Value = "Short" and LEN(FIELDS!USERNAME.VALUE) <= 6)
OR (Parameters!YourParameter.Value = "Long" and LEN(FIELDS!USERNAME.VALUE) >= 7)
OR (Parameters!YourParameter.Value = "All"), 1, 0)