Parâmetro Ireport

Preciso passar um List por parâmetro para o ireport, lista essa que será usada em um subreport.

No ireport eu crio um novo parâmetro no master e nomeio com o mesmo nome passado no map.

map.put("listaTeste", lista) $P{listaTeste}

Em seguida crio um subreport e dou um new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource((java.util.List)$P{listaTeste}) no data source expression.

Agora como faço para pegar os valores dessa lista???

Estou usando o ireport 3.7.6

Obrigado desde já

Dentro do subreport (que é outro arquivo .jrxml) vais incluir os fields referentes aos objetos dentro dessa lista.
Essa listaTeste guarda o que?
Basicamente, é isso.

Mas qual a real necessidade de usares um subReport?

Leo,

essa lista é do tipo EstoqueEspecial

[code]public class EstoqueEspecial{

     private ProdutoFarmaceutico medicamento;
     private Long quantidadeMinima;
     private Long quantidadeMaxima;

}

public class ProdutoFarmaceutico{

     private String descricao;

}[/code]

eu quero pegar a descricao do medicamento, bem como as quantidades do estoque.

Cara, ele pega o valor dos fields pelo get, por reflection.
Então, vai ser o seguinte:

Não tá “certo”, tá quebrando um pouco o encapsulamento da coisa. Mas ou tu faz isso, ou tu vais ter que criar um bean só pra isso.
Cria, na classe EstoqueEspecial, isso:

public String getDescricaoMedicamento { return this.medicamento.getDescricao(); }
E cria no teu subReport um field “descricaoMedicamento”.

Entendeu a ideia do negócio?

Abraço!

Mas se eu colocar getMedicamento().getDescricao()???

Aí é que tá, de dentro do relatório não tens acesso a estes métodos.
Ele busca um método get pelo nome do field.
Segue ali o que eu te falei, que tá tranquilo =)

coloquei produtoFarmaceutico.descricaoProdutoFarmaceutico e funcionou.

Vlwww