我有以下功能(在另一个问题上由此论坛上的某人回答):
Public Function mySplit(ByVal my_field As String) As String
Dim result As String = ""
If my_field is Nothing or my_field = "" Then
Return result
End If
Dim TestArray() As String = my_field.Split(New Char() {" "c})
Dim word as String
Dim counter as Integer = 0
For Each word In TestArray
counter = counter +1
If counter = TestArray.Length Then
result = result + word
Else
result = result + word + vbCrLf
End if
Next
Return result
End Function
这可以收集一些单词:
"IMAGE01 IMAGE02 IMAGE03"
并将其显示在报告中:
IMAGE01
IMAGE02
IMAGE03
但是,我有一些名为"IMAGESYS RES01"
的图像,因为上述功能被分成两行:
IMAGESYS
RES01
我需要避免这种情况,因为上面的"IMAGESYS RES01"
只是一个文件。
答案 0 :(得分:1)
如果它始终遵循模式IMAGESYS RESXX
,则该表达式应该起作用:
=REPLACE(Code.mySplit(REPLACE(Fields!YourField.Value,"S R","S_R")),"_"," ")
使用此示例IMAGE01 IMAGE02 IMAGE03 IMAGESYS RES01 IMAGESYS RES02
,它应返回:
IMAGE01
IMAGE02
IMAGE03
IMAGESYS RES01
IMAGESYS RES02
更新有关其工作原理的说明:
拆分没有什么不同,改变是我们将值传递给mySplit
函数的方式。 REPLACE(Fields!YourField.Value,"S R","S_R")
会改变您的字段并将其传递给mySplit
函数:
IMAGE01 IMAGE02 IMAGE03 IMAGESYS_RES01 IMAGESYS_RES02
mySplit
函数将根据上面传递的参数返回以下字符串。
IMAGE01
IMAGE02
IMAGE03
IMAGESYS_RES01
IMAGESYS_RES02
一旦函数返回上面的字符串,外部REPLACE
函数会替换_
" "
(空格),将字符串保留为:
IMAGE01
IMAGE02
IMAGE03
IMAGESYS RES01
IMAGESYS RES02
如果有帮助,请告诉我。