【问题标题】:Should I use a function or a parameter in my report?我应该在报告中使用函数还是参数?
【发布时间】:2015-03-09 12:59:23
【问题描述】:

SSRS 让您能够使用parameters

或者,您实际上可以在 RDL 文件中 write your own function

我想知道在什么情况下会使用函数的功能而不是参数,因为您可以在两者中实现逻辑>?

例如,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 语句并执行相同的操作。

【问题讨论】:

  • 这是一个关于偏好的问题... ;)
  • 嗯,这确实是我的问题,是关于偏好,还是有什么时候使用什么的标准做法?
  • 例如,我多年来一直使用参数,直到今天我才知道我实际上可以编写函数!
  • 我更喜欢使用自定义函数。对我来说,它更灵活;)

标签: sql sql-server vba reporting-services


【解决方案1】:

我多年来一直在使用 SSRS,但从未使用过函数 (vba)。我认为最好使用参数。我的建议是基于以下原因....

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

不胜枚举....正如他们所说的keep it simple,尽量充分利用sql server 和ssrs 的内置功能,避免编写不必要的代码。

【讨论】:

  • 非常感谢。你给了我很多清晰。有时会发现您无权访问 sql server。比如crm online,只能通过web服务查询,限制很大,不得不在前端做很多处理
  • 很好的解释 ;)
  • @Yuck yup 当您使用访问受限的源时,显然使用这些功能是有意义的,但是由于您的问题被标记为 sql server,我不会使用 sql-server但是是的,也许有像 crm-online 这样的数据源 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-11
  • 1970-01-01
  • 1970-01-01
  • 2011-01-12
  • 2014-11-09
  • 2011-01-18
  • 1970-01-01
相关资源
最近更新 更多