我的SSRS报告中有一个字段有多个回车符,例如:
First, get materials
Next, glue them all together
Last, let dry for two hours
所有六行都在一个字段中,而不是7行。我知道我可以替换/删除回车,但我真正想要的是能够删除空行。我仍然希望将回车保留在包含文本的行上,如下所示:
First, get materials
Next, glue them all together
Last, let dry for two hours
我非常感谢你提供任何帮助。
谢谢!
答案 0 :(得分:1)
我认为您的问题是每行中可能存在多个回车/换行符,而您的预期结果只是将每行除以一个回车或换行符。
我认为使用Regex替换方法可以避免(是的,你可以在SSRS中使用Regex)。
如果您确定您的来源使用回车生成新行,您可以使用:
=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)
如果有帮助,请告诉我。
答案 1 :(得分:0)
我得到了一个很好的答案,我刚想通了。我的地址2(地址的第二行)并不总是存在于所有行中。所以如果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)