日期:2014-05-17  浏览次数:20948 次

JasperReport报表制作的几点思考?

几乎每个人做项目时都会有做到报表的实现。可是在报表制作的过程中在web层显示的话,我们似乎有许多的选择,但网上最近用得比较多的报表制作开源有:JasperReport,ireport,birt等。

本人就对JasperReport来说明自己开发过程中碰到的问题?

?

1、对于报表来说几乎是用户可以自己生成报表,不过JasperReport里的noxmldesign可以实现自动生成,不用借住ireport来做,不过这样子开发出来的报表几乎不可以修改,也就是用户可以自己调整的方式来做。

?

2、如果用到ireport工具来开发报表的话,则开发者已为这些报表定好格式,用户所看到的这些报表也是不可变更的,因此这里也有这个不好的地方。

?

3、用JasperReport来开发报表,可以很好的来导出为用户自己想导出的格式,如:excel,rtf,word,jxl,pdf,csv等,但似乎里面对打印则不是一个很好的解决方法,实现打印时,用户只能调用服务器上的打印机来来打印而不可以用客户端的打印机来打印报表,而是要通过applet来实现打印的功能。

?

不过最重要的一点则是用户可以像在ireport来设计自己喜欢的格式报表的话,不知道这点可不可以整合到web方式上的实现。

?

如果有用户能解决上面的问题,并有好的方法和意见,在这共同和大家一起来讨论,共同学习!

1 楼 coolyzg 2006-12-11  
引用
3、用JasperReport来开发报表,可以很好的来导出为用户自己想导出的格式,如:excel,rtf,word,jxl,pdf,csv等,但似乎里面对打印则不是一个很好的解决方法,实现打印时,用户只能调用服务器上的打印机来来打印而不可以用客户端的打印机来打印报表,而是要通过applet来实现打印的功能。

同感,但一直没找到好的实现方法,楼主可否share一下,谢了先
2 楼 ibmsoft 2007-01-09  
我现在遇到一个问题
用Ireport设计好,预览是好的
但是打印的时候最左边的数据打印不出来!
3 楼 aardvark 2007-01-10  
<br/>
<strong>axiang_2898 写道:</strong><br/>
<div class='quote_div'>3、用<font><font color='#0000ff'><strong>JasperReport</strong></font>来开发报表,可以很好的来导出为用户自己想导出的格式,如:<font color='#0000ff'><strong>excel,rtf,word,jxl,pdf,csv</strong></font>等,但似乎里面对打印则不是一个很好的解决方法,实现打印时,用户只能调用服务器上的打印机来来打印而不可以用客户端的打印机来打印报表,而是要通过<font color='#0000ff'><strong>applet</strong></font>来实现打印的功能。</font>
<p>?</p>
</div>
not really. 可以生成pdf传给客户端打印<br/>
<br/>
4 楼 giscat 2007-01-10  
报表是个老大难问题
涉及到这方面需求时要慎重
尽量简化弱化需求,凡事都是有得商量

其他的需求如:自定义,流程等都要慎重,
考虑再考虑,商量再商量

如果是自己开发,上面这些需求都要慎重

5 楼 axiang_2898 2007-01-10  
ibmsoft 写道
我现在遇到一个问题
用Ireport设计好,预览是好的
但是打印的时候最左边的数据打印不出来!


那是你设置的边界可能越界了,或许是你设置了打印机打印的设置!
6 楼 ibmsoft 2007-01-10  
axiang_2898 写道
ibmsoft 写道
我现在遇到一个问题
用Ireport设计好,预览是好的
但是打印的时候最左边的数据打印不出来!


那是你设置的边界可能越界了,或许是你设置了打印机打印的设置!

请问如何设置打印的边界。我导出成RTF,打印的时候提示
第一页的页边距设于可打印区域之外。不知道在JRxml文件中需要修改哪些地方
7 楼 axiang_2898 2007-01-10  
ibmsoft 写道
axiang_2898 写道
ibmsoft 写道
我现在遇到一个问题
用Ireport设计好,预览是好的
但是打印的时候最左边的数据打印不出来!


那是你设置的边界可能越界了,或许是你设置了打印机打印的设置!

请问如何设置打印的边界。我导出成RTF,打印的时候提示
第一页的页边距设于可打印区域之外。不知道在JRxml文件中需要修改哪些地方


        jasperDesign.setLeftMargin(40);
        jasperDesign.s