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)", " ")