当单词太长时,RDLC不会断行

时间:2015-09-23 18:27:43

标签: reportviewer rdlc line-breaks

我有一个带Tablix的RDLC报告。 Tablix有一个绑定到DataSet的Row。 Row有一个宽度为400px的文本框。

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

如何打破字符串并阻止Textbox水平增长?

咨询How to maintain long text inside RDLC report column ?

之后
  • 计算字符并不能解决问题:数据来自数据库,因此它几乎可以是任何东西。由于我没有使用控制台字体,字母的大小也不一样,因此适合空格的“@”数量与“i”的数量不同。
  • CanGrow属性绑定到TextBox:因此即使您可以选择一个列并将CanGrow设置为true,它也不会将Column本身设置为水平停止增长,它只会将所有选定的Textboxes'CanGrow'属性设置为False
  • CanGrow属性仅阻止行垂直增长:即使您单击列。 CanGrow Property仅影响高度。

3 个答案:

答案 0 :(得分:0)

以防万一其他人找到了这个答案,可能的重复链接(How to maintain long text inside RDLC report column ?)中有一个新答案似乎实际上是正确的,并且比这里或那里的公认答案更简单。

https://stackoverflow.com/a/47495098/793387

答案 1 :(得分:-1)

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

我将按照MSDN教程中的步骤进行操作:Change Row Height or Column Width (Report Builder and SSRS)首先说明如何设置固定的高度,然后展示如何设置修复的相同内容宽度

  

防止行自动垂直展开

     
      
  1. 在“设计”视图中,单击Tablix数据区域中的任意位置进行选择   它。灰色行句柄出现在Tablix数据区域的外边框上。 enter image description here

  2.   
  3. 单击行句柄以选择行。 enter image description here

  4.   
  5. 在“属性”窗格中,将CanGrow设置为Falseenter image description here
  6.   
  

阻止 自动展开 水平 < /强>

     
      
  1. 在“设计”视图中,单击Tablix数据区域中的任意位置进行选择   它。灰色 句柄出现在Tablix数据区域的外边框上。 enter image description here

  2.   
  3. 点击 句柄,选择 enter image description here

  4.   
  5. 在“属性”窗格中,将CanGrow设置为Falseenter image description here
  6.   

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

答案 2 :(得分:-1)

我自己找到了解决方案。 RDLC报告接受HTML作为Expression,因此您需要做的就是:

  • 在表达式中设置一个固定宽度的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查看器中设置Expression,以避免必须更换&#39;&lt;&#39;使用&#39;&amp; lt&#39;,在该模式下,您只需键入&lt;。