【问题标题】:SSRS Report giving error for Join expressionSSRS 报告为 Join 表达式提供错误
【发布时间】:2021-06-07 08:45:24
【问题描述】:

我在我的 SSRS 报告中声明了一个多值参数。该参数是一个日期,它有多个值,如:

06/01/2021
05/01/2021
04/01/2021

现在,当我选择日期为 06/01/2021, 05/01/2021 时,表达式应显示为 Reportname_,其中包含前几个月的第一个和最后一个日期。 示例:如果我选择日期为

06/01/2021
05/01/2021
04/01/2021

那么结果应该是

报告名称_05/01/2021-05/31/2021_04/01/2021-04/30/2021_03/01/2021-03/31/2021

我尝试加入但出现错误。我使用的表达式是

Join(dateadd(“m”,-1,dateserial(year(Parameters!date.Value(0)), month(Parameters!date.Value(0)), 1)) & 
"-" & 
dateadd(“m”,0,dateserial(year(Parameters!date.Value(0)), month(Parameters!date.Value(0)), 0)), "_")

【问题讨论】:

  • 请提供有关返回错误的表达式的更多详细信息
  • @niktrs textrun 'textbox1.Paragraphs[0].TextRuns[0]' 的值表达式包含错误:[BC30518] 重载解析失败,因为无法使用这些调用任何可访问的 'Join'参数:'Public Function Join(SourceArray() As String, [Delimiter As String = " "]) As String':'String' 类型的值不能转换为'String 的一维数组'。 'Public Function Join(SourceArray() As Object, [Delimiter As String = " "]) As String': 'String' 类型的值不能转换为'Object 的一维数组'。
  • 加入(dateadd(“m”,-1,dateserial(year(Parameters!date.Value(0)),month(Parameters!date.Value(0)),1))&" -"&dateadd(“m”,0,dateserial(year(Parameters!date.Value(0)),month(Parameters!date.Value(0)),0)),"_")

标签: sql reporting-services ssrs-2008 ssrs-2008-r2


【解决方案1】:

您必须使用自定义代码来解析您的参数并创建字符串表达式

将以下自定义代码添加到您的报告中

Public Function ParseDate(ByVal parameter as Parameter) as String

Dim s as String 
Dim seperator as String 
Dim dt as Date

    For i as integer = 0 to parameter.Count-1
     dt = DateSerial(Year(parameter.Value(i)), Month(parameter.Value(i)), 1)
      s = s + seperator + Format(DateAdd("m",-1,dt),"MM/dd/yyyy") + "-" + Format(DateAdd("d",-1, dt),"MM/dd/yyyy") 
      seperator = "_"

    Next
 
   Return s
End Function

对于返回报告名称和日期值的文本框,请使用以下表达式

=Globals!ReportName & "_" & Code.ParseDate(Parameters!Date)

【讨论】:

  • 谢谢,如果选择日期是 06/20/2021,那么解析的表达式日期也应该是 05/01/2021-05/31/2021。那么我们需要在上面的函数中改变什么?
  • 它需要使用 DateSerial 来获取月份的第一天。其余的计算可能保持不变。我已更新我的答案以反映变化
猜你喜欢
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-16
  • 1970-01-01
  • 2010-10-27
  • 1970-01-01
相关资源
最近更新 更多