[Resolvido] Agrupamento de dados no Ireport

3 respostas
ireportjavamysql
G

Bom dia a todos!

Estou desenvolvendo uma aplicação Java com MySQL. Tenho uma tabela chamada Setor e uma tabela chamada Saida.
A tabela setor possui o nome do setor, e o nome do responsável.
A tabela Saida contém a data, o custo e a FK do Setor.
Também utilizo o Ireport para gerar um relatório com subrelatório de todas as saídas realizadas pelos setores. O relatório principal apresenta apenas o nome do setor e do responsável, enquanto o subrelatório apresenta todas as saídas (data e custo).

Minha aplicação deve possibilitar ao usuário filtrar a consulta, exibindo as saídas de apenas um setor selecionado, ou de todos os setores, agrupando as saídas por setor.
Quando eu chamo o relatório, eu passo o id_setor como parâmetro para o Ireport e consigo gerar o relatório perfeitamente. Meu problema começa quando tento exibir as saídas de todos os setores, pois o subrelatório mostra todas as saídas da tabela.

Alguém poderia me dizer como faço para que o relatório exiba corretamente as informações?
Segue exemplo de como quero fazer:

SETOR: ADMINISTRATIVO RESPONSÁVEL: JOÃO DA SILVA
DATA CUSTO
25/09/2018 100,00
27/09/2018 95,00
29/09/2018 85,00

SETOR: FINANCEIRO RESPONSÁVEL: JOSÉ SOUSA
DATA CUSTO
26/09/2018 120,00
27/09/2018 90,00
28/09/2018 95,00

Desde já agradeço.

3 Respostas

rodriguesabner

SQL, escolhe as colunas que vc quer exibir, depois usa o GROUP BY colunaQueVcQuer ORDER BY colunaQueVcQuer

V

faca o select normalmente no dataset and querie:

Select st.nome,
st.responsavel,
s.data,
s.custo
from saida s
left outer join setor st on (s.setor_id = st.id)
where bla bla bla

e no seu Ireport crie um group header pelo nome do setor e coloque na Band dele os dados de setor, responsável e os Labels das colunas data e custo
e na Band detail as colunas data e custo
PS: Neste caso não necessitaria de subrelatorio

G

Deu certo! Obrigado!

Criado 28 de setembro de 2018
Ultima resposta 11 de out. de 2018
Respostas 3
Participantes 3