iReport: CrossTab + Collection

7 respostas
V

Estou precisando fazer um relatório CrossTab que tem os dados vindos de uma Collection.
Essa Collection é de um tipo q além de artibutos normais (String, Integer) possui uma Collection de uma classe do meu sistema.

Um exemplo disso seria uma Collection de Funcionarios e em Funcionarios existisse uma Collection Dependentes.

Já fiz alguns relatórios usando o JRBeanCollectionDataSource. Mas não sei como resolver isso… entenderam ?

7 Respostas

Marques

Pegando uma carona nessa thread alguém sabe como deixar de imprimir linhas que tenham uma coluna com valor zero na crosstab?

No relatorio eu consigo usando o prinnt when expresssion, porem num crosstab… não sei como fazer

obrigado,

Marques

V

vou dar um exemplo do q eu preciso:

Classe Vendedor:

String nome;

Collection  comissoes;
Classe Comissao:

String mesano;

Double total;

No relatório fica:

01/2007              02/2007           03/2007    Totais
 da silva          100,00                350,00             275,00     725,00
joao de souza     345,00                 288,00            195,00     828,00
Totais                 445,00                638,00             470,00    1553,00

e a quantidade de meses será de acordo c/ filtros
agora ficou mais claro ?

nbluis

Opa…
Cara fiz um relatório exatamente como este que vc tem a alguns meses atraz.

Era assim

01/2006      02/2006 
Loja1     0                  1
Loja2     2                  2
Loja3     0                  1

Fiz um objeto que representava cada célular/row desta grid, e um outro objeto para representar as cabecalhos.

assim

classe Row {
  Cabecalho cabecalho;
  Loja loja;
  Long valor;
}

classe Cabecalho {
  String descricao;
}

classe Loja {
  String desricao;
}

Então sobrescrevi os métodos compareTo (comparable) e equals do cabecalho e sobrescrevi o método equals da loja.

Assim ele consegue fazer as comparações de objetos e ordenar perfeitamente pra vc.

OBS: no meu caso também seriam geradas as colunas dinamicamente…

ficou muito legal…

V

se eu entendi certo, vc mandava só uma Collection pro jasper ?
aí manda ele como JRBeanCollectionDataSource ?

to meio desesperado pq já fiz grande parte dos relatórios desse sistema, só q tem uns 5 relatórios q são cross nesse estilo. se não conseguir fazê-los vou ter q talvez procurar outra coisa pra relatório… :shock:

nbluis

Exatamente…

É um pouco confuso no começo, mas internamente o jasper que faz a ordenação dos teus registros.

Utilizando os métodos equals para as suas linhas para saber quais rows são da mesma linha

E utilizando compareTo para as suas colunas, assim que ele sabe qual a ordem das colunas.

V

valeu nbluis
fiz aqui e deu certinho

obrigado

fabianofrizzo

Boa Tarde Galera…

Desculpa estar desenterrando o tópico das profundezas…

Mas estou com o mesmo problema…

E ja li e reli o tópico varias vezes e ainda não consegui resolver o meu problema.

Alguém poderia detalhar um pouco mais o que eu preciso fazer ou até mesmo se puder me mandar um .jrxml de modelo só para que eu possa dar uma olhadda ficarei muito grato…

Muito Obrigado pela atenção de todos

Criado 10 de setembro de 2007
Ultima resposta 2 de jun. de 2008
Respostas 7
Participantes 4