我的問題在碧玉報告添加數據是我使用休眠createsqlquery獲取數據fromdatabase我如何能使用Hibernate
並從此我得到一個列表OG對象數組像
List<Object[]> listdata = createsqlquery(query).list;
現在我必須在碧玉中使用這個listdata來生成pdf。
我怎麼能做到這一點
請幫助
我的問題在碧玉報告添加數據是我使用休眠createsqlquery獲取數據fromdatabase我如何能使用Hibernate
並從此我得到一個列表OG對象數組像
List<Object[]> listdata = createsqlquery(query).list;
現在我必須在碧玉中使用這個listdata來生成pdf。
我怎麼能做到這一點
請幫助
將您List<Object[]>
(查詢返回)到List<SomeBean>
,然後用JRBeanCollectionDataSource。
對於報告的每個字段,您需要在bean中有一個相應的getter。例如,字段$F{firstName}
將調用該bean的方法getFirstName()
。
試試這個:
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);
我希望這有助於
嘗試以下,希望它幫助。
創建一個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用於休眠。