Ajuda com Ireport <socorro>

1 resposta
L

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.

1 Resposta

S

Não apresenta você quer dizer que não grava no arquivo PDF?

Acho que para visualizar seria algo assim:

JasperViewer jasperViewer = new JasperViewer(jasperPrint,false);
jasperViewer.setTitle("Clientes");
jasperViewer.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
jasperViewer.setVisible(true);
Criado 8 de agosto de 2008
Ultima resposta 8 de ago. de 2008
Respostas 1
Participantes 2