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();
}
= = = = = = = = = = = = = = = = = = = = = = = = = =