SRSS 表达式来拆分不包括特定字符串的字符串 [英] SRSS Expression to split strings excluding specific string

查看:64
本文介绍了SRSS 表达式来拆分不包括特定字符串的字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下功能(此论坛上有人在另一个问题中回答):

I have the following function (answered by someone on this forum in another question):

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" 的图像,由于上述功能,它们被分成两行:

However, I have some images named "IMAGESYS RES01" which because of the above function are being split onto two lines:

IMAGESYS
RES01

我需要避免这种情况,因为上面的 "IMAGESYS RES01" 只是一个文件.

I need to avoid this, as the above "IMAGESYS RES01" is just one file.

推荐答案

如果它总是遵循模式 IMAGESYS RESXX 这个表达式应该可以工作:

If it always follows the pattern IMAGESYS RESXX this expression should work:

=REPLACE(Code.mySplit(REPLACE(Fields!YourField.Value,"S R","S_R")),"_"," ")

对于这个例子 IMAGE01 IMAGE02 IMAGE03 IMAGESYS RES01 IMAGESYS RES02 它应该返回:

With this example IMAGE01 IMAGE02 IMAGE03 IMAGESYS RES01 IMAGESYS RES02 it should return:

IMAGE01
IMAGE02
IMAGE03
IMAGESYS RES01
IMAGESYS RES02

UPDATE 关于它是如何工作的解释:

UPDATE Explanation about how it is working:

拆分没有什么不同,变化在于我们将值传递给 mySplit 函数的方式.REPLACE(Fields!YourField.Value,"S R","S_R") 将您的字段转换为该字段并将其传递给 mySplit 函数:

The split does nothing different, the change is in the way we pass the values to the mySplit function. The REPLACE(Fields!YourField.Value,"S R","S_R") turns your field in this and pass it to the mySplit function:

IMAGE01 IMAGE02 IMAGE03 IMAGESYS_RES01 IMAGESYS_RES02

mySplit 函数将根据上面传递的参数返回下面的字符串.

The mySplit function will return the below string based on the above passed argument.

IMAGE01
IMAGE02
IMAGE03
IMAGESYS_RES01
IMAGESYS_RES02

一旦函数返回上面的字符串,外部的 REPLACE 函数将 _ 替换为 " " (空格),将字符串保留为:

Once the function returns the above string the outer REPLACE function replace the _ for " " (whitespace), leaving the string as:

IMAGE01
IMAGE02
IMAGE03
IMAGESYS RES01
IMAGESYS RES02

如果这有帮助,请告诉我.

Let me know if this helps.

这篇关于SRSS 表达式来拆分不包括特定字符串的字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆