SSRS 在数字和字母字符之间插入 Space
SSRS Insert Space Between Numeric and Alpha Characters
我遇到一个问题,一个字段在我们的数据库中存储为“##ABC”,数字和字母之间没有 space。数字可以是 1-100 之间的任意值,字母可以是任意组合,因此开头字母或数字长度没有一致性。
我正在尝试找到一种在数字和字母之间插入 space 的方法。
例如,“1DRM”将转换为“1 DRM”
“35PLT”将转换为“35 PLT”
有谁知道实现这个的方法吗?
遗憾的是,没有内置函数可以执行此操作。
幸运的是,Visual Studio 允许您创建函数来帮助解决此类问题。
您可以通过转到“报表属性”并转到“自定义代码”选项卡来添加 Visual BASIC 自定义代码。
您只需要编写一些代码来逐个字符地处理一些文本输入。如果在下一个字符中找到数字和字母,则添加 space.
这是我在几分钟内写的似乎有效的内容:
Function SpaceNumberLetter(ByVal Text1 AS String) AS String
DIM F AS INTEGER
IF LEN(Text1) < 2 THEN GOTO EndFunction
F = 1
CheckCharacter:
IF ASC(MID(Text1, F, 1)) >= 48 AND ASC(MID(Text1, F, 1)) <=57 AND ASC(MID(Text1, F + 1, 1)) >= 65 AND ASC(MID(Text1, F + 1, 1)) <=90 THEN Text1 = LEFT(Text1, F) + " " + MID(Text1, F+1, LEN(Text1))
F = F + 1
IF F < LEN(Text1) THEN GOTO CheckCharacter
EndFunction:
SpaceNumberLetter = Text1
End Function
然后从文本框表达式中调用该函数:
=CODE.SpaceNumberLetter("56EF78GH12AB34CD")
结果:
我使用文本进行测试,但你会使用你的字段。
您可以使用如下正则表达式(假设您的模式是数字字符)
= System.Text.RegularExpressions.Regex.Replace( Fields!txt.Value, "(\d)(\D)", " ")
我遇到一个问题,一个字段在我们的数据库中存储为“##ABC”,数字和字母之间没有 space。数字可以是 1-100 之间的任意值,字母可以是任意组合,因此开头字母或数字长度没有一致性。
我正在尝试找到一种在数字和字母之间插入 space 的方法。
例如,“1DRM”将转换为“1 DRM” “35PLT”将转换为“35 PLT”
有谁知道实现这个的方法吗?
遗憾的是,没有内置函数可以执行此操作。
幸运的是,Visual Studio 允许您创建函数来帮助解决此类问题。
您可以通过转到“报表属性”并转到“自定义代码”选项卡来添加 Visual BASIC 自定义代码。
您只需要编写一些代码来逐个字符地处理一些文本输入。如果在下一个字符中找到数字和字母,则添加 space.
这是我在几分钟内写的似乎有效的内容:
Function SpaceNumberLetter(ByVal Text1 AS String) AS String
DIM F AS INTEGER
IF LEN(Text1) < 2 THEN GOTO EndFunction
F = 1
CheckCharacter:
IF ASC(MID(Text1, F, 1)) >= 48 AND ASC(MID(Text1, F, 1)) <=57 AND ASC(MID(Text1, F + 1, 1)) >= 65 AND ASC(MID(Text1, F + 1, 1)) <=90 THEN Text1 = LEFT(Text1, F) + " " + MID(Text1, F+1, LEN(Text1))
F = F + 1
IF F < LEN(Text1) THEN GOTO CheckCharacter
EndFunction:
SpaceNumberLetter = Text1
End Function
然后从文本框表达式中调用该函数:
=CODE.SpaceNumberLetter("56EF78GH12AB34CD")
结果:
我使用文本进行测试,但你会使用你的字段。
您可以使用如下正则表达式(假设您的模式是数字字符)
= System.Text.RegularExpressions.Regex.Replace( Fields!txt.Value, "(\d)(\D)", " ")