E ai galera tudo ok…
Estou com um pequeno problema com o IReport, se alguem puder me ajudar fico muito agradecido.
Meu problema e em relação a passagem de um ArrayLista para o relátorio.
Segue o Problema
Tenho as Seguintes classes;
// Classe dos titulares
class Titular{
String nome;
Integer idade;
ArrayList dep = new ArrayList();
Titular(String n, Integer i){
nome = n;
idade = i;
dep.add(new Dependente(“Gustavo”, “M”, 20));
dep.add(new Dependente(“Wellington”, “M”, 30));
dep.add(new Dependente(“Jamilson”, “M”,20));
dep.add(new Dependente(“Izabel”, “S”, 45));
}
public ArrayList get(){
return dep;
}
}
Classe dos dependentes
class Dependente{
private String nome_dep;
private String sexo;
private int idade;
Dependente(String n, String s, int i){
nome_dep = n;
sexo = s;
idade = i;
}
public void setSexo(String s){
sexo = s;
}
public String getSexo(){
return sexo;
}
public void setNome_Dep(String n){
nome_dep = n;
}
public String getNome_Dep(){
return nome_dep;
}
public void setIdade(int n){
idade = n;
}
public int getIdede(){
return this.idade;
}
}
// Classe referente ao relatório
public class RelatorioArrayList {
/**
-
@param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new RelatorioArrayList().geraRelatorio();
}
public void geraRelatorio(){
Titular t = new Titular(“Jamiro”, 5;
ArrayList dep = t.get();
System.out.println(((Dependente)dep.get(1)).getNome_Dep());
Map parametros = new HashMap();
parametros.put(“nome”, t.nome);
parametros.put(“idade”, t.idade);
try {
// Objeto com arrayList
JRBeanCollectionDataSource BCD = new JRBeanCollectionDataSource(dep);
parametros.put(“dep”, BCD);
JREmptyDataSource ED = new JREmptyDataSource();
// Compila Relatório
JasperReport jasperReport = JasperCompileManager.compileReport("/Java/Workspace/reports/Rel_ArrayList.jrxml");
// Preenche relatório
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parametros, ED);
JasperViewer.viewReport(jasperPrint, true);
} catch (JRException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (Exception f) {
// TODO Auto-generated catch block
f.printStackTrace();
}
}
}
IReport
No Relatório principal:
Criei três parâmetro:
nome java.lang.String
idade java.lang.Integer
dep java.lang.Object
Cofigureio subreport da seguinte maneira:
Subrelatorio:
Expressão de Conexão/Fonte de dados
USAR UM DATA SOURSE
$P{dep}
Sub-Relatório(outros)
Coloquei o path do meu relatório: “C:\Java\Workspace\Reports\RelSub_ArrayList.jasper”
No Sub Relatório:
Crie um fild:
nome_dep java.lang.String
Quando executo meu código (ECLIPSE) o seguinte erro é apresentado:
java.lang.NoSuchMethodException: Unknown property ‘nome_dep’
net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : nome_dep
Não coloquei toda a descrição dos erros por questão de espaço.
Alguém pode me ajudar com isso?
Obrigado