s-s-rS 报告为 Join 表达式提供错误

Posted

技术标签:

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

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

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)),"_") 【参考方案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 来获取月份的第一天。其余的计算可能保持不变。我已更新我的答案以反映变化

以上是关于s-s-rS 报告为 Join 表达式提供错误的主要内容,如果未能解决你的问题,请参考以下文章

s-s-rS 报告在 IF 子句中使用聚合表达式?

s-s-rS - 多值参数表达式

s-s-rs参数表达式条件

带有表达式的 s-s-rS 小计列

如何在 s-s-rS 中使用表达式转移到报告

s-s-rS 报告显示 #value 错误