【问题标题】:SSRS Column Width growing, Text not wrappingSSRS 列宽增长,文本不换行
【发布时间】:2023-03-25 15:10:02
【问题描述】:

我正在使用 SSRS、SQL Server 2008-R2 创建报告。该报告有几个矩阵,每个矩阵都有相同数量的列,从不同的数据集中提取数据,以呈现单个表格的外观。 当我在 VS 中呈现报告时,列看起来很好。具有长文本字符串的列包裹文本,并且列保持对齐。这是我希望报告中的行为。但是,当我从浏览器(IE 或 Firefox)运行报告时,文本不会换行,并且列宽会扩大以适合单行上的文本。当它们应该相同时,这会使报告具有不同大小的列。有没有办法强制文本换行并防止列宽扩大?我尝试了“Can Grow”属性,但它看起来只适用于高度,而不适用于宽度

【问题讨论】:

    标签: ssrs-2008-r2


    【解决方案1】:

    只需双击网格(或文本框)中的字段。它将打开一个弹出窗口。在“常规”选项卡下,将“标记类型”从“无 - 纯文本”更改为“HTML - 将 HTML 标记解释为样式。

    【讨论】:

    • 请注意,此设置位于 Placeholder 属性中,而非 文本框属性中。 (以防“双击”没有把你带到你需要去的地方)。
    【解决方案2】:

    看起来 SSRS 团队已经尝试实现断词,但没有完成。我假设它们实际呈现:

    <div style="word-wrap:break-word;white-space:pre-wrap;" 
         class="A28f9f53b98ae45d6a21919d29df775da131">Text </div>
    

    但他们在标记中错过了word-break 属性。 (或者 css 是否损坏,因为它需要 word-wrap:break-word 不起作用?:) 这是一个 nice investigation 主题)

    无论如何,要在列中分隔文本,请使用报表查看器将以下 css 添加到您的页面:

        div [style*="break-word"] {
            -ms-word-break: break-all;
            word-break: break-all;
            /* Non standard for webkit */
            word-break: break-word;
        }
    

    注意:这不会破坏列标题中的文本(我更喜欢手动设置列标题换行符,因为文本在设计时是固定的并且已知)。

    【讨论】:

    • 这适用于 Word 导出吗?我只在导出的格式中遇到这个问题。 WebView 使用 wordwrap 看起来是正确的,但是一旦我将它导出到 Word 就没有分词...
    【解决方案3】:

    很抱歉复活了一个老话题,但是... 有一种方法可以模拟关闭自动换行。您只需将包含您不想换行的数据的行的 Can Grow 设置为“false”,然后将行中所有单元格的顶部和底部填充设置为 0,将垂直对齐设置为“底部”,然后减少行的高度到它只能显示一行信息的位置(请记住允许在行下方延伸的字符)。但是现在我的行​​太紧以至于难以阅读。因此,您在上方或下方插入一行(取决于您想要的间距),将 Can Grow 设置为“false”,然后将行的高度设置为当前包含数据的行与过去的差值.现在您有一行不能显示多于一行的信息和一个(或更多)提供您需要的记录之间的间距的行。是的,这是一个 hack,不得不这样做有点痛苦,但它运作良好。

    【讨论】:

      【解决方案4】:

      如果所有其他方法都失败,则在列中插入一个矩形,然后将您的数据字段粘贴到应该这样做的顶部

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-08
        • 2012-06-29
        • 1970-01-01
        • 2011-09-24
        • 1970-01-01
        相关资源
        最近更新 更多