Saturday, September 02, 2006

iReport Tutorial (3/5)

การสร้าง Connection ไปยัง JRDataSourceProvider
ขึ้นตอนจะเป็นดังนี้
1. ที่ Java project Create Entity Bean
2. ที่ Java project Create Class extended from JRAbstractBeanDataSourceProvider
3. ที่ iReport Save Classpath โดยไปที่ menu Option->Classpath แล้ว Add Folder ของ Project แล้ว Save
4. สร้าง Connection โดยเลือกเป็น JRDataSourceProvider และใส่ JRAbstractBeanDataSourceProvider Extends Class
5. สร้าง Report โดยใช้ Report Wizard ตามปกติ โดยจะเห็น Properties ของ Entity Bean เป็น Field ใน Report

ต่อไปมาดูการสร้างอย่างละเอียด
1. สร้าง Entity Bean ที่จะเอาไว้เก็บข้อมูลของ Employee ชื่อว่า Employee
package data.factory;

import java.io.Serializable;
import java.util.Date;

public class Employee implements Serializable {

private static final long serialVersionUID = -2601582524413665788L;
private String empNo;
private String empName;
private String depNo;
private String depName;
private Date startDate;

public Employee(String empNo, String empName,
String depNo, String depName, Date startDate) {
super();
this.empNo = empNo;
this.empName = empName;
this.depNo = depNo;
this.depName = depName;
this.startDate = startDate;
}
public String getDepNo() {return depNo;}
public void setDepNo(String depNo) {this.depNo = depNo;}
public String getEmpName() {return empName;}
public void setEmpName(String empName) {this.empName = empName;}
public String getEmpNo() {return empNo;}
public void setEmpNo(String empNo) {this.empNo = empNo; }
public Date getStartDate() {return startDate;}
public void setStartDate(Date startDate) {this.startDate = startDate;}
public String getDepName() {return depName;}
public void setDepName(String depName) {this.depName = depName;}
}



2. ที่ Java project Create Class extended from
JRAbstractBeanDataSourceProvider เพื่อที่ให้เป็นตัวที่จะ Query Data มาให้ Report


package data.factory;
import java.sql.*;
import java.util.*;
import java.util.Date;
import data.connect.DBConnect;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRAbstractBeanDataSourceProvider;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
public class EmployeeReport
extends JRAbstractBeanDataSourceProvider {
public EmployeeReport() {
super(Employee.class);
}
public void dispose(JRDataSource arg0) throws JRException {
}
public JRDataSource create(JasperReport arg0) throws JRException {
ArrayList<Employee> list=new ArrayList<Employee>();
String sSQL="SELECT EmpNo , EmpName , "
+"StartDate , employee.DepNo,DepName"
+" FROM employee "
+" INNER JOIN department"
+" ON employee.DepNo = department.depno "
+" where employee.DepNo='S01'"
+" order by EmpNo";
try{
Connection connection=DBConnect.getMySqlConnection();
PreparedStatement prs=connection.prepareStatement(sSQL);
ResultSet rs=prs.executeQuery();
while(rs.next()){
list.add(new Employee(rs.getString("EmpNo")
,rs.getString("EmpName")
,rs.getString("DepNo"),rs.getString("DepName")
,new Date(rs.getDate("StartDate").getTime())));
}
}
catch(Exception ex){
ex.printStackTrace();
}
return new JRBeanCollectionDataSource(list);
}
}

3. ที่ iReport Save Classpath โดยไปที่ menu Option->Classpath แล้ว Add Folder ของ Project แล้ว Save
4. สร้าง Connection เป็น JRDataSourceProvider แล้วใส่ชื่อ Class ที่เราสร้างไว้ ลอง Test ดูว่า Connect สำเร็จมั้ย
5. สร้าง Report โดยใช้ Report Wizard ตามปกติ โดยจะเห็น Properties ของ Entity Bean เป็น Field ใน Report

1 comment:

Anonymous said...

top [url=http://www.001casino.com/]casino[/url] coincide the latest [url=http://www.casinolasvegass.com/]online casinos[/url] free no set aside bonus at the chief [url=http://www.baywatchcasino.com/]www.baywatchcasino.com
[/url].