Je souhaite générer un rapport JasperReports à partir de deux tables. Les tables sont emp
et desig
Comment envoyer la liste <Object[]> comme source de données dans le rapport jasper?
classes de haricots sont respectés,
@Entity
@Table(name = "desg")
public class Designation {
@Id
@Column(name="Empid")
private int eId;
@Column(name="Designation")
private String Designation;
// getters and setters
}
@Entity
@Table(name = "emp")
public class Employee {
@Id
@GeneratedValue
@Column(name="Eid")
private int eId;
@Column(name="Name")
private String name;
@Column(name="Address")
private String address;
@Column(name="Salary")
private int salary;
// getters and setters
}
Le rapport avec une seule table fonctionne très bien. J'utilise Hibernate pour créer une liste d'objets bean. Je demande de rapport comme suit,
List<Object[]> lst= sessio.createQuery("select e.eId, e.name, d.Designation From Employee e, Designation d where e.eId=d.eId ").list();
String reportSourceFile="E:\\classes\\report4.jrxml";
JasperReport jasperReport = null;
JasperDesign jasperDesign = null;
Map parameters = new HashMap();
parameters.put("Title", "The EMP Report");
try {
jasperDesign = JRXmlLoader.load(reportSourceFile);
jasperReport = JasperCompileManager.compileReport(jasperDesign);
byte[] byteStream = JasperRunManager.runReportToPdf(jasperReport, parameters, new JRBeanCollectionDataSource(emplst)); // what to change instead of emplst
OutputStream outStream = response.getOutputStream();
response.setHeader("Content-Disposition","filename=myReport.pdf");
response.setContentType("application/pdf");
response.setContentLength(byteStream.length);
outStream.write(byteStream,0,byteStream.length);
} catch (JRException e1) {
e1.printStackTrace();
}
Si je vous envoie mon emplst
cela fonctionne bien, mais je veux lst
être imprimer dans le rapport. Comment envoyer l'objet lst
au rapport JasperReports et comment obtenir l'outil iReport?
Oui, maintenant Employee est disponible dans le rapport mais comment puis-je obtenir la valeur des objets 'Designation' – Raghu