2011-08-23 102 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用于休眠。