SSRS 2008中的文本框格式化 - 换行

5

那么,假设我有以下字符串

THIS IS STUFF (MORE STUFF)

我该如何在SSRS文本框中格式化字符串呢?

THIS IS STUFF
(MORE STUFF)

这些数据来自查询中的单个字段,我无法手动插入换行符。

而且有时候,(更多内容)不在该字段中。

额外的例子:

  • 东西和物品
  • 物品 (东西)
  • 物品和东西(更多内容)
  • 2个回答

    6

    您需要在字符串中插入换行符,例如将文本框表达式设置为以下内容:

    ="THIS IS STUFF" & vbcrlf & "(MORE STUFF)"
    

    因此,单个文本框中的表达式:

    enter image description here

    将呈现为:

    enter image description here

    你可以看到即使字符串可以放在一行上,也会有一个换行符。

    评论后编辑

    好的,我们需要处理报告级别的各种现有字符串。

    为此,我建议使用自定义代码,即像这样的函数:

    Function SplitString (fieldValue As String) As String
      If IsDBNull(fieldValue) OrElse IsNothing(fieldValue) Then
        SplitString = ""
      Else If InStr(fieldValue, "(") > 0
        SplitString = RTrim(Left(fieldValue, InStr(fieldValue, "(") - 1)) & _
          vbcrlf & Right(fieldValue, Len(fieldValue) - InStr(fieldValue, "(") + 1)
      Else
        SplitString = fieldValue
      End If
    End Function
    

    我建议使用自定义代码,因为SSRS表达式容易出现问题,而且缺乏短路机制,这意味着对于一个字符串有效的内容,在另一个字符串上可能会显示#Error。你可以使用多个IIf语句解决此问题,但使用自定义代码更加简洁易懂。
    您可以使用以下表达式调用该函数:
    =Code.SplitString(Fields!MYFIELD.Value)
    

    无论是在文本框表达式中还是数据集中的计算字段中,都可以使用上述方法来处理您的数据。以下是我对您的数据的操作结果:

    enter image description here

    enter image description here


    我应该澄清一下,这段文本是从一个查询中提取的单个字符串。虽然你的回答是正确的,对此我感到抱歉! - Elias
    1
    这个字符串是否以可预测的形式进行分割?例如,您可以基于“(”字符拆分基础字符串,并在其中间插入vbcrlf。或者您可以根据长度或特定字符的组合来进行拆分。如果您提供一些示例,我可以尝试一下。 - Ian Preston
    我相信字符串可以通过 ( 字符进行分割。该字符串将包含许多单词,并且有时会有括号中的单词。我将在原始问题中给出一些示例。 - Elias
    1
    谢谢!你只能将格式选项应用于数字和日期/时间数据类型,所以很遗憾,在这种情况下它不会有帮助。 - Ian Preston
    1
    你也可以使用 Environment.NewLine()。 - Brian D
    显示剩余3条评论

    0

    在我的项目中遇到了这个问题,我想分享一下解决步骤。通过选择表达式并按照所需格式创建单独的文本框占位符。您可以通过将另一个项(另一个占位符)移动到下一行(按键盘上的Enter键)来轻松添加额外的行。 在这里,我在列表内创建了单独的占位符,给出了名称并按照自己的意愿进行了格式化。 {{link1:enter image description here}}


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接