jasperreport json_jasperreport 下载_jasperreport动态报表(7)

电脑杂谈  发布时间:2017-01-14 19:11:57  来源:网络整理

大小. 然而对于Excel, 这个Page设定仍然存在,而且往往很讨厌, 因为在Excel 里, 通常希望得到连续的数据,然而Jasper

仍然会''自作多情''进行分页. 比如说, 设计JasperReport 的时候, 设定page size为Letter,Portrait,

那么输出到Excel 的时候每隔大约30 行(具体取决于Field 的高度), page header, column header,column foot,

page foot 会被重复一次,而且还附带一个高度为0 的Excel Row, 表示Page Break 的地方.把字段名放在title band 里,

可以解决字段名重复的问题, 当然page header也不要显示了. 如果需要, 可以把title band的printwhen

expression设成只有输出Excel的时候才显示为什么Excel 里面的数据是从第二行,第B列开始显示的。

因为第一行和第A列分别是用来表示page top margin 和 page left margin的.对于Excel 来说,纯粹多余.

解决方法是把page margin 设成0. 不过如果这个report 还需要以PDF 等显示, 那么设成0 就不好看了.

最好能动态的改变pagemargin. 当然,这个改变只能在外部(调用eport 的地方) 进行, 在设计Report的时候是无能为力的. 不幸的是,

JasperReport 类居然没有setMargin 的方法,只有getter.折中的方法只能是reflect 了.代码示意如下:

//use

reflect to set the private field of JRBaseReport

java.lang.reflect.Field

margin =

JRBaseReport.class.getDeclaredField('leftMargin');

margin.setAccessible(true);

margin.setInt(jasperReport,0);

margin =

JRBaseReport.class.getDeclaredField('topMargin');

margin.setAccessible(true);

margin.setInt(jasperReport,0);

margin =

JRBaseReport.class.getDeclaredField('bottomMargin');

margin.setAccessible(true);

margin.setInt(jasperReport, 0);

如何去掉Excel 中隐藏的行

如前说述, 由于page break 的关系, Excel 中每隔几十行,就有一个高度为0 的row,

即使把page botom margin设为0, 把page footer去掉都没有办法. 唯一的解决办法是把page height设为很大. 同上面一样,

不得不使用reflect:

java.lang.reflect.Field pageHeight=

JRBaseReport.class.getDeclaredField('pageHeight');

pageHeight.setAccessible(true);

pageHeight.setInt(myRpt,

Integer.MAX_VALUE);

八、HTML的Bar3D图表输出心得

图表在ireport中是利用其他开源包生成的图片插入而生成,本人使用的版本是使用jfreechart1.0.0开源包实现。Ireport对


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-26308-7.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...