使用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;
答案 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”,否则请继续执行。