22 de maio de 2011

JasperReports 4.0.1: Utilizando JDBC datasource

Para quem está perdido no assunto, aconselho que vejam o início de tudo, nesse link também tem as ferramentas que vamos utilizar: iReport 4.0.1 e a biblioteca JasperReports 4.0.1 ... JasperReports 4.0.1: Conhecendo o iReport 4.0.1
Pra quem já está por dentro das postagens: depois de vermos como utilizar JavaBeans datasource em relatórios do JasperReports, vamos para uma parte mais simples, usar JDBC como datasource. Para este exemplo irei usar o banco de dados MySQL... 

Preparando o banco de dados..
No banco de dados MySQL eu vou usar uma database com o nome de 5tads, dentro dela eu vou criar uma tabela com as seguintes informações:


Nesse ponto já aconselho que insira alguns clientes dentro dessa tabela, vamos precisar mais pra frente pra fazer os testes!

Estrutura básica do relatório...
Tendo o iReport aberto, vamos criar um novo relatório do formato Blank A4 e vamos colocar o nome de relatorioJDBC. A estrutura básica do nosso relatório será baseada no que vimos na postagem sobre "Conhecendo o iReport 4.0.1", para este relatório eu removi as bands: Page Header, Column Footer e Sumary, pois não irei precisar delas, abaixo eu digo o que eu coloquei em cada band que ficou:
Title: apenas um static text que é o "Relação de Clientes";
Column Header: são quatro static text referentes às colunas que eu quero do meu relatório;
Detail 1: são quatro text field que são alinhados aos static text da band acima, e
Page Footer: utilizei dois componentes da paleta Tools, que são o Current Date e Page X of Y.

Criando o datasource...
Agora precisamos pegar os fields para colocar nos nossos text field da band Detail 1. Para isso vamos criar um datasource que vai fazer a conexão com o nosso banco de dados, e assim podermos pegar as colunas da tabela cliente.
No iReport, procure o botão Report datasources:


Na janela que abrir, clique no botão New, o que aparece é:

Nisso selecione a primeira opção mesmo, "Database JDBC connection" e clique em Next:

Na tela acima em JDBC URL, altere MYDATABASE para o nome da sua database (a minha é 5tads), e informe o username e a senha do seu banco de dados, veja se os dados estão corretos clicando em  Test caso esteja tudo certo é só salvar a conexão:

Deixe a conexão recém criada, marcada como Default e pode fechar a janela.

Buscando os fields...
Ainda no iReport procure o botão Report Query:


A janela que irá abrir está por padrão na tab que precisamos que é a Report Query mesmo. Para buscar os fields basta fazer um select do SQL na tabela que deseja, pode-se usar querys com JOIN's e tudo mais:

Conforme vai escrevendo a query no campo ele vai trazendo os fields abaixo... para selecionar eles basta dar um OK nessa janela, só para confirmar vá no Report Inspector e procure por Fields:


Feito isso, agora basta configurar corretamente os text fields com os fields selecionados:

Obs: na imagem acima o text field correspondente ao limite credito aparece apenas $F, mas é porque o campo está pequeno alí e não está cabendo o texto inteiro, então o correto mesmo é $F{limite_credito}

Ao utilizar o JDBC como datasource, é possível visualizar o relatório diretamente no iReport, basta clicar em Preview:

A visualização é:

Pela imagem não dá pra ver, mas os campos Data Nasc. e Limite não estão formatados, eu quero que a data apareça no formato dd/MM/yyyy e o limite tenha as casas decimais separadas por vírgula e não por ponto, para isso eu preciso alterar as propriedades do text fields correspondentes a eles. 
Data Nasc:


Limite crédito:


Depois de corrigido, volto a visualizar o relatório, o resultado é:


Para utilizar esse relatório, irei disponibilizar duas formas:
* Utilizar em projetos Web: Veja aqui
* Utilizar em projetos Desktop: Veja aqui

Nenhum comentário:

Postar um comentário

Deixe seu comentário... ;)