开发人员有意识地决定不允许单元格宽度拉伸。列要根据内容改变宽度,必须通过编程来完成。一个有用的工具:DynamicJasper。
DynamicJasper 创建报告
动态地,在运行时定义
列,列宽(自动宽度),
组、变量、字体、图表、
交叉表、子报表(也可以
是动态的),页面大小和一切
否则您可以在设计时定义
时间。
JasperReports forum 和 DynamicJasper HOW-TO 都有自动(动态)列宽的示例。
FastReportBuilder drb = new FastReportBuilder();
drb.addColumn("State", "state", String.class.getName(),20)
.addColumn("Branch", "branch", String.class.getName(),30)
.addColumn("Quantity", "quantity", Long.class.getName(),60,true)
.addColumn("Amount", "amount", Float.class.getName(),70,true)
.addBarcodeColumn("Bar-Code", "amount", Long.class.getName(), BarcodeTypes.USD3, true,
false,null, 100, true, ImageScaleMode.FILL, null)
.addGroups(1)
.setDetailHeight(30)
.setTitle("November 2006 sales report")
.setSubtitle("This report was generated at " + new Date())
.setUseFullPageWidth(true);
DynamicReport dr = drb.build();
在调用addColumn 时传入true 表示使用固定 宽度。关闭参数或传递false 将动态设置列宽。您可能还需要调用 setUseFullPageWidth( true ) 来激活自动宽度,但我不确定这一点。