按两次
OK
回到
Jbuilder
的开发界面。
2.3
、向工程添加
Report
系列库文件
通过右击工程,选择【
properties
】-【
paths
】
Label
-【
Required Libraries
】
Label
-【
Add
】按钮-选择“
Report
”-按两次
OK
回到
Jbuilder
的开发界面。这样就添加完成了需要的库文件了。这么做是比较理想的,但是报表运行时可能不需要
iReport
的
lib
下所有的
jar
文件。
2.4
、在主界面上添加需要的组件
在主
Frame
添加一个
Button
和一个
Label
以及一个
TextBox
,当然你也可以通过创建菜单连接,如图:
这个窗体时用来做测试用的,实际的界面可能很复杂,其中的
TextBox
就是为报表的变量做准备的。这里填写的值就是要传递给报表的变量,也就是第一部分定义的带
$P{}
符号的变量,程序会把他们对应起来。
Button
的单击事件代码如下:
/**
* RptDialog
对话框是用来承载报表的显示。
* @param e
*/
void jButton1_actionPerformed(ActionEvent e) {
//
请创建一个对话框类
RptDialog
RptDialog dlg = new RptDialog(this.jGroupID.getText());
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation( (frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.pack();
dlg.show();
}
RptDialog
是接下来制作的一个
Dialog
对象,通过
Jbuilder
新建一个
Dialog
对象并命名
RptDialog
。
RptDialog
的代码如下:
import java.awt.*;
import javax.swing.*;
import dori.jasper.engine.*;
import dori.jasper.view.*;
import dori.jasper.engine.util.JRLoader;
import java.sql.Connection;
import java.io.File;
import java.util.Map;
import java.util.HashMap;
import mytest.trac.CommectionDB;
/**
* <p>Title: RptDialog </p>
* <p>Description:
报表承载对话框
</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: *****</p>
* @author
李克喜
* @version 1.0
*/
public class RptDialog extends JDialog {
JPanel ReportPan = new JPanel();
BorderLayout borderLayout1 = new BorderLayout();
//Bug
项目名称
String proname = "";
//
显示报表需要的控件
JRViewer jrview;
public RptDialog(String GroupID) {
proname = GroupID;
try {
jbInit();
pack();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private void jbInit() throws Exception {
ReportPan.setLayout(borderLayout1);
getContentPane().add(ReportPan);
//
装载报表
,
在
Jbuilder
工程的目录创建一个
Reports
文件夹,并把报表的
jasper
文件搁置在该文件夹。
String reportPath = System.getProperty("user.dir") + "\\Reports\\ BugsRpt.jasper";
JasperReport jasperReport =
(JasperReport) JRLoader.loadObjectFromLocation(reportPath);
//
创建数据库的连接,参考
java
的
JDBC
编程资料创建连接方式
CommectionDB conndb = new CommectionDB();
//
注意
:这个连接要求与制作报表时使用的连接一致
Connection conn = conndb.getDbConnection();
//
报表配置参数,前文提过的
SQL
语句的
Where
条件参数就是与这里对应。
//
条件的值可能是通过多种方式得到的,比如上一个页面传递过来的
Map parameters = new HashMap();
//ProjectName
就是
iReport
的变量
$P{ProjectName}
的名称,参考第一部分的
5.6
添加参数和使用参
proname
就是从界面上获取的值。
parameters.put("ProjectName ", proname);
JasperPrint jasperPrint =
JasperFillManager.fillReport(
jasperReport,
parameters,
conn
);
//
装载过程,注意其中的红体字部分
jrview = new dori.jasper.view.JRViewer(jasperPrint);
ReportPan.setLayout(borderLayout1);
ReportPan.setPreferredSize(new Dimension(800, 600));
getContentPane().add(ReportPan, BorderLayout.CENTER);
ReportPan.add(jrview,null);
}
}
到这里,所有需要设置和编程的工作基本完成了。
3、
运行
确定数据库已经启动了,在
JBuilder
运行应用程序。在
TextBox
输入有意义的组值,比如“
BugWin
系统”,这是我的测试值,实际情况是根据你的需要来确定的。单击
Button
,系统会弹出对话框,运行结果和第一部分
6.2
、预览报表结果一致。
4、
总结
随着技术的进步,应用环境的不断变化,胖客户端的应用可能会逐渐退出主流,但是它的存在是必要的。所以我要写胖客户端的应用方面的报表使用技术。文中简要明了的介绍了如何使用
Jasperreport
编程报表程序。希望对你有一点帮助。