Group iReport (JasperStudio)

0 respostas
jasperireportjava
Mstanguine

Boa tarde,

Para a criação de um relatório faço duas buscas, uma em cada tabela distintas. Após, crio uma lista só com os dados retornado dessas duas. Exemplo:

List<Venda> lista = new ArrayList<Venda>();

Collection<Produto> lProduto = dao.listaProduto();
for(Produto p: lProduto) {
    Venda v = new Venda();
    v.setVendedor(p.getVendedor);
    v.setvalor(p.getValorvenda);
    lista.add(v);
}

Collection<Servico> lServico = dao.listaServico();
for(Servico s: lServico) {
    Venda v = new Venda();
    v.setVendedor(s.getVendedor);
    v.setvalor(s.getValorvenda);
    lista.add(v);
}

Ok, passo para o iReport a lista. Ela esta configurada em seu group expression para o vendedor:

<field name="vendedor" class="minha.app.teste.Vendedor"/>
<groupExpression><![CDATA[$F{vendedor}]]></groupExpression>

Com o groupHeader:

<textFieldExpression><![CDATA[$F{vendedor}.getNome()]]></textFieldExpression>

Mas na exibição, não é feito esse agrupamento. Alias, ele agrupa, mas separando serviço de produto mesmo sendo o mesmo vendedor. Ex.:

Vendedor 01
Produto Teste 01 | 25,00
Produto Teste 02 | 20,00

Vendedor 01
Serviço Teste 01 | 45,00

O Serviço Teste 01 deveria esta no agrupamento de cima.

Os dois métodos que buscam a lista tem order by pelo vendedor. Já tentei fazer um Collections.sort(lista), usando como comparação o vendedor que está dentro da lista, mas não funcionou também. =/

Por gentileza, alguém poderia me ajudar?

Criado 30 de junho de 2017
Respostas 0
Participantes 1