在SSRS中使用拆分,合并和其他功能

时间:2018-07-18 09:12:30

标签: reporting-services sql-server-2014

我在SQL Server中有一个包含逗号分隔列表的字段。这里有两个例子:

select 'ex1,ex2,ex3' as str union all
select 'ax1,ax2' 

在我的报告中,我必须使用一个函数来转换所有这些值(本例中为5)。在这个问题中,我将使用Trim,但实际上,我们正在使用另一个具有相同作用域的定制函数。

我知道如何从字符串中拆分每个值并重新组合它们:

=Join(Split(Fields!str.Value,","),", ")

这很好。但是,我需要在重新组合值之前执行一个函数。我认为这会起作用:

=Join( Trim(Split(Fields!VRN.Value,",")) ,", ")

但是,这只是给我一个错误:

  

“字符串的一维数组”类型的值不能转换为“字符串”。 (rsCompilerErrorInExpression)

我不能亲自更改我们使用的功能。

在处理拆分和联接时如何使用额外的功能?

1 个答案:

答案 0 :(得分:1)

您可以使用自定义代码包括所有逻辑(拆分->自定义代码->加入)。

在循环内进行调整以调用自定义函数,而不是修剪

Public Function fixString (ByVal s As String) As String

Dim  mystring() As String  

mystring = s.Split(",")

For index As Integer = 0 To mystring.Length-1
    mystring(index) = Trim(mystring(index))
Next 

Return Join(mystring, ",")

End Function

要调用自定义代码,请使用以下表达式

Code.fixString( Fields!VRN.Value )