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,然后利用&lt;br/&gt; 标签在表达式中引入换行符

="first line of text. Param1 value: " &amp; Parameters!Param1.Value &amp; "&lt;br/&gt;" &amp; 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 表达式中的换行符的主要内容,如果未能解决你的问题,请参考以下文章

s-s-rS 报告表达式中的注释

如何使用表达式计算 s-s-rS 中的 RunningValue %

从 s-s-rS 中的表达式将参数传递给数据集

s-s-rS 报告错误:处理数据集的命令文本表达式时出错

图像的 s-s-rS 表达式

s-s-rS 在文本框表达式中重复文本