pessoal me ajudem com o ireport ,tenho as seguintes classes para gerar um relatorio usando o hibernate:
package com.Lgweb.Tcc.Relatorios;
import net.sf.jasperreports.engine.JRException;
public class relatorios {
/**
* @param args
*/
public static void main(String[] args) {
ExecRel e = new ExecRel();
try {
e.gerar();
} catch (JRException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
package com.Lgweb.Tcc.Relatorios;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import org.hibernate.Criteria;
import org.hibernate.Session;
import com.Lgweb.Tcc.Model.Cliente;
import com.Lgweb.Tcc.Util.HibernateUtil;
public class ExecRel {
@SuppressWarnings({ "unchecked", "deprecation" })
public void gerar() throws JRException{
Session session = HibernateUtil.getInstance();
Criteria results = (Criteria) session.createCriteria(Cliente.class);
Map parameters = new HashMap();
parameters.put("Title", "Sales Report");
InputStream reportStream
= InputStream.class.getResourceAsStream
("/com/Lgweb/Tcc/Relatorios/meurelatorioteste.jasper");
System.out.println("valor em report"+reportStream);
/* JasperDesign jasperDesign
= JasperManager.loadXmlDesign(reportStream);
JasperReport jasperReport
= JasperManager.compileReport(jasperDesign);
*/
ReportDataSourceImpl hibernateDataSource = new ReportDataSourceImpl();
hibernateDataSource.setTQueryProvider(new TSalesQueryProvider());
hibernateDataSource.setCriteriaSet(results);
ReportSource rs = new ReportSource(hibernateDataSource);
JasperPrint jasperPrint
= JasperManager.fillReport(reportStream,
parameters,
rs);
JasperExportManager.exportReportToPdfFile(jasperPrint,
"Clientes.pdf");
System.out.println("valor do nome do relatorio........"+jasperPrint.getName());
}
}
.
package com.Lgweb.Tcc.Relatorios;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.criterion.CriteriaQuery;
public interface TQueryProvider {
List getObjects(Criteria criteria,
int firstResult,
int maxResults) throws HibernateException;
}
package com.Lgweb.Tcc.Relatorios;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.CriteriaQuery;
import com.Lgweb.Tcc.Util.HibernateUtil;
public abstract class TBaseQueryProvider implements TQueryProvider {
public List getObjects(CriteriaQuery criteria, int firstResult, int maxResults)
throws HibernateException {
Session sess = HibernateUtil.getInstance();
Criteria queryCriteria = buildCriteria(criteria, sess);
System.out.println("valor do nome do relatorio........"+queryCriteria.list());
return queryCriteria
.setFirstResult(firstResult)
.setMaxResults(maxResults)
.setFetchSize(100)
.list();
}
protected abstract Criteria buildCriteria(CriteriaQuery criteria, Session sess);
}
package com.Lgweb.Tcc.Relatorios;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.CriteriaQuery;
import com.Lgweb.Tcc.Model.Cliente;
import com.Lgweb.Tcc.Util.HibernateUtil;
public class TSalesQueryProvider extends TBaseQueryProvider {
protected Criteria buildCriteria(Criteria criteria,
Session sess) {
// ExecRel salesCriteria = (ExecRel) criteria;
Criteria queryCriteria = sess.createCriteria(Cliente.class);
System.out.println(queryCriteria.list());
return queryCriteria;
}
@Override
protected Criteria buildCriteria(CriteriaQuery criteria, Session sess) {
ExecRel salesCriteria = (ExecRel) criteria;
Criteria queryCriteria = sess.createCriteria(Cliente.class);
System.out.println(queryCriteria.list());
return queryCriteria;
}
public List getObjects(Criteria criteria, int firstResult, int maxResults)
throws HibernateException {
// ExecRel salesCriteria = (ExecRel) criteria;
Criteria queryCriteria = sess2.createCriteria(Cliente.class).setFirstResult(firstResult)
.setMaxResults(maxResults);
System.out.println("passo e retornou a query");
System.out.println("valor do nome do relatorio........"+queryCriteria.list());
return queryCriteria.list();
}
Session sess2 = HibernateUtil.getInstance();
}
package com.Lgweb.Tcc.Relatorios;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;
import com.sun.org.apache.commons.beanutils.PropertyUtils;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
import net.sf.jasperreports.engine.data.JRAbstractBeanDataSource;
public class ReportSource extends JRAbstractBeanDataSource {
private TReportDataSource dataSource;
protected int index = 0;
protected Object bean;
private static Map fieldNameMap = new HashMap();
public ReportSource(TReportDataSource dataSource) {
super(true);
this.dataSource = dataSource;
index = 0;
}
public boolean next() throws JRException {
bean = dataSource.getObject(index++);
return (bean != null);
}
public void moveFirst() throws JRException {
index = 0;
bean = dataSource.getObject(index);
}
public Object getFieldValue(JRField field) throws JRException {
String nameField = getFieldName(field.getName());
try {
return PropertyUtils.getProperty(bean, nameField);
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return nameField;
}
/**
* Replace the character "_" by a ".".
*
* @param fieldName the name of the field
* @return the value in the cache or make
* the replacement and return this value
*/
private String getFieldName(String fieldName) {
String filteredFieldName
= (String) fieldNameMap.get(fieldName);
if (filteredFieldName == null) {
filteredFieldName = fieldName.replace('_','.');
fieldNameMap.put(fieldName,filteredFieldName);
}
return filteredFieldName;
}
}
ele nao da erro nenhum mas nao apresenta o relatorio,por favor me ajudem.
obrigado.