当单词太长时RDLC不换行

RDLC doesn't break line when the word is too long

我有一份带有 Tablix 的 RDLC 报告。 Tablix 有一个绑定到数据集的行。该行有一个宽度为 400px 的文本框。

如果您从 DataSet 中获得带有 spaces 的长字符串,它将按预期运行并在新行中断开字符串,使文本框垂直增长。当您从 DataSet 中得到一个没有 spaces 的长字符串时,就会出现问题,该字符串在到达文本框末尾时不会中断。相反,文本框将水平增长以适应字符串。

如何断开字符串并防止文本框水平增长?


咨询后

我决定在答案中添加图片以帮助准确解释需要发生的事情。

我将按照 MSDN 教程中的步骤进行操作:Change Row Height or Column Width (Report Builder and SSRS) 首先展示如何设置固定的 height 然后展示如何做同样的事情设置一个固定的 width.


To prevent a row from automatically expanding vertically

  1. In Design view, click anywhere in the tablix data region to select it. Gray row handles appear on the outside border of the tablix data region.

  2. Click the row handle to select the row.

  3. In the Properties pane, set CanGrow to False.

To prevent a column from automatically expanding horizontally

  1. In Design view, click anywhere in the tablix data region to select it. Gray column handles appear on the outside border of the tablix data region.

  2. Click the column handle to select the column.

  3. In the Properties pane, set CanGrow to False.

我真诚地希望这足够详细。

我自己找到了解决办法。 RDLC 报告接受 HTML 作为表达式,因此您需要做的就是:

  • 在表达式中设置一个固定宽度的div。
  • 将 MarkupType 设置为 HTML

查看报告代码如何变化:

之前:

<Paragraphs>
    <Paragraph>
        <TextRuns>
            <TextRun>
                <Value>=Fields!TextoCliente.Value</Value>
                <Style>
                    <FontSize>8pt</FontSize>
                </Style>
            </TextRun>
        </TextRuns>
        <Style />
    </Paragraph>
</Paragraphs>

之后:

<Paragraphs>
    <Paragraph>
        <TextRuns>
            <TextRun>
                <Value>="&lt;div style='width:400px'&gt;" &amp; Fields!TextoCliente.Value &amp; "&lt;/div&gt;"</Value>
                <MarkupType>HTML</MarkupType>
                <Style>
                    <FontSize>8pt</FontSize>
                </Style>
            </TextRun>
        </TextRuns>
        <Style />
    </Paragraph>
</Paragraphs>

您可以在 Designer 查看器中设置表达式以避免处理将“<”替换为“<”的问题,在该模式下,您只需键入 <.

以防万一其他人发现这个问题,在可能重复的 link () 中有一个新答案看起来实际上是正确的,并且比这里或那里接受的答案更简单。