在SSRS中,是否可以从报表函数中引用报表变量?
下面是我的报告函数。与在函数中声明和设置MaxRFWIDRange不同,我宁愿引用一个同名的报告变量。
Function ValidateRFWIDRange(FromRFW As Integer, ToRFW As Integer) As Boolean
Dim DiffRFW As Integer
Dim MaxRFWIDRange As Integer
MaxRFWIDRange = 10000
DiffRFW = ToRFW - FromRFW
If DiffRFW > MaxRFWIDRange Then
Return False
Else
Return True
End if
End Function
看起来你可以做到。
我通过向报告添加一个变量TestVariable
来测试这一点,然后添加以下自定义代码:
Function TestVariableFunctionality(var as Microsoft.ReportingServices.ReportProcessing.OnDemandReportObjectModel.Variable) As String
Return var.Value
End Function
我从一个文本框中调用这个函数,像这样:
=Code.TestVariableFunctionality(Variables!TestVariable)
在文本框中以字符串的形式输出变量的值。
必须声明完整的命名空间为Microsoft.ReportingServices.ReportProcessing.OnDemandReportObjectModel.Variable
,因为没有单独定义Variable
。
访问SSRS函数中的变量
来自MSDN博客:
假设您已经创建了一个名为"Reportvariable1"的报告变量。
你所需要的只是一段自定义代码。
公共函数SetVariableValue(val as microsoft . reportingservices . reportprocessing . ondemandreporttobjectmodel . variable)
瓦尔。Value = Value .Value + 2
结束功能
就是这么简单。我在函数中所做的就是,获取报告变量引用,将2添加到现有值。就是这样。
如何从报表项调用此函数?
= Code.SetVariableValue(变量! Reportvariable1)
这将发挥魔力。还要注意,在上面的表达式中,我只是传递了变量reference,而不是它的值。