我有一些以HTML格式显示的Jasper报告。我希望HTML表格中列的宽度能够自动调整大小以适应最宽单元格(在该列中)的内容,以便显示所有数据。
目前这不会发生,因为Jasper生成的HTML指定了< table>的固定宽度。和一些< td>元素,例如。
<td style="width: 20px; height: 17px;">
<span style="font-family: Arial; font-size: 11px;">foo-bar-baz@examp</span>
</td>
我不能简单地删除所有这些宽度属性(使用JavaScript),因为(如上面的HTML所示)使用这些宽度时隐藏的任何数据甚至不会返回到客户端
干杯, 唐
答案 0 :(得分: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>
我担心我不知道Jasper报告的任何功能允许动态调整列宽的大小 - 这可能是对HTML有意义的事情之一,但对其他输出格式(例如PDF)却没什么意义
答案 1 :(得分:3)
开发人员有意识地决定不允许细胞宽度伸展。对于根据内容更改宽度的列,必须通过编程完成。一个有用的工具:DynamicJasper。
DynamicJasper创建报告 动态地,在运行时定义 列,列宽(自动宽度), 组,变量,字体,图表, 交叉表,子报告(也可以 是动态的),页面大小和一切 否则你可以在设计中定义 时间。
答案 2 :(得分:-2)
在iReport中有一个名为“Stretch Type”的选项。选择“相对于乐队的高度”