SSRS:如何使用自定义函数过滤查询

时间:2017-08-24 14:35:43

标签: function reporting-services expression ssrs-2012

使用VS 2015和SSRS版本14.0.608.142

我的报告属性的代码部分中有一个类似于下面的函数,我正在尝试使用它来过滤掉我的数据集中的值,但它没有返回任何值或给出任何错误。函数内部的值将在运行时由另一个应用程序更改,因此其中的值现在只是一个占位符。

Function FilterBy() As String
    FilterBy = "'REMIT'"
End Function

我将该函数用作参数中的默认值,参数位于我的数据集的where子句中,以过滤掉必要的值。

所以,在参数默认值内:

=code.FilterBy

数据集查询:

SELECT Blah 
FROM dbo.Table 
WHERE ID = @parameter;

1 个答案:

答案 0 :(得分:0)

所以,我在你的函数中注意到你正在设置一个变量而不是返回它。如果您尝试在报告属性中设置变量,则无法修改它们。那些东西是静态的。但是,您可以在代码中声明一个变量并使用set并获取它们。

dim FilterBy = "REMIT" Function getFilter() As String return FilterBy End Function Function setFilter(input as String) FilterBy = input End Function

因此,您的参数默认值为: =Code.getFilter()

另请注意,我没有向REMIT添加单引号。在查询中传递参数时,不需要向其添加单引号,它将由SSRS添加。除非数据库中的值为“REMIT”,否则请继续执行。