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
A
andrejs
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
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
A
andrejs
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 ??
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
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
andrejs
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 !!
Mas se alguém tiver um exemplo que solucionou a mesma situação que estou agora … e puder mandar eu agradeço !!!
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.