在图表周围浮动或换行文字?

时间:2017-06-06 13:56:47

标签: reporting-services

我一直在寻找我的问题的答案,但我似乎找不到任何东西。有谁知道在SSRS中围绕图表或图像包装/浮动文本的方法?我希望有一些类似于下面蓝色的选项,但在那里没有运气:

Screenshot of text wrapping options in MS Word

我发现了以下帖子,其中有一个很好的示例图片显示我正在寻找的内容,但没有任何有用的答案(我没有使用Crystal Reports,我通过Visual Studio 2015使用BIDS SSRS )。

Crystal report (or SSRS) flowing text around image

我尝试了以下内容:

  1. 覆盖图像顶部的文本框(渲染将图像推到文本下方)
  2. 尝试查找或创建一个疯狂的科学家算法,可以在一定数量的字符后分割文本,但不能在单词的中间分割,切断其余部分,并在单独的文本框中继续其余文本图像(不是疯狂的科学家,所以没有运气)
  3. 感谢您的任何提示!

1 个答案:

答案 0 :(得分:0)

在SSRS中没有内置的方法可以做到这一点。

有人编写了一个函数来确定给定文本字符串中的像素数。

Truncate textbox content with ellipsis in SSRS

Public Function TextWidth(str As String) AS Double
    'Returns the width, in pixels, of a string, assuming Tahoma size 8.
    Dim size As System.Drawing.SizeF
    Dim font As New system.Drawing.Font("Tahoma", 8)
    size = System.Windows.Forms.TextRenderer.MeasureText(str, font)
    TextWidth = size.Width
End Function

您可以使用它来确定在第一个文本框中中断的位置,并将其余部分溢出到第二个文本框中。您只需要进行测试即可确定第一个文本框所包含的文本像素数。

一旦你弄清楚多少像素适合(我只用文本填充第一个文本框然后使用该函数来查看文本有多少像素),将另一个 TextCap 函数更改为返回像素分割处的第一或第二部分。您可以在函数中添加参数以指示是否返回文本的第一部分或第二部分。然后使用第一个文本框中的函数返回第二个文本框中的第一部分和第二部分。

这有点工作但似乎可行。这取决于你想要它有多糟糕以及你有多少时间。