我的问题在碧玉报告添加数据是我使用休眠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用于休眠。