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