我应该在报告中使用函数还是参数?
Should I use a function or a parameter in my report?
SSRS 使您能够使用 parameters:
或者您实际上可以 write your own function 在 RDL 文件中:
我想知道在什么情况下会使用函数的功能而不是参数,因为您可以在两者中实现逻辑>?
例如,MSDN 选择编码为:
Public Function ChangeWord(ByVal s As String) As String
Dim strBuilder As New System.Text.StringBuilder(s)
If s.Contains("Bike") Then
strBuilder.Replace("Bike", "Bicycle")
Return strBuilder.ToString()
Else : Return s
End If
End Function
我也可以在参数中创建一个 IIF 语句并执行相同的操作。
多年来我一直在使用 SSRS,但从未使用过函数 (vba)。我认为最好使用参数。我的建议是基于以下原因....
- SSRS 是一种旨在呈现数据的工具。数据操作最好在 sql 服务器上处理。
- 使用参数还可以让您在更靠近数据源的地方进行数据操作。只带报告实际需要的数据。将数据带入SSRS,再用函数过滤掉,显然会涉及到不必要的数据处理。
- 当您将所有代码放在一个地方时,代码维护会更容易。 (sql 服务器中的存储过程,ssrs 报告中的函数)。
- 为什么要重做已经为您处理的工作。您显示的函数示例可以使用 sql-server 的内置替换功能轻松替换(同样 sql-server 将比 ssrs 更好更快地处理这个问题)。
并且列表还在继续......正如他们所说 keep it simple
,尽量充分利用 sql 服务器和 ssrs 的内置功能,避免编写不必要的代码。
SSRS 使您能够使用 parameters:
或者您实际上可以 write your own function 在 RDL 文件中:
我想知道在什么情况下会使用函数的功能而不是参数,因为您可以在两者中实现逻辑>?
例如,MSDN 选择编码为:
Public Function ChangeWord(ByVal s As String) As String
Dim strBuilder As New System.Text.StringBuilder(s)
If s.Contains("Bike") Then
strBuilder.Replace("Bike", "Bicycle")
Return strBuilder.ToString()
Else : Return s
End If
End Function
我也可以在参数中创建一个 IIF 语句并执行相同的操作。
多年来我一直在使用 SSRS,但从未使用过函数 (vba)。我认为最好使用参数。我的建议是基于以下原因....
- SSRS 是一种旨在呈现数据的工具。数据操作最好在 sql 服务器上处理。
- 使用参数还可以让您在更靠近数据源的地方进行数据操作。只带报告实际需要的数据。将数据带入SSRS,再用函数过滤掉,显然会涉及到不必要的数据处理。
- 当您将所有代码放在一个地方时,代码维护会更容易。 (sql 服务器中的存储过程,ssrs 报告中的函数)。
- 为什么要重做已经为您处理的工作。您显示的函数示例可以使用 sql-server 的内置替换功能轻松替换(同样 sql-server 将比 ssrs 更好更快地处理这个问题)。
并且列表还在继续......正如他们所说 keep it simple
,尽量充分利用 sql 服务器和 ssrs 的内置功能,避免编写不必要的代码。