s-s-rS 表达式中的换行符
Posted
技术标签:
【中文标题】s-s-rS 表达式中的换行符【英文标题】:Line break in s-s-rS expression 【发布时间】:2014-04-01 13:42:46 【问题描述】:我无法在 s-s-rS 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." )
【问题讨论】:
它对我有用。预览时检查您的错误列表。也只是为了排除它,尝试用“C”替换 VCHTYPE 值。 【参考方案1】:使用Environment.NewLine
代替 vbcrlf
【讨论】:
您能否详细说明为什么使用Environment.NewLine
而不是vbcrlf
?一个比另一个有什么好处,或者为什么不使用vbcrlf
?【参考方案2】:
你不应该引用你的 Environment.NewLine 人。试试"Your Text" & Environment.NewLine
。
【讨论】:
【参考方案3】:这对我有用:
(在 Visual Studio 中)
-
在 Designer 中打开 .rdl 文件(右键单击解决方案中的文件
资源管理器 > 视图设计器)
右键单击您正在使用的文本框,选择表达式
在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."
【讨论】:
【参考方案4】:它也不适合我。 vbcrlf 和 Environment.Newline() 都没有效果。我的问题是占位符属性具有 html 标记类型。当我将其更改为无时,它就像一个冠军!
【讨论】:
【参考方案5】:如果您的占位符处于启用 html 的模式,则 "<br />"
将用作换行符
【讨论】:
【参考方案6】:我一直对 Chr(10) 和 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)
另外,如果你正在构建一个字符串,你需要用一个 & 而不是一个 + 将东西连接在一起 我认为你的示例应该是这样的
=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】:在 Ss-s-r 中使用vbcrlf
换行。例如
= First(Fields!SAPName.Value, "DataSet1") & vbcrlf & First(Fields!SAPStreet.Value, "DataSet1") & vbcrlf & First(Fields!SAPCityPostal.Value, "DataSet1") & vbcrlf & First(Fields!SAPCountry.Value, "DataSet1")
【讨论】:
【参考方案8】:你可以用这个
="Line 1" & "<br>" & "Line 2"
【讨论】:
【参考方案9】:为了在s-s-rS中实现换行,有两种方式
-
设置 HTML 标记类型
将占位符的标记类型更新为 HTML,然后利用
<br/>
标签在表达式中引入换行符
="first line of text. Param1 value: " & Parameters!Param1.Value & "<br/>" & Parameters!Param1.Value
-
使用换行功能
利用 Environment.NewLine() 函数在表达式中添加换行符。
="first line of text. Param1 value: " & Parameters!Param1.Value & Environment.NewLine()
& Parameters!Param1.Value
注意:-请务必记住在每个“&”之后留一个空格(与号),以便正确评估表达式 p>
【讨论】:
【参考方案10】:在我的例子中,Environment.NewLine 在 Visual Studio 中预览报表时工作正常。但是,当我尝试将 rdl 发布到 Dynamics 365 CE 时,我收到错误“报表服务器已启用 RDLSandboxing,并且文本框 'Textbox10' 的值表达式包含对类型、命名空间或成员 'Environment' 的引用”不允许。”
所以我不得不用 vbcrlf 替换 Environment.NewLine。
【讨论】:
以上是关于s-s-rS 表达式中的换行符的主要内容,如果未能解决你的问题,请参考以下文章