从字符串 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)
我的 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)