2011-08-23 50 views
1

我的問題在碧玉報告添加數據是我使用休眠createsqlquery獲取數據fromdatabase我如何能使用Hibernate

並從此我得到一個列表OG對象數組像

List<Object[]> listdata = createsqlquery(query).list; 

現在我必須在碧玉中使用這個listdata來生成pdf。

我怎麼能做到這一點

請幫助

回答

0

將您List<Object[]>(查詢返回)到List<SomeBean>,然後用JRBeanCollectionDataSource

對於報告的每個字段,您需要在bean中有一個相應的getter。例如,字段$F{firstName}將調用該bean的方法getFirstName()

0

試試這個:

List<Object[]> listdata = createsqlquery(query).list; 

JasperDesign jasperDesign = JasperManager.loadXmlDesign(reportStream); 
JasperReport jasperReport = JasperManager.compileReport(jasperDesign); 

JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(listdata);//your list here 
JasperPrint jasperPrint = JasperManager.fillReport(jasperReport,parameters,ds); 

我希望這有助於

1

嘗試以下,希望它幫助。

創建一個bean從休眠握住你返回的數據

說的如MyBean.java

public class MyBean implements Serializable 
{ 
private Integer id; 
private String fname; 
private String lname; 
public Integer getId() { 
    return id; 
} 
public void setId(Integer id) { 
    this.id = id; 
} 
public String getFname() { 
    return fname; 
} 
public void setFname(String fname) { 
    this.fname = fname; 
} 
public String getLname() { 
    return lname; 
} 
public void setLname(String lname) { 
    this.lname = lname; 
} 
} 

現在使用爲myBean來保存數據,並用它來填補報告以下

List<MyBean> listdata = createsqlquery(query).list; 

JasperDesign jasperDesign = JasperManager.loadXmlDesign(reportStream); 
JasperReport jasperReport = JasperManager.compileReport(jasperDesign); 

JRBeanCollectionDataSource ds = ;//your list here 
JasperPrint jasperPrint = JasperManager.fillReport(jasperReport,parameters,new JRBeanCollectionDataSource(listdata)); 

//You can export generated report as follows 
JasperExportManager.exportReportToPdfFile(jasperPrint,pathToExport); 

說明:您將需要映射MyBean.java用於休眠。