我应该在报告中使用函数还是参数?

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)。我认为最好使用参数。我的建议是基于以下原因....

  1. SSRS 是一种旨在呈现数据的工具。数据操作最好在 sql 服务器上处理。
  2. 使用参数还可以让您在更靠近数据源的地方进行数据操作。只带报告实际需要的数据。将数据带入SSRS,再用函数过滤掉,显然会涉及到不必要的数据处理。
  3. 当您将所有代码放在一个地方时,代码维护会更容易。 (sql 服务器中的存储过程,ss​​rs 报告中的函数)。
  4. 为什么要重做已经为您处理的工作。您显示的函数示例可以使用 sql-server 的内置替换功能轻松替换(同样 sql-server 将比 ssrs 更好更快地处理这个问题)。

并且列表还在继续......正如他们所说 keep it simple,尽量充分利用 sql 服务器和 ssrs 的内置功能,避免编写不必要的代码。