iReport

7 respostas
A

Galera … Boas tardes.

Putz … To tomando o maior ôlé do iReport. Podem me ajudar, por favor. É o seguinte.

Tenho a tabela VendasFilialMensal, com os campos:
cdg_filial, nmr_ano, nmr_mes e val_venda.

É uma tabela resumo para relatórios bem rapidos.

E eu preciso fazer o relatório no seguinte Layout.

----|2002 | 2003 | 2004 | 2005 |
----|-----|------|------|------|
Jan
Fev
Mar
Abr
Mai
Jun
Jul
Ago
Set
Out
Nov
Dez
Total

Notem que é só dar o Select que ja vem as informações prontas.

:arrow: O que eu não consigo é fazer essa maldita tabela … :x

Podem me ajudar ???

Obrigadúúúúúú :smiley:

7 Respostas

aborges

As colunas de anos serao fixas ou vc vai querer q elas aumentem conforme os anos forem passando ( 2006, 2007… )…

Caso elas sejam fixas, o problema eh no sql… vc tera q fazer com q ele retorne as colunas de anos pra vc… No Oracle da pra fazer isso usando o decode…

Caso vc queira o nro de colunas dinamicas no relatorio, vc tera q compila-lo em tempo de execucao, apos alterar o XML dinamicamente… Nao sei se existe outro jeito :frowning:

A

aborges

As colunas são sempre os 4 ultimos anos incluindo o ano corrente. e as linhas são sempre os 12 meses do ano …

Mas por onde devo começar ?? Esse tipo de tabela só da pra fazer utilizando o Subreport ???

Agradeço a ajuda :smiley:

aborges

Se sao soh os 4 ultimos anos legal, vc nao tera problemas com o IReport…

Vc pode gerar esse retorno diretamente com seu SQL ( de uma olhada no decode q ele te ajuda ) e popular no IReport :slight_smile:

A

aborges

Vc comentou de utilizar o decode em Oracle … Mas minha base é Postgre. Tbém tem esse tal de decode para Postgre ?? Vou dar uma pesquisada !! …

Desculpe a ignorancia, mas não conheço isso. :oops:
Mas qual é o papel desse decode ?? Eu consigo construir uma “tabela” na memoria e depois é só exibila no iReport ??

:smiley:

renatosilva

andrejs,

Já pensei nessa sua situação, e uma ferramenta de relatório se propõe a resolvê-la. O único detalhe é que ela só existe no papel :cry:

Bem o que você quer se não me engano se chama referência cruzada. Eu penso se não dá pra montar isso com SQL e operar o resultado como um dataset simples. Cara eu usei o assistente do Access para gerar uma consulta de referência cruzada e olhei como ficou o fonte SQL. Ele têm as palavras-chave TRANSFORM, SELECT, FROM, GROUP BY e PIVOT. Você poderia tentar aprender como fazer isso no PostgreSQL, eu não sei se essa sintaxe é exclusiva do Access ou se há dialetos equivalentes no Postgre.

Ajudou alguma coisa?

A

Renato,

Então vc quis dizer que eu não consigo fazer isso no iReport ???
Ou consigo usando alguns tipos de Gambiarra ?? utilizando varios SubReport seria uma saida para isso ???

Tenho o access 2003 aqui, vou fazer uma referência cruzada como vc disse … e tentar transportar a mesma idéia do SQL para o PostgreSQL !!!..

… e claro que ajudou !! todos os comentários da galera ajudam !! :smiley:

Mas se alguém tiver um exemplo que solucionou a mesma situação que estou agora … e puder mandar eu agradeço !!! :smiley:

Obrigadúúúú …

renatosilva

Eu não sei se o iReport trabalha com isso. Estou dizendo que você pode ignorar o iReport, é só transformar a sua tabela, rearranjando linhas e colunas, usando apenas SQL, e então você terá um dataset simples que poderá usar como uma tabela normal.

O problema é a marcação de campo no template do iReport, se os campos são dinâmicos você teria que usar algum comando especial em vez de referenciar cada campo, já que você não saberia quais são os campos. E eu não sei se o iReport tem esse “comando especial”.

Outra saída que estava pensando seria fazer essa transformação com o seu código Java mesmo e criar uma tabela temporária para gerar o relatório.

Criado 10 de fevereiro de 2005
Ultima resposta 11 de fev. de 2005
Respostas 7
Participantes 3