动态列单元宽度

问题描述 投票:5回答:3

我有一个显示在HTML格式的一些碧玉报告。我想在HTML表格的列的宽度自动调整以适应最宽的单元格的内容(在该列中),使得所有的数据被显示。

目前这种情况不会发生,因为通过碧玉生成的HTML指定用于<TABLE>固定的宽度和某些<TD>元件,例如

<td style="width: 20px; height: 17px;">
  <span style="font-family: Arial; font-size: 11px;">foo-bar-baz@examp</span>
</td>

我不能简单地删除所有这些width属性(使用JavaScript),这是因为(如在上面的HTML示出),将使用这些宽度时甚至没有返回到客户端侧被隐藏任何数据

干杯,唐

java html jasper-reports
3个回答
5
投票

虽然不完美,你可以标记字段与溢出拉伸。这将至少给你所有的数据。在您的JRXML文件将类似于:

<textField isStretchWithOverflow="true" hyperlinkType="None">
    <reportElement style="Report Sub-Title" x="0" y="84" width="802" height="20"/>
    <textElement/>
    <textFieldExpression class="java.lang.String">
        <![CDATA["For the period ...]]>
    </textFieldExpression>
</textField>

我怕我不知道碧玉的任何功能可报告,将允许列宽的动态调整的 - 这可能是那些东西,有意义的HTML,但对于其他输出格式,如PDF没有多大意义的。


3
投票

开发商有意识地决定不允许单元格的宽度伸展。对于列基于内容改变它们的宽度,它必须通过编程来完成。一个有用的工具:DynamicJasper

DynamicJasper的动态创建报告,在运行时定义栏,栏宽(自动宽度),组变量,字体,图表,交叉表,子报表(也可以是动态的),页面大小和其他一切你可以在设计时定义。


-2
投票

在iReport的还有被称为“伸展式”的选项。选择“相对于带高度”

© www.soinside.com 2019 - 2024. All rights reserved.