SSRS表达式中的换行符

时间:2014-02-28 13:56:09

标签: reporting-services ssrs-2008 newline iif

我在SSRS 2008中添加换行符时遇到了问题。

我尝试了所有这些不同的方法,但没有做到这一点。

"+ chr(10) +" , "& chr(10) &" , "& chr(13) & chr(10) &" , "& vbcrlf &" , "+ vbcrlf +" , "Environment.NewLine"

这是我的textbox表达式:

=IIF(First(Fields!VCHTYPE.Value, "Dataset1")="C","This is a huge paragrpah of text." +
vbcrlf + "separated by line feeds at each paragraph." +
vbcrlf + vbcrlf + "I want to separate the paragraphs." +
vbcrlf + vbcrlf + "Its not working though."
, "This is the second huge paragraph of text." +
vbcrlf + "separated by line feeds at each paragraph." +
vbcrlf + vbcrlf + "I want to separate the paragraphs." +
vbcrlf + vbcrlf + "Its not working though." )

10 个答案:

答案 0 :(得分:66)

使用Environment.NewLine代替vbcrlf

答案 1 :(得分:12)

这对我有用:

(在Visual Studio中)

  1. 在Designer中打开.rdl文件(右键单击解决方案中的文件 资源管理器>查看设计师)
  2. 右键单击您正在使用的文本框,选择表达式
  3. Set expression for: Value框中输入您的表达式:

    ="first line of text. Param1 value: " & Parameters!Param1.Value & Environment.NewLine() 
    & "second line of text. Field value: " & Fields!Field1.Value & Environment.NewLine() 
    & "third line of text."
    

答案 2 :(得分:11)

如果您的占位符处于启用html模式,则"<br />"将用作换行符

答案 3 :(得分:8)

你不应该引用你的环境。新线人。试试"Your Text" & Environment.NewLine

答案 4 :(得分:3)

vbcrlf用于SSSR中的新行。 e.g。

= First(Fields!SAPName.Value, "DataSet1") & vbcrlf & First(Fields!SAPStreet.Value, "DataSet1") & vbcrlf & First(Fields!SAPCityPostal.Value, "DataSet1") & vbcrlf & First(Fields!SAPCountry.Value, "DataSet1") 

答案 5 :(得分:2)

它也不适合我。 vbcrlf和Environment.Newline()都没有效果。我的问题是占位符属性有一个标记类型的HTML。当我把它改成无,它就像一个冠军!

答案 6 :(得分:2)

我总是和Chr(10)&amp; Chr(13) - 我在下面提供了一个样本。这是我在报告中的地址文本框的表达式。

=Iif(Fields!GUAR_STREET_2.Value <> "",Fields!GUAR_STREET.Value & Chr(10) & Chr(13) & LTrim(Fields!GUAR_STREET_2.Value),Fields!GUAR_STREET.Value)

另外,如果你正在构建一个字符串,你需要将一些东西连接到一个&amp;不是+这是我认为你的例子应该是什么样的

    =IIF(First(Fields!VCHTYPE.Value, "Dataset1")="C","This is a huge paragrpah of text." &
Chr(10) & Chr(13) & "separated by line feeds at each paragraph." &
Chr(10) & Chr(13) & Chr(10) & Chr(13) & "I want to separate the paragraphs." &
Chr(10) & Chr(13) &  Chr(10) & Chr(13) & "Its not working though."
, "This is the second huge paragraph of text." &
Chr(10) & Chr(13) & "separated by line feeds at each paragraph." &
Chr(10) & Chr(13) & Chr(10) & Chr(13) & "I want to separate the paragraphs." &
Chr(10) & Chr(13) & Chr(10) & Chr(13) & "Its not working though." )

答案 7 :(得分:1)

为了在SSRS中实现换行,有两种方法

  1. 设置HTML标记类型
    将占位符的标记类型更新为HTML,然后使用<br/>标签在表达式
  2. 中引入换行符

="first line of text. Param1 value: " & Parameters!Param1.Value & "<br/>" & Parameters!Param1.Value

  1. 使用换行功能
    利用Environment.NewLine()函数在表达式中添加换行符。

="first line of text. Param1 value: " & Parameters!Param1.Value & Environment.NewLine() & Parameters!Param1.Value

注意:- 为了正确评估表达式,请务必记住在每个“&” (“&”符号)之后留一个空格

答案 8 :(得分:0)

就我而言,Environment.NewLine 在 Visual Studio 中预览报告时工作正常。但是,当我尝试将 rdl 发布到 Dynamics 365 CE 时,我收到错误“报表服务器启用了 RDLSandboxing 并且文本框‘Textbox10’的值表达式包含对类型、命名空间或成员‘环境’的引用不允许。”

所以我不得不用 vbcrlf 替换 Environment.NewLine。

答案 9 :(得分:-1)

你可以使用这个

="Line 1" & "<br>" & "Line 2"