Problemas iReport

13 respostas
B

Ola amigos,

Estou com um problema ao exibir o relatorio no java… ele funciona certo no ireport.

o meu ireport gera um .jrxml… tenho exemplo com o .jasper mais nao sei como gerar ele.

Eu retirei do tutorial do guj.

/* implementação da interface JRDataSource para DataSource ResultSet */
		JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
		/* HashMap de parametros utilizados no relatório. Sempre instanciados */
		Map parameters = new HashMap();
		// parameters.put("COLUNA", valor);
		/* Preenche o relatório com os dados. Gera o arquivo BibliotecaPessoal.jrprint */
		JasperFillManager.fillReportToFile( "RelatorioT.jrxml", parameters, jrRS );

O Erro: net.sf.jasperreports.engine.JRException: Error loading object from file : RelatorioT.jrxml

13 Respostas

B

Lembrei de como gerar o jasper e estou utilizando o codigo do tutorial

/* implementação da interface JRDataSource para DataSource ResultSet */
		JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
		/* HashMap de parametros utilizados no relatório. Sempre instanciados */
		Map parameters = new HashMap();
		// parameters.put("COLUNA", valor);
		/* Preenche o relatório com os dados. Gera o arquivo BibliotecaPessoal.jrprint */
		JasperFillManager.fillReportToFile( "RelatorioT.jasper", parameters, jrRS );
		
		
		
		/* Exporta para o formato PDF */
		JasperExportManager.exportReportToPdfFile( "RelatorioT.jrprint" );
		/* Preenche o relatorio e o salva diretamente em arquivo PDF. Sem
		a necessidade do .jrprint */
		JasperRunManager.runReportToPdfFile("RelatorioT.jasper", parameters, jrRS);
		/* Visualiza o relatório em formato PDF */
	   JasperViewer.viewReport( "RelatorioT.pdf", false );

Erro que esta dando

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
	at net.sf.jasperreports.engine.fill.JRBaseFiller.<clinit>(JRBaseFiller.java:95)
	at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:147)
	at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:83)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
	at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:492)
	at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:448)
	at controle.Controle.RelatorioProdVenda(Controle.java:3119)
	at visao.Tela.MostrarRelatorio(Tela.java:10634)
	at visao.Tela$82.actionPerformed(Tela.java:11408)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
	... 34 more
edineimanica

Este erro significa que esta faltando algum jar…
Pelo nome da classe deve ser o commons_login.jar
não é bem assim o nome do jar, mas é quase isto…

L

Olá sou nova por aqui, gostaria de saber se alguém pode me dar uma dica de como construir um relatório
utilizando ArrayList para preenchimento dos campos. Preciso disso urgentemente!!

I

Lila:
Olá sou nova por aqui, gostaria de saber se alguém pode me dar uma dica de como construir um relatório
utilizando ArrayList para preenchimento dos campos. Preciso disso urgentemente!!

Lila,

Via iReport + JasperReports você consegue fazer isso…

L

Obrigada por me responder,
O meu problema é o seguinte: após fazer algumas pesquisas eu consegui gerar um relatório principal(mais para aprendizado), só que nesse relatório eu possuo 5 listagens diferentes, então não sei como fazer em relação ao ireport (comecei a ler sobre subrelatórios, mas não sei se isso resolveria), além disso na classe em que eu executo esse relatório como eu poderia fazer, caso eu tenho 5 subrelatórios?

L

Alguém pode me dar uma dica, por favor

L

Olá,

Estou criando um relatório com subrelatórios, porém ocorre o seguinte erro:
net.sf.jasperreports.engine.JRRuntimeException: Infinite loop creating new page due to column header overflow.

Pelo que entendi, este erro informa que excedeu a quantidade de documentos pdf que podem ser abertos ao mesmo tempo. Como posso resolver isso?

thiagofacanha

Tipo vc não colocou o mesmo relatório como sub relatório não neh???
Verifica isso ok?
Vlw

L

Não, isso tá certo.

O que poderia ser?

L

Oi,

Alguém poderia me dizer como retirar o espaços em branco entre subrelários?
É o seguinte, criei um relatório principal contendo 5 subrelatório, mas pode ser que alguns desse relatórios estejam vazios, então preciso retirar o espaço em branco que aparece no lugar desses relatórios vazios.

Se alguém puder ajudar, agradeço!!!

M

O iReport gera o jasper quando voce gera o jrxml no mesmo local, pelo menos nesta ultima versão,

e pelo que sei se ele não esta fazendo automático tem uma opção para compilar o relatório…

antigamente se fazia a compilação pelo NetBeans ou Eclipse… mas as classes da biblioteca

já cairam fora…

L

Mas então, que alteração eu deveria fazer?

fabiodurgante
eu fiz assim
classe para o relatorio

import net.sf.jasperreports.engine.*;   
import net.sf.jasperreports.view.*;   
import java.sql.*;   
import java.util.*;  
/**
 *
 * @author Fabio
 */
public class VendaRel {

    
 public void VendaRel(ResultSet rs) throws JRException  {

            JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );   
                       
            Map parameters = new HashMap();   
 
     JasperPrint jprint = JasperManager.fillReport("C:\teste\relatorios\Cliente.jasper", parameters, jrRS);  //aqui onde esta o .jasper no meu caso Cliente
   
            JasperViewer.viewReport(jprint,false);   

        }   
      
}  

perceba que o construtor dessa classe esta esperando um RESULTSET

a funcao q returna esse resultset
   public ResultSet listarRelCliente(String Nome_Cliente) {
        String sql = "SELECT * FROM Cliente WHERE UPPER(nome_cliente) LIKE ?";
        try {
            PreparedStatement stmt = getConexao().prepareStatement(sql);
            stmt.setString(1, "%" + Nome_Cliente.toUpperCase() + "%");
            ResultSet rs = stmt.executeQuery();
         
            return (rs);
            
        } catch (SQLException sQLException) {
            System.out.println("Erro ao listar Cliente");
        }
        return null;
    } 

retorna todos os clientes que contem a string EX fabio vai retornar todos osclientes fabio se deicharmem branco retorna todos

aqui chamo esses metodos

     ClienteDao cliente = new ClienteDao();
            ClienteRel cli = new ClienteRel();

                ResultSet rs = cliente.listarRelCliente(campo_pra_pesquisaNome.getText()); //aqui pego em um campo texto o nome

                try {

                 cli.ClienteRel(rs);
                } catch (Exception ex) {
                    Logger.getLogger(ConsultarCliente.class.getName()).log(Level.SEVERE, null, ex);
                }


aqui funcionou beleza
Criado 8 de novembro de 2008
Ultima resposta 23 de dez. de 2008
Respostas 13
Participantes 7