从字符串 SSRS 中删除空行

Remove Blank Lines from String SSRS

我的 SSRS 报告中有一个字段有多个回车 returns,例如:

 First, get materials



 Next, glue them all together

 Last, let dry for two hours

所有六行都在一个字段中,而不是 7 行。我知道我可以 replace/remove 马车 returns,但我真正想要的是能够只删除空白行。我仍然想在有文字的行上保留马车 returns,如下所示:

 First, get materials
 Next, glue them all together
 Last, let dry for two hours

非常感谢对此的任何帮助。

谢谢!

我认为你的问题是每行中可能存在多个 return carriage/new 行字符,而你的预期结果是将每行仅除以一个 return 回车或新的行字符。

我认为可以使用 Regex 替换方法来避免(是的,您可以在 SSRS 中使用 Regex)。

如果您确定您的来源正在使用回车符生成新行 return 您可以使用:

=System.Text.RegularExpressions.Regex.Replace(Fields!MultilineText.Value,
"\r\r+",Environment.NewLine) 

否则,如果您的源代码通过换行符(ascii 中的代码 10)生成下一行,您应该使用:

=System.Text.RegularExpressions.Regex.Replace(Fields!MultilineText.Value,
"\n\n+",Environment.NewLine)

注意大多数 Windows 系统使用 \r\n 来确定行尾,根据您的环境进行相应替换。

更新:

=System.Text.RegularExpressions.Regex.Replace(Fields!MultilineText.Value,
"\r\n[\r\n]+",Environment.NewLine)

如果有帮助请告诉我。

我刚想出一个很好的答案。我的 Address2(地址的第二行)并不总是在所有行中。因此,如果 Address2 中没有值,我可以使用条件将 vbCrlf 放入或将 Nothing 放入。

所以现在,如果没有 Address2,每个连接的行都可以很好地堆叠起来,没有空行。可能可以用 Environment.Newline 而不是 vbCurliff 来做到这一点。

=Trim(Fields!IPA_Addr1.Value) & IIF(LEN(Trim(Fields!IPA_Addr2.Value)) > 0, vbCrLf, Nothing) & Trim(Fields!IPA_Addr2.Value) & IIF(LEN(Trim(Fields!IPA_Addr2.Value)) = 0, vbCrlf , Nothing) & Trim(Fields!IPA_City.Value) & ", " & Trim(Fields!IPA_State.Value) & " " & Trim(Fields!IPA_Zip.Value)