[b]Tutorial iReport 0.2.2[/b]
Por [url=http://www.javafree.com.br/forum/profile.php?mode=viewprofile&u=2936]Bruno R. Lima[/url] ( aebrlima@hotmail.com )
Criando relatórios JasperReports utilizando iReport e uma conexão JDBC.
+ O QUE É IREPORT ?
+ CRIANDO UM RELATORIO SIMPLES
++ Iniciando o iReport
++ Criando um Relatório
++ Criando a origem dos dados
++ Selecionado a visualização no Ireport
++ Criando o SELECT dos dados
++ Construindo o relatório
[i][b]O QUE É O IREPORT ?[/b][/i]
O iReport é uma ferramenta que visa facilitar a construção de relatórios utilizando a biblioteca JasperReports ( http://jasperreports.sourceforge.net ) através de uma interface gráfica desenvolvida em Swing. Ele dispõe de importantes ferramentas para desenvolver relatórios complexos e demorados.
Mesmo sem nenhum conhecimento das bibliotecas do JasperReports, você consegue criar relatórios muito interessantes através desta ferramenta e aprender a entender as tags XML utilizadas no JasperReports.
[i][b]CRIANDO UM RELATORIO SIMPLES[/b][/i]
Iniciando o iReport
Se você tiver o Ant instalado em sua maquina, altere o arquivo iReport.bat e iReport.sh para setar o diretório de instalação.
Se você não tem o Ant instalado, vá ao subdiretório noAnt e execute o arquivo startup.bat para iniciá-lo.
Criando um Relatório
No menu File, clique em New Document; Irá aparecer a janela para configurar o seu relatório, entre essas configurações estão o nome do relatório, tamanho da folha utilizada, margens, colunas do relatório entre outras opções.
Para configurar um relatório já criado, alterar o tamanho da folha, margens, etc. vá ao menu View > Report Properties.
[i][b]Criando a origem dos dados[/b][/i]
[b]1[/b]. Agora vamos criar uma conexão JDBC para enxergar o banco de dados.
[b]2[/b]. Va ao menu DataSources > Connections / DataSources.
[b]3[/b]. Irá aparecer uma janela contendo as suas conexões de fonte de dados. Agora iremos criar uma conexão JDBC.
[b]4[/b]. Clique no botão New; Selecione em "Type Of Connection / DataSource" a opção "DataBase JDBC Connection".
[b]5[/b]. Defina um nome para a conexão: este nome é apenas para identificá-lo no iReport. Ex: "MinhaConexao"
[b]6[/b]. Agora você deve selecionar o driver JDBC a ser utilizado. Neste caso vamos utilizar o driver da Oracle, "oracle.jdbc.driver.OracleDriver". Preencha também a URL de conexão com o banco: "jdbc:oracle:thin:@<maquina>:<porta>:<instancia>". Você deve substituir as opções:
- <maquina> - Endereço da maquina onde o banco de encontra. Ex: 192.168.0.1;
- <porta> - Porta de conexão do banco; Default 1521;
- <instancia> - A instancia do banco. Ex: oradata;
Neste caso nossa URL seria: "jdbc:oracle:thin:@192.168.0.1:1521:oradata".
[b]7[/b]. Informe os campos "Database" com a instancia do banco, "User" com o usuário e "password" com a senha do seu banco. Essas informações são necessárias para o iReport conectar-se no banco para obter informações da coluna.
Clique em TEST para testar se a conexão está ok. Se estiver tudo em ordem, clique na opção SAVE para salvar sua conexão.
Se você quiser alterar alguma dessas informações, clique no botão "Modify" da janela "Connections/Datasources".
Após criada a conexão, apenas clique no "X" no canto já janela para fechá-la.
Agora que você criou sua conexão, devemos informar que vamos usá-la no relatório, então vá ao menu "Build" e clique na opção "Set Active Connection". Irá aparecer uma lista das conexões disponíveis. Clique na conexão que criamos, a "MinhaConexao" e clique em ok para selecioná-la.
[i][b]Selecionado a visualização no IReport[/b][/i]
Após criada a conexão, devemos selecionar qual forma queremos visualizar nosso relatório depois de pronto. As opções disponíveis são aquelas que o Jasper disponibiliza. Vamos selecionar a opção PDF Preview para ver em PDF.
[i][b]Criando o SELECT dos dados[/b][/i]
Bem, como o relatório é apenas fictício, criaremos a seguinte query para retornar apenas alguns campos utilizados no relatório.
SELECT 'Meu Primeiro Relatorio' TITULO,
SYSDATE DATA_CORRENTE,
5000 DIAS
FROM DUAL
[b]1[/b]. Vá para o menu "Datasource > Report Queries".
[b]2[/b]. Ao abrir a janela, encontra-se a area onde deverá ser digitado a sua query.
Nesta janela, você pode criar qualquer query, pois o que importa é o resultado dela.
[b]3[/b]. Após digitar sua query, veja que existem os botões "Read Fields" e "Save Query To Report". Clique no primeiro, "Read Field", que irá ler os campos que sua query retorna. Os campos irão aparecer na parte de baixo da janela, com o nome identificado na query e seu tipo correspondete no JDBC. No nosso caso irão aparece os seguintes campos:
- TITULO : java.lang.String
- DATA_CORRENTE : java.sql.Timestamp
- DIAS : java.lang.Double
[b]4[/b]. Selecione estes campos, clicando no primeiro, segure a tecla SHIFT e clique no ultimo. Clique no botão "Register Fields To Report". Isto fará com que os campos selecionados sejam criados ( registrados ) no relatório, para poderem ser utilizados. O botão "Clear List" limpa os campos encontrados na sua query.
Se você, por acaso mais tarde resolver incluir um novo campo na sua query, ao clicar no "Register Fields To Report" ele irá verificar se os campos que estão retornando na query já estão registrados no relatório, e não irão ser exibidos, exibindo assim somente os campos novos.
Para utilizar parâmetros no SQL, teremos que adicioná-los depois de criados os campos. Por que? Porque o iReport executa a query do jeito que esta no banco, e se existir algum parâmetro do iReport em sua query, ele irá reclamar, gerando um erro de SQL.
5. Antes de fechar a janela, altere sua query adicionando o parâmetro que iremos criar chamado de "PARAM1":
SELECT ?Meu Primeiro Relatorio? TITULO,
SYSDATE DATA_CORRENTE,
5000 DIAS,
$P PARAMETRO
FROM DUAL
Para trabalhar com parametros nas queries, devemos identificar que o valor é um valor do iReport, que deverá ser substituido. Por isso utilizamos a sintaxe $P{"nome do parametro"}. Assim, quando executarem a nossa query no relatorio, irão substituir esse valor pelo valor que passaremos como parametro no relatório. No caso de uma variavel, a sintaxe muda para $V{"nome da variavel"}.
Agora clique em "Save Query to Report" e clique em Close para salvar a query e fechar a janela.
[i][b]Construindo o relatório[/b][/i]
Vamos verificar se os campos foram criados corretamente. No meu "View", clique na opção "Report Fields", para abrir a janela dos campos do relatório.
Nesta janela é possível visualizar os campos criados no relatório, bem como as variáveis do relatório e os parâmetros.
Agora devemos criar o parâmetro que incluímos na nossa query, o "PARAM1".
[b]1[/b]. Com a janela que exibe os campos aberta, vá na aba "Parameters".
[b]2[/b]. Clique em "New"; Informe o nome do parâmetro, no caso "PARAM1", o tipo do parâmetro, neste caso java.lang.String, e um valor default, informe "VALOR DO PARAMETRO". Informe também uma descrição do parâmetro.
[b]3[/b]. Clique em Ok, verifique que o parametro foi criado. Feche a janela.
[i][b]Após criar o parâmetro, vamos adicionar os campos na tela.[/b][/i]
[b]1[/b]. No menu "Edit" vá na opção "Insert Element...". Aparecerá os elementos que você pode inserir em seu relatório. Vamos inserir um "Static Text" clicando nesta opção. Um "Static Text" é como um label, onde o seu texto ficará estático: você informa o texto.
[b]2[/b]. Verifique que o cursor do mouse alterou. Clique em um local do seu relatório, de preferência na área "Page Header", que é o cabeçalho de pagina para incluir o campo.
[b]3[/b]. Clique agora no menu "View" e selecione a opção "Element Property". Irá aparecer a janela com as propriedades do campo criado.
[b]4[/b]. Vamos alterar o tamanho dele. Altere a propriedade Width e Height para o tamanho desejado. Você pode também alterar o tamanho direto no layout do relatório apenas clicando e arrastando pelas bordas do objeto. Para deixar um tamanho padrao, vamos setar as propriedades para:
- Width: 300
- Height: 30
- Top: 10
- Left: 120
[b]5[/b]. Na segunda aba da janela, "Font" vamos informar a fonte usada no objeto, clique nela. Altere as propriedade para:
- "Font Name" = "Arial"
- "Size" = 18
- "Bold" = Checked
- "Horizontal Align" = Center
- "Vertical Align" = Middle
[b]6[/b]. Na terceira aba, "Static Text" é onde vamos informar o texto que deverá aparecer, clique nela. Na área que aparece, apague o texto e digite: "Relatório Ireport - JasperReport". Pode fechar a janela, clicando no (X).
[b]7[/b]. Para facilitar nossa vida, na barra de menu tem os botões de atalho. Para criar um Text Field, clique no botão que contem a letra "F".Clique agora em alguma área do relatório, de preferência dentro da área escrita "Detail", onde se encontram os detalhes.
Após inserir o campo, de um duplo clique sobre ele, e verá que aparece a caixa de propriedades do objeto. É semelhante as propriedades de um "Static Text" exceto pelas novas abas "Text Field" e "Hyper Link". Altere as propriedades abaixo na aba "Commom"
- Width: 280
- Height: 18
- Top: 10
- Left: 15
[i][b]Feche a janela de propriedades do objeto.[/b][/i]
[b]8[/b]. Vamos criar os outros dois campos do relatório: Repita o mesmo procedimento anterior para incluir um campo, mas alterar a propriedade Top para 30 em um e 50 no outro campo. Assim você irá criar mais 2 campos um logo abaixo do outro.
[b]9[/b]. Dê um duplo clique no primeiro campo criado para verificar suas propriedades. Na janela de propriedades, clique na aba "Text Field" para alterarmos as propriedades de campos dele.
A propriedade "Textfield Expression Class" é a classe que esse textfield irá representar. No nosse exemplo, esse campo irá representar o titulo que retornará da query. Altere para java.lang.String.
A propriedade "Text Field Expression" é o valor que a mesma irá imprimir, preencha com $F.
Sem fechar a janela, seleciona o segundo campo criado no relatório. Na mesma aba selecionada, a "Text Field" das propriedades do campo, altera as propriedades "TextField Expression Class" para java.util.Date e a propriedade "Text Field Expression" para $F. Altere a propriedade Pattern para "dd/MM/yyyy", que é o formato que queremos exibir a data.
Agora clique no terceiro campo criado e altere as propriedades "TextField Expression Class" para java.lang.Double, "Text Field Expression" para $F e o Pattern para "0000".
Após finalizar a configuração dos campos, clique em Save no meu File para salvar o arquivo, ou no disquete na barra de atalho. Informe o arquivo XML para o qual deseja salvar seu relatório. Confirme.
Para compilar o seu relatório e gerar um arquivo . JASPER, clique no botão laranja, ao lado do zoom de visualização do relatório.
Para executar seu relatório utilizando a conexao ativa, vá em "Build" e "Execute Report ( using active conn )".