之前我写了三篇关于使用IReport3.7.2开发Web报表的文章,忽然最近有博友询问关于使用IReport开发C/S应用客户端报表的方法,呵呵,说实话我之前一直做B/S应用,还确实没有过多考虑C/S应用下报表的开发。不过我认为原理是相通的,下面就来仔细介绍一下。
首先是绘制报表,报表采用JavaBean作为数据源,其方法可以参考《使用IReport3.7.2开发WEB报表》的系列文章,这里就不再累述。
其次是编写获取数据的商业JavaBean。实现的JavaBean就是《用IReport3.7.2开发Web报表(三)—— 编写报表程序》中实现的BMeetingPhoneListDS、CAddressList和IDataSource三个文件。
最后也就是今天需要讲解的和WEB报表实现完全不同的部分——让报表在客户端显示。
建立一个netbean应用平台程序(具体如何建立我将未来单独编写博客来介绍),并建立一个showreport的模块,在此模块中建立一个窗口(现在netbean强烈建议做C/S应用采用netbean的RCP开发,而不再推荐直接建立基于SWing的Java桌面应用程序,其实RCP也是Swing的应用,只是其对Swing进行桌面开发进行了一些封装)。在此窗口中放置一个jButton控件和二个jLabel控件,其布局如下图所示:
其中将jButton的文字描述改成“显示报表”,并更改变量名为btnShowReport。将其中一个jLabel的文字描述改为“当前路径:”。将另一个jLabel的变量名更改成labPath。
在netbean中双击btnShowReport按钮为其填写按钮的点击事件,其代码如下:
//获取当前的相对路径,由此获得报表文件所在全路径,并显示此路径 //CMeetingPhoneListDS为自定义的活动数据的类。 //因为是基于JavaBean数据源的,因此采用JRBeanCollectionDataSource类 JasperPrint jasperPrint = null; |
到此运行程序就已经实现了客户端调用IReport设计的JasperReport报表了