NullPointerException / IReport / Java

2 respostas
R

Caros amigos, estou com um problema para gerar um relatório simples com o IReport. Segue abaixo os procedimentos que estou fazendo. Quem puder dar uma olhada, desde já fico agradecido.

O relatorio é simples, veja lay-out abaixo. Logo apos estao todos os programas
envolvidos no processo.
Este é o passo a passo que estou seguindo para gerar o relatorio no IReport. Esta
ocorrendo um erro descrito na linha abaixo. Descubram onde ESTA O ERRO!!!
Exception in thread “main” java.lang.NullPointerException

1- Criação do relatorio

1.1- New Tipo Blank A4

1.2- Criação do titulo do relatorio (Label em Title)

1.3- Criação dos nomes das colunas (Label em Column Header)

- Agencia

- Nome da Agencia

- Lacre

- Pacotes

1.4- Criação dos Fields

- cage

- nome

- lacr

- paco

1.5- Criação dos Text Fields no Detail

- $F{cage}

- $F{nome}

- $F{lacr}

- $F{paco}

2- Criação da conexão

2.1- Clicar no botão pertinente.

2.2- NEW - Selecionar o tipo de conexão - JRDataSource (Custom JRDataSource).

(Verificar se é deste tipo mesmo!, se não, qual seria?).

2.3- Name : ___________________________________________

Factory class:____________________________________

Metodo estatico: _________________________________

2.4- Preciso testar o funcionamento (TEST) ?

2.5- SAVE (Salvar o arquivo).

3- Compilar o arquivo de gelatorio, para gerar o .JASPER

Agencia Nome da Agencia Lacre Pacotes
xxxx aa----------------------aa xxxx.xxx xxx
xxxx aa----------------------aa xxxx.xxx xxx
xxxx aa----------------------aa xxxx.xxx xxx

= = = = = = = = = = = = = = = = = = = = = = = = = =

import java.util.Map;

import net.sf.jasperreports.engine.JRDataSource;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.view.JasperViewer;
public class GerarRelatorio {

public static void gerarRelatorio(JRDataSource source) throws JRException {

Map map      = new HashMap();

String visao = “…/dist/Folha_A4.jrprint”;

String jaspa = “C:/DHU/Rogerio/Relatorio/Folha_A4.jasper”;

JasperFillManager.fillReport(jaspa, map, source);

JasperViewer.viewReport(visao, false);

}
public static void main (String[] args) {

try {

GerarRelatorio.gerarRelatorio(AgenciaJRDadosFabrica.criacaoDosDados());

}catch (JRException e) { e.printStackTrace(); }

}

}

= = = = = = = = = = = = = = = = = = = = = = = = = =

import java.util.Vector;

import net.sf.jasperreports.engine.JRDataSource;

public class AgenciaJRDadosFabrica {
private static JRDataSource dados;

public static JRDataSource criacaoDosDados() {

if (dados    == null) {

String cage = “1908”;

String nome = “CSO BH”;

String lacr = “7234578”;

String paco = “1”;

Agencia ag  = new Agencia(cage, nome, lacr, paco);

Vector vitor = new Vector();

vitor.add(ag);

cage        = “0012”;

nome        = “SETE LAGOAS”;

lacr        = “1234678”;

paco        = “10”;

ag          = new Agencia(cage, nome, lacr, paco);

vitor.add(ag);

cage        = “0020”;

nome        = “MATOZINHOS”;

lacr        = “4444444”;

paco        = “7”;

ag          = new Agencia(cage, nome, lacr, paco);

vitor.add(ag);

cage        = “0022”;

nome        = “PRUDENTE DE MORAIS”;

lacr        = “3245671”;

paco        = “4”;

ag          = new Agencia(cage, nome, lacr, paco);

vitor.add(ag);

//= = = = = =

dados       = new AgenciaJRDataSource(vitor);

System.out.println(“Passou dentro do criacaoDosDados”);

} else System.out.println(“Passou FORA do criacaoDosDados”);

return dados;

}

}

= = = = = = = = = = = = = = = = = = = = = = = = = =

public class Agencia {
private String cage;

private String nome;

private String paco;

private String lacr;
public Agencia() {

//

}

public Agencia(String cage, String nome, String lacr, String paco) {

this.cage = cage;

this.nome = nome;

this.lacr = lacr;

this.paco = paco;

}

public String getCage() { return cage; }
public void setCage(String cage) { this.cage = cage; }

public String getNome() { return nome; }
public void setNome(String nome) { this.nome = nome; }

public String getPaco() { return paco; }
public void setPaco(String paco) { this.paco = paco; }

public String getLacr() { return lacr; }

public void setLacr(String lacr) { this.lacr = lacr; }

}

= = = = = = = = = = = = = = = = = = = = = = = = = =

import java.util.Iterator;

import java.util.Vector;

import net.sf.jasperreports.engine.JRDataSource;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JRField;
public class AgenciaJRDataSource implements JRDataSource {

private static Iterator iterator;

private static Agencia cursor;

public AgenciaJRDataSource(Vector agencia) {

super();

iterator = agencia.iterator();

}

public boolean next() throws JRException {

boolean retorno = iterator.hasNext();

return retorno;

}

public Object getFieldValue(JRField nome) throws JRException {

Agencia agencia = cursor;

if (nome.getName().equals(“cage”)) { return agencia.getCage(); }

if (nome.getName().equals(“nome”)) { return agencia.getNome(); }

if (nome.getName().equals(“lacr”)) { return agencia.getLacr(); }

if (nome.getName().equals(“paco”)) { return agencia.getPaco(); }

return null;

}

}

= = = = = = = = = = = = = = = = = = = = = = = = = =

import net.sf.jasperreports.engine.JRField;
public interface JRDataSource {

public Object getFieldValue(JRField jrFields);

public boolean next();

}

= = = = = = = = = = = = = = = = = = = = = = = = = =

2 Respostas

drsmachado

É uma pegadinha?
"Descubram o erro"
Cadê o stack trace do erro?

R
Exception in thread “main” java.lang.NullPointerException

at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517)

at teste.GerarRelatorio.gerarRelatorio(GerarRelatorio.java:20)

at teste.GerarRelatorio.main(GerarRelatorio.java:28)

Java Result: 1

CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)
Criado 25 de novembro de 2010
Ultima resposta 25 de nov. de 2010
Respostas 2
Participantes 2