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