5

所以,假设我有以下字符串

THIS IS STUFF (MORE STUFF)

如何让字符串在 SSRS 的文本框中格式化?

THIS IS STUFF
(MORE STUFF)

此数据是从查询中的单个字段中提取的,我将无法手动注入断线。

此外,有时(更多的东西)不在现场。

额外的例子:

  • 东西和东西
  • 东西(东西)
  • 东西和东西(更多东西)
  • 4

    2 回答 2

    6

    您需要在字符串中插入换行符,即将文本框表达式设置为:

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

    所以单个文本框中的表达式:

    在此处输入图像描述

    将呈现为:

    在此处输入图像描述

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

    评论后编辑

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

    为此,我建议使用自定义代码,即类似以下的函数:

    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)
    

    在文本框表达式中或作为数据集中的计算字段。以上适用于我的数据:

    在此处输入图像描述

    在此处输入图像描述

    于 2013-10-02T16:20:52.097 回答
    0

    我在做项目时遇到了这个问题。我想分享我的步骤。通过根据需要选择表达式和格式,在文本框中创建单独的占位符。您只需将另一个项目(另一个占位符)移动到下一行(通过按键盘上的回车键)即可轻松添加额外的行。在这里,我在列表中创建了单独的占位符,按照我的意愿给出了名称和格式。 在此处输入图像描述

    于 2015-12-28T07:31:40.473 回答