35
Além da IDE - Criando Relatórios em Java para Desktop Sumário Introdução............................................................................................................................................. 2 O JasperReports.................................................................................................................................... 2 Mas o que é um Relatório?................................................................................................................... 3 O iReport.............................................................................................................................................. 6 Baixando e Instalando o iReport.......................................................................................................... 6 Configurando o iReport........................................................................................................................ 7 Conectando ao banco de dados............................................................................................................. 9 Desenvolvendo seu primeiro relatório................................................................................................ 11 Exibindo o relatório............................................................................................................................ 21 Criando o código Java que abrirá o relatório...................................................................................... 23 Apêndice............................................................................................................................................. 28 Comandos MySQL O comando CREATE......................................................................................................................... 28 O comando USE................................................................................................................................. 28 O comando DROP.............................................................................................................................. 28 Criando tabelas................................................................................................................................... 29 O comando SHOW............................................................................................................................. 30 O comando DESCRIBE..................................................................................................................... 30 Sintaxe básica da SQL........................................................................................................................ 31 Comando INSERT..............................................................................................................................31 Comando SELECT............................................................................................................................. 31 Um outro caso, a cláusula WHERE................................................................................................... 32 Nas Livrarias...................................................................................................................................... 33 Em breve em uma livraria perto de você............................................................................................ 33 Integrator Technology and Design www.integrator.com.br 1

Criando Relatórios

  • Upload
    vadolas

  • View
    112

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

SumárioIntrodução.............................................................................................................................................2O JasperReports....................................................................................................................................2Mas o que é um Relatório?...................................................................................................................3O iReport.............................................................................................................................................. 6Baixando e Instalando o iReport.......................................................................................................... 6Configurando o iReport........................................................................................................................7Conectando ao banco de dados.............................................................................................................9Desenvolvendo seu primeiro relatório................................................................................................11Exibindo o relatório............................................................................................................................21Criando o código Java que abrirá o relatório......................................................................................23Apêndice.............................................................................................................................................28Comandos MySQLO comando CREATE......................................................................................................................... 28O comando USE................................................................................................................................. 28O comando DROP..............................................................................................................................28Criando tabelas................................................................................................................................... 29O comando SHOW.............................................................................................................................30O comando DESCRIBE..................................................................................................................... 30Sintaxe básica da SQL........................................................................................................................31Comando INSERT..............................................................................................................................31Comando SELECT.............................................................................................................................31Um outro caso, a cláusula WHERE................................................................................................... 32Nas Livrarias...................................................................................................................................... 33Em breve em uma livraria perto de você............................................................................................33

Integrator Technology and Design – www.integrator.com.br 1

Page 2: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

IntroduçãoSejam bem vindos caros leitores. Esse tutorial é uma pequena apresentação do e-book completo que você poderá baixar gratuítamente caso tenha comprado um dos dois livros editados, seja o Dominando JBuilder ou Dominando Java Eclipse. Neste tutorial você aprenderá instalar, configurar e fazer um relatório básico com JasperReports e iReport.

Muitas das dúvidas existentes na construção de um aplicativo, seja qual for a linguagem, é a criação de relatórios.

Até bem pouco tempo existiam somente bons programas pagos de criação de relatórios. Em sua maioria, o desenvolvimento de relatórios era voltado para a plataforma Windows, isso porque esses construtores de relatórios somente desenvolviam para linguagens e programas específicos da plataforma.

O Java tem pouco tempo de vida, principalmente do ponto de vista do desenvolvedor, e como sua característica marcante ficou para a Web, a maioria das pessoas pensam em Java apenas para criar dispositivos para a Internet.

Os que já usaram e deixaram de lado o Java para Desktop alegam ser lento ou até mesmo complexo demais perto das linguagens já existentes para o desenvolvimento de aplicativos para desktop. Dentre as alegações mais comuns, as pessoas que não querem desenvolver Java para desktop dizem que a criação de relatórios e muito complexa.

Neste tutorial você conhecerá o JasperReports que constrói o relatório e o iReport, desenvolvido como IDE independente de construção de relatórios em JasperReports. Também aprenderá em como fazer uma aplicação distribuída para desktop que chame seu relatório sem dar os problemas comuns existentes.

O JasperReportsJasperReports é um poderoso framework de código fonte aberto famoso por gerar de relatórios multiplataforma. Escrito na linguagem Java, essa biblioteca apresenta grande habilidade na organização e apresentação de conteúdo, permitindo a geração dinâmica de relatórios em diversos formatos, como PDF, HTML, XLS, CSV e XML, podendo ainda ser utilizada em qualquer aplicação Java, incluindo aplicações desktop, Web e distribuídas. É sem sombra de dúvidas, a ferramenta de geração de relatórios mais usada no país, quando se trata da linguagem Java.

O que torna o JasperReports poderoso está em sua forma de desenvolvimento do relatório, escrito totalmente em XML, isso o torna simples de ser compreendido e de fácil manutenção. No design do relatório, você tem desde dos campos a serem preenchidos e com seus respectivos tipos como também até mesmo a linguagem SQL imbutida, todos definidos em um arquivo XML através de tags que obedecem a uma estrutura e restrições declaradas em um arquivo DTD (jasperreports.dtd). Usando XML, o desenvolvedor pode definir textos estáticos, imagens, linhas, formas geométricas, como retângulos e elipses, e suas localizações dentro do relatório. Quando pronto, esse arquivo XML precisa ser compilado, no qual é gerado um arquivo com a extensão .jasper, contendo a versão compilada do código XML.

Integrator Technology and Design – www.integrator.com.br 2

Page 3: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

A compilação do arquivo XML representando o design é feito pelo método compileReport encontrado na classe net.sf.jasperreports.engine.JasperCompileManager.

Nesta compilação, o design do relatório é carregado em um objeto do projeto do relatório e então é colocado em série e armazenado no disco( net.sf.jasperreports.engine.JasperReport).

Este objeto colocado em série é usado então quando a aplicação quer preencher o projeto especificado do relatório com os dados. A compilação de um projeto do relatório implica na compilação de todas as expressões de Java definidas nas linhas de XML que representam todas o projeto do relatório. Várias verificações são feitas em tempo de compilação para checar a consistência do desenho do relatório. Como resultado você tem um relatório gerado que pode ser usado para mostrar resultados vindos de diferentes bancos de dados e que pode ser exportado para vários formatos, o que o torna até mesmo independente do próprio JasperReports estar o não instalado na máquina do usuário final. Esse resultado só é possível graças a classe net.sf.jasperreports.engine.JasperPrint.

Mas o que é um Relatório?Um relatório é uma maneira agradável de apresentar os dados vindos de alguma base de informação com sua aparência formatada . Os relatórios são feitos na forma de você perguntar a uma base de dados e obter os resultados em um formato agradável. Os dados na base de dados podem ser indicados apenas como está, isto é, nas centenas das páginas. Entretanto, na maioria das vezes, relatórios são usados para agrupar as informações vindas de um grupo de dados, relacionados entre si em diversas tabelas. Como resultado você tem apenas os campos determinados na construção do seu relatório e exposto como tal de forma agradável, ou seja, formatada. Vindo em um formato padronizado para impressão, como um texto feito em um editor de textos, você só precisa imprimí-los ou exportá-los para um outro formato de maior uso.

Integrator Technology and Design – www.integrator.com.br 3

Page 4: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Um relatório é composto por várias seções. Seções são partes de um relatório que contém informações específicas, necessárias para uma boa apresentação. Essas seções podem conter imagens, textos, retângulos e etc. Na terminologia do JasperReports, seções são chamadas de Bands. Em um documento, existem seções com propósitos específicos, onde cada um exerce um papel na geração do relatório. A seguir você tem uma lista com as principais seções existentes para a geração de relatórios:

Seções• Title

A seção de título. Esta seção só aparece uma vez no começo do relatório. Ex.: Relatório de Clientes

• Page HeaderA seção de cabeçalho da página. Esta seção se aparece no começo de cada página. Neste local você pode ter data e hora e/ou nome ou informações da empresa.

• Column HeaderA seção coluna do cabeçalho. Esta seção só aparece no começo de cada coluna. Se o relatório tem uma só coluna definida, então são ignoradas as seções cabeçalhos e rodapés de coluna. Como exemplo você pode listar nomes escolhidos de campos específicos como: Nome do Cliente, Telefone, Data do Cadastro.

Integrator Technology and Design – www.integrator.com.br 4

Ilustração 1

Page 5: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

• Detail

A seção de detalhes. Esta seção se repete enquanto houver linhas para serem colocadas no seu relatório de acordo com o que exite na sua base de dados.

• Column Footer

A seção coluna do rodapé. Esta seção aparece abaixo de cada coluna. Vale o mesmo comentário da seção Column Header.

• Page Footer

A seção de rodapé da página. Esta seção se aparece no final de cada página. Esta parte pode conter informações como o número da página ou o total de páginas encontradas: “1/7”.

• Last Page Footer

A última seção do rodapé da página. Esta seção substitui o rodapé da página regular na última página do relatório.

• Summary

A seção de sumário. Esta seção só aparece uma vez ao término do relatório. Para o exemplo, após ter alistado todos os cadastros de clientes nos detalhes (detail), você pode querer expor algum detalhe em um gráfico para melhorar a comparação visual.

Integrator Technology and Design – www.integrator.com.br 5

Ilustração 2

Page 6: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

O iReportO iReport é uma ferramenta visual que desenha arquivos XML para o JasperReports. É uma IDE de relatórios WYSIWYG.

Com iReport você pode definir o design do relatório dentro de um ambiente gráfico, contento os recursos necessários para que você desenvolva um relatório com o formato que a biblioteca JasperReports oferece. Graças ao iReport você pode criar relatórios com designs modernos e complexos sem se quer escrever uma linha ou até mesmo conhecer o código XML, pois ele todo é gerado automaticamente. Esse ambiente oferece muitas ferramentas que aceleram o desenvolvimento do seu relatório, desde a conexão com a base de dados até a atalhos para tarefas de compilação e visualização do relatório, dando a você a possibilidade de realizar testes antes de ter o resultado final do seu relatório.

Baixando e Instalando o iReportPara baixar o iReport, vá até o site http://ireport.sourceforge.net e baixe a versão mais atual do seu iReport. A versão utilizada nesse tutorial é a versão 0.5.2, no qual é a mais atual no momento em que escrevo.

Após baixar o arquivo, descompacte-o no diretório de sua preferência. Não é preciso dizer que é necessário ter o JDK instalado e devidamente configurado na sua máquina. Não é necessário ter o Apache Ant instalado na sua máquina.

Copie o arquivo tools.jar, localizado na pasta lib de seu JDK instalado, para os diretório lib do seu iReport.

Caso você esteja trabalhando com um banco de dados específico, verifique se este tem um driver JDBC também no diretório lib do iReport.

Para iniciar o iReport, vá ao diretório do iReport e execute o arquivo iReport.bat (para Windows) ou iReport.sh (para Linux).

Nota: Caso o seu iReport não inicialize, você deve verificar a sua configuração do JDK, não necessitando de alterar o código descrito no arquivo .bat.

Integrator Technology and Design – www.integrator.com.br 6

Ilustração 3

Page 7: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Configurando o iReportVá até o menu Tools e clique em Options. Na guia General altere o item Language para português (Brasil). Clique no botão Apply. Note que seu iReport ficou em Português. Isso é bom, pois assim você se familiarizará mais rápidamente. Nesta mesma guia você também pode definir outras opções como unidade padrão (Default unit), visualizar réguas e grids (View rules e View grids) e etc.

Integrator Technology and Design – www.integrator.com.br 7

Ilustração 4

Page 8: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Na guia External programs você pode configurar os programas externos que abrirão o arquivo em caso de uma exportação para o formato específico.

Clique em Save para salvar e sair da caixa de diálogo Options.

Integrator Technology and Design – www.integrator.com.br 8

Ilustração 5

Ilustração 6

Page 9: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Conectando ao banco de dadosO banco de dados escolhido aqui é o MySQL, não só por ser atualmente o mais popular mas também por ser portável a vários sistemas operacionais.

O banco de dados utilizado nesse tutorial bem seus dados se encontram no Apêndice.

Para criar uma conexão com o banco de dados, vá até o menu Fonte de Dados e clique em Conexões / Fonte de dados (lembre-se, você colocou seu iReport em Português).

Na caixa de diálogo Connections / Datasources você define a conexão com o seu banco de dados. Na Ilustração 7 você tem um exemplo com mais de uma conexão. É importante salientar que você pode ter vários bancos de dados e configurar várias conexões nesse local.

Ao clicar no botão New você tem uma nova caixa de diálogo chamada de Connections properties.

A seguir você tem uma imagem da configuração usada no meu caso:

Integrator Technology and Design – www.integrator.com.br 9

Ilustração 7

Page 10: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Para verificar se a conexão foi configurada corretamente, clique no botão Test. Aparecerá uma mensagem indicando se está ou não configurado certo.

Nota: Veja também a nota de Atenção dada a respeito de salvar a senha para se conectar com o banco de dados. Como ele mesmo diz, as senhas são armazenadas em um arquivo de texto não criptografado. Se você não especificar uma senha, o iReport pedirá somente quando necessário e não a guardará.

Após clicar no botão Save você está pronto para trabalhar com essa conexão e desenvolver seu primeiro relatório.

Integrator Technology and Design – www.integrator.com.br 10

Ilustração 9

Aqui você define o nome da sua conexão

Aqui você seleciona o Driver e a configuração para a conexão.

Aqui você pode digitar o nome do banco de dados por exemplo e clicar no

botão Wizard. Ele preencherá a opção

acima.

Aqui você define o login e a senha para se conectar com o banco de dados.

Ilustração 8

Page 11: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Desenvolvendo seu primeiro relatórioNesta etapa você aprenderá como criar relatórios simples com o iReport. É importante dizer que é necessário o conhecimento de SQL e de um banco de dados.

Vá ao menu Arquivo e clique em Novo Documento. Na caixa de diálogo Report properties você define o nome do seu relatório bem como o tamanho da página e a orientação, se retrato ou paisagem. Confirme no botão OK.

Vá ao menu Criar(build) e clique na opção Definir a conexão ativa. Selecione a conexão Dados caso você tenha outra configurada. Confirme no botão OK.

Você também pode selecionar a conexão ativa usando a barra de ferramentas do iReport.

Integrator Technology and Design – www.integrator.com.br 11

Ilustração 10

Ilustração 11

Ilustração 12

Page 12: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Nota: A configuração de uma conexão dentro do iReport não é obrigatória, pois você pode apenas criar o design do relatório e compilá-lo. Mas é importante poder visualizar seus dados antes mesmo de colocar em um aplicativo, testando a configuração feita.

Agora você está pronto para começar o seu primeiro relatório. Utilizando a barra de ferramentas a seguir, selecione o botão pressionado, visto na Ilustração 13.

Clique e arraste para abrir uma caixa de texto estático no local indicado na Ilustração 14 a seguir, na band title:

Com um duplo clique sobre ela você abre suas propriedades. Na guia Font altere o tamanho em size para 24 e marque o negrito na caixa de checagem Bold.

Na guia Static Text, digite o texto: Relatório de Autores Cadastrados. Quando terminar basta fechar a caixa de diálogo.

Seu relatório terá uma aparência como a mostrada na imagem a seguir (Ilustração 16):

Integrator Technology and Design – www.integrator.com.br 12

Ilustração 13

Ilustração 14

Ilustração 15

Page 13: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Na band columnHeader adicione mais três textos estáticos e os configure como mostra a tabela a seguir:

Static Text FontCad. N.º Size: 12 - BoldNome Size: 12 - BoldAno Nascimento Size: 12 - Bold

Tabela 1

A seguir você tem a aparência da configuração aplicada:

Com o botão direito do mouse sobre o relatório, você terá um menu de contexto. Selecione a opção Band properties.

Integrator Technology and Design – www.integrator.com.br 13

Ilustração 16

Ilustração 17

Ilustração 18

Page 14: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Na caixa de diálogo bands selecione a opção pageHeader e em Band height digite o valor 0.

Feche a caixa de diálogo. Seu relatório terá agora a aparência como a demonstrada a seguir:

Integrator Technology and Design – www.integrator.com.br 14

Ilustração 19

Aqui você seleciona a band que deseja configurar

Ilustração 20

Page 15: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Para definir os campos que receberão os dados do seu banco de dados, vá até o menu Fonte de Dados e clique em Consultas do Relatório. Na guia Report SQL query você digita a query que realizará a consulta na tabela que você deseja visualizar. Faça a query como mostra a Ilustração 21. Confirme logo após com o botão OK.

Com a ferramenta Textfield tool selecionada, você adicionará os campos respectivos a cada coluna previamente posicionada.

Clique abaixo da coluna Cod. N.º e nas suas propriedades, vá até a guia Text Field. Em Textfield Expression Class selecione java.lang.Integer.

Em Textfield expression apague seu conteúdo e com o botão direito do mouse, no menu de contexto, selecione o item Use texteditor (Ilustração 23).

Integrator Technology and Design – www.integrator.com.br 15

Ilustração 21

Ilustração 22

Page 16: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Na caixa de diálogo Expression editor selecione o campo desejado, no caso o autor_id dando um duplo clique (Ilustração 24) e logo após clique no botão Apply.

Após configurado, você terá na tela uma imagem semelhante a seguir:

Integrator Technology and Design – www.integrator.com.br 16

Ilustração 23

Ilustração 24

Page 17: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Adicione mais dois campos. Um será o campo nome e o outro o campo ano_nasc. Veja na tabela a seguir as alterações que deverão serem feitas em seus respectivos campos:

Coluna Textfield Expresssion Class Pattern$F{nome} java.lang.String$F{ano_nasc} java.lang.Date yyyy

Tabela 2

Sua tela terá uma aparência semelhante a mostrada a seguir:

Quando você adicionou os outros campos, lógicamente notou que eles ficaram desalinhados. Para alinhá-los e configurá-los ao mesmo tempo quanto ao seu tamanho e fonte, clique sobre o primeiro e com a tecla Shift pressionada, selecione os outros campos clicando sobre eles. Uma outra maneira é clicar e arrastar de fora dos campos para cima deles, onde uma área de seleção aparecerá.

Na barra de ferramentas você tem os alinhamentos, que no meu caso utilizei o Align bottom.

Integrator Technology and Design – www.integrator.com.br 17

Ilustração 25

Ilustração 26

Page 18: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Após alinhar, clique com o botão direito do mouse sobre um dos campos selecionados e selecione no menu de contexto o item Properties.

Altere na guia Font para Bold e escolha um tamanho se desejar.

Depois de acertado o tamanho, selecione o rótulo e o campo da primeira coluna, como mostra a Ilustração 29.

Na barra de ferramentas de alinhamentos, clique sobre o ícone Align left. Faça o mesmo com os outros itens.

Com a ferramenta Line tool iremos fazer apenas duas linhas separadoras para que fique fácil de identificar uma linha de dados da outra.

Na Ilustração 31 você verá como ficará suas linhas em relação ao seu relatório:

Integrator Technology and Design – www.integrator.com.br 18

Ilustração 27

Ilustração 28

Ilustração 29

Ilustração 30

Page 19: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Entre uma band e outra você pode configurar sua altura manualmente. Clique sobre a band detail e columFooter e arraste para cima tirando o espaço excedente.

Para finalizar o relatório simples, você irá adicionar os campos para o número de páginas. Insira um Textfield tool na band pageFooter. Comece digitando entre “aspas” como mostra na imagem Ilustração 33 a seguir:

Concatene o texto com o sinal de “+” e com o botão direito do mouse selecione Use texteditor. Na

Integrator Technology and Design – www.integrator.com.br 19

Ilustração 31

Ilustração 32

Veja que seu ponteiro do mouse muda para que você dimensione

Ilustração 33

Page 20: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

caixa de diálogo Expression editor selecione no item Variables a variável $V{PAGE_NUMBER}. Termine colocando outra concatenação e coloque a palavra “de”.

Insira mais Textfield tool e configure no campo Evaluation time, o nível Report, no que a variável será inicializada somente uma vez, no começo do relatório, e será executado o cálculo especificado até que o fim do relatório seja alcançado, ou seja, ele exibe a quantidade total de páginas.

Integrator Technology and Design – www.integrator.com.br 20

Ilustração 34

Ilustração 35

Page 21: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

As bands não utilizadas faça o mesmo que no início desse tutorial, coloque o valor zero. A aparência final será como mostra a imagem a seguir:

Exibindo o relatórioAgora que você projetou o layout do seu relatório, vá até o menu Criar(build) e clique em Executar relatório (usar conexão ativa).

Se o seu arquivo ainda não fora salvo, ele pedirá pra você salvar antes. Se tudo der certo, você verá uma janela como mostra a Ilustração 38 a seguir:

Se você selecionar RTF Preview e depois mandar compilar como fez anteriormente, você terá a abertura do programa préviamente configurado no início do tutorial e a sua abertura com o arquivo no formato RTF.

Integrator Technology and Design – www.integrator.com.br 21

Ilustração 37

Ilustração 36

Ilustração 39Ilustração 38

Page 22: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Integrator Technology and Design – www.integrator.com.br 22

Page 23: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Criando o código Java que abrirá o relatórioEssa etapa é muito importante, pois ela define o funcionamento correto do seu programa escrito em Java com relação a biblioteca JasperReports.

Se você estiver trabalhando com uma IDE como Eclipse, NetBeans ou JBuilder, você deve adicionar as bibliotecas necessárias para a conexão com o banco de dados e também a biblioteca do JasperReports.

Para a edição desse tutorial, eu estou usando a plataforma Eclipse. Mas o mesmo pode ser feitos com os outros editores.

Adicione ao seu projeto as seguintes bibliotecas:commons-beanutils-1.5.jar; commons-collections-2.1.jar; commons-digester-1.7.jar; commons-logging-1.0.2.jar; commons-logging-api-1.0.2.jar; itext-1.3.1.jar ; jasperreports-1.1.0.jar; mysql-connector-java-3.1.11-bin.jarUma observação importante a ser feita é que você deverá adicionar um diretório no seu projeto chamado de relatorios e colocar nele o arquivo compilado, com a extensão .jasper.

Após adicionar essas bibliotecas, digite o código a seguir para chamar o relatório criado:

package br.com.integrator.cap15;

import net.sf.jasperreports.view.JasperViewer;

import net.sf.jasperreports.engine.*;

import java.util.*;

import javax.swing.JPanel;

import java.awt.GraphicsConfiguration;

import java.awt.HeadlessException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import javax.swing.JFrame;

import javax.swing.JButton;

import javax.swing.JOptionPane;

import java.io.*;

public class MostraRelatorio extends JFrame {

private static final long serialVersionUID = 1L;

private JPanel jContentPane = null;

Integrator Technology and Design – www.integrator.com.br 23

Page 24: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

private JButton btAbreRel = null;

public MostraRelatorio( ) throws HeadlessException {

super( );

initialize( );

}

public MostraRelatorio(GraphicsConfiguration gc) {

super(gc);

initialize( );

}

public MostraRelatorio(String title) throws HeadlessException {

super(title);

initialize( );

}

public MostraRelatorio(String title, GraphicsConfiguration gc) {

super(title, gc);

initialize( );

}

private Connection getConnection( )

{

Connection con=null;

try{

String driver="org.gjt.mm.mysql.Driver";

String url= "jdbc:mysql://localhost/livraria";

String user="edson";

String password="123";

Class.forName(driver);

con = DriverManager.getConnection( url, user, password );

}

catch(ClassNotFoundException cnf){mostrarErro("Erro ao se conectar");}

catch(SQLException sqlex){mostrarErro("Erro ao se conectar");}

Integrator Technology and Design – www.integrator.com.br 24

Page 25: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

return con;

}

private void abreRelatorio( ) throws JRException, Exception

{

Connection con = getConnection( );

Map parameters = new HashMap( );

String path = "relatorios/relatorio.jasper";

File file = new File(path);

file = file.getAbsoluteFile( );

String repStr2 = file.getPath( );

try{

JasperFillManager.fillReportToFile( repStr2, parameters, con );

JasperPrint jasperPrint = JasperFillManager.fillReport(repStr2,parameters,con);

JasperViewer viewer = new JasperViewer(jasperPrint, false);

viewer.setVisible(true);

}

catch(JRException jex){

mostrarErro("JasperException: "+jex.getMessage( ));

}

catch(Exception ex){

mostrarErro(""+ex.getStackTrace( ));

}

}

private JButton getBtAbreRel( ) {

if (btAbreRel == null) {

btAbreRel = new Jbutton( );

btAbreRel.setBounds(new java.awt.Rectangle(78,58,123,40));

btAbreRel.setText("Abre Relatório");

btAbreRel.addActionListener(new java.awt.event.ActionListener( ) {

public void actionPerformed(java.awt.event.ActionEvent e){

try{

abreRelatorio( );

Integrator Technology and Design – www.integrator.com.br 25

Page 26: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

}

catch(JRException jre){

mostrarErro("JasperException: "+jre.getMessage( ));

}

catch(Exception ex){

mostrarErro(""+ex.getStackTrace( ));

}

}

});

}

return btAbreRel;

}

public static void main(String[] args) {

new MostraRelatorio( ).setVisible(true);

}

private void initialize() {

this.setSize(300, 200);

this.setContentPane(getJContentPane( ));

this.setTitle("Relatório de Autores");

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();

java.awt.Dimension frameSize = this.getSize( );

if (frameSize.height > screenSize.height) {

frameSize.height = screenSize.height;

}

if (frameSize.width > screenSize.width) {

frameSize.width = screenSize.width;

}

this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);

}

Integrator Technology and Design – www.integrator.com.br 26

Page 27: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

private JPanel getJContentPane( ) {

if (jContentPane == null) {

jContentPane = new Jpanel( );

jContentPane.setLayout(null);

jContentPane.add(getBtAbreRel( ), null);

}

return jContentPane;

}

private void mostrarErro(String msg) {

JOptionPane.showMessageDialog(

null,

msg,

"Erro encontrado",

JOptionPane.ERROR_MESSAGE);

}

}

MostraRelatorio.javaComo resultado você terá uma janela como a mostrada a seguir, que ao clicar no botão Abre Relatório, você terá o relatório desenvolvido anteriormente.

Integrator Technology and Design – www.integrator.com.br 27

Ilustração 40

Page 28: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Apêndice

Comandos MySQLO comando CREATEHá muitas maneiras diferentes de criar banco de dados no MySQL. Ao criar um banco de dados, você normalmente terá o layout inteiro pronto. Normalmente adicionaria as tabelas imediatamente depois de criar o banco de dado, mas, teremos uma etapa por vez.

A primeira etapa para criar um banco de dados no MySQL é inserir o comando CREATE DATABASE nome_banco_de_dados da SQL (Structured Query Language) no monitor MySQL, onde nome_banco_de_dados é o nome do banco de dados que você está criado.

No prompt de comando, no monitor do MySQL, insira o seguinte comando:

mysql> CREATE DATABASE livraria;

Note que não foi utilizado acentuação e em casos de palavras compostas não insira espaços, se for o caso insira sublinhado “ _ ” .

O comando USEDepois de confirmado a criação do banco de dados, você deverá utilizar o comando USE para utilizar o banco de dados livraria.

USE livraria;

Um ponto importante é que o MySQL não torna ativo o banco de dados que você criou, isso deve ser implícito.

O comando DROPO comando DROP é semelhante ao comando CREATE. Enquanto o último cria um banco de dados, o primeiro exclui. O comando DROP do SQL é imperdoável. Não há caixas de confirmação para ver se você tem certeza. Este comando exclui o banco de dados e tudo o que estiver nele.

É só ir até o prompt de comando e no monitor do MySQL e digitar:

Integrator Technology and Design – www.integrator.com.br 28

Page 29: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

mysql> DROP DATABASE livraria;

Isso excluirá o banco de dados veículos e tudo o que estiver nele.

Criando tabelasCriar tabela no MySQL é uma tarefa relativamente fácil. Para se criar uma tabela basta usar a seqüência:

shell>mysql –u root

Após estar no monitor do MySQL digite a seguinte seqüência:

mysql> CREATE DATABASE livraria;

mysql> USE livraria;

mysql> CREATE TABLE autores(

-> autor_id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,

-> nome VARCHAR(100),

-> ano_nasc YEAR);

mysql> CREATE TABLE editora(

-> editora_id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,

-> editora_nome VARCHAR(100)

-> );

mysql> create table publicacao(

-> isbn CHAR(13),

-> autor_id INT UNSIGNED,

-> editora_id INT UNSIGNED -> );

mysql> CREATE TABLE livros( -> isbn CHAR(13) NOT NULL PRIMARY KEY,

Integrator Technology and Design – www.integrator.com.br 29

Page 30: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

-> titulo VARCHAR(50), -> edicao_num TINYINT(2), -> ano_publicacao YEAR, -> descricao TEXT);

O comando SHOWAssim que criada sua primeira tabela. Para ver o resultado basta digitar a seqüência:

SHOW TABLES FROM livraria;

Para ver as colunas que existem na sua tabela digite:

SHOW COLUMNS FROM livros;

Ou DESCRIBE.

O comando DESCRIBESe preferir, o comando DESCRIBE faz a mesma coisa que SHOW, mostrando as colunas existentes em sua tabela.

DESCRIBE livros;

Ou simplesmente:

DESC livros;

Integrator Technology and Design – www.integrator.com.br 30

Page 31: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Sintaxe básica da SQLA primeira coisa que devemos fazer quando criamos um banco de dados e depois uma tabela e utilizá-la inserindo dados.

Comando INSERTO comando INSERT INTO adiciona dados em uma tabela.

A sua sintaxe é:

mysql> INSERT INTO livros VALUES ( -> '85-7585-120-5', ->'Core Java Fundamental', ->6, ->‘2004’, ->'Desenvolva Java com vários exemplos');

O nome da tabela em que você irá inserir deverá ser declarada logo no início INSIRA DENTRO nomedatabela (colunas) VALORES (‘valores inseridos dentro de cada coluna’);

É importante salientar que strings ficam entre aspas ou apóstrofos e valores numéricos (declarados como tipo de dados numéricos) não precisam de “aspas” ou ‘apóstrofos’.

Para inserir mais de um valor separe-os por vírgula:

mysql> INSERT INTO nomedatabela(colunas) VALUES (‘valores inseridos 1’), ->(‘valores inseridos 2’), ->(‘e assim por diante’);

Comando SELECTA instrução SELECT é provavelmente a mais utilizada de todas as instruções de SQL. A instrução SELECT somente retornará os dados que são armazenados no banco de dados dentro de uma tabela. O MySQL realiza essa instrução mais rápido que qualquer outro banco de dados do mercado.

A sintaxe é:

SELECT nomedacoluna FROM nomedatabela WHERE condições;

Integrator Technology and Design – www.integrator.com.br 31

Page 32: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

No caso do nosso banco de dados livraria:

mysql>SELECT * FROM livros; # o asterisco indica todas as colunas

Um outro caso, a cláusula WHERE

mysql>SELECT * FROM livros WHERE ISBN='85-7585-120-5';

Integrator Technology and Design – www.integrator.com.br 32

Page 33: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Nas Livrarias

Dominando o BORLAND JBUILDER X

Edson Gonçalves

ISBN 8573934360

288 páginas – 1.ª edição - 2005

Comprar agora

Um grande sucesso de vendas, com mais de 500 livros vendidos só no primeiro mês.

Este livro apresenta um amplo panorama no desenvolvimento de programas utilizando a linguagem Java no programa JBuilder X, passando do desenvolvimento de aplicativos básicos à elaboração de programas mais sofisticados com a utilização de bancos de dados.

O leitor aprenderá a utilizar componentes Java Swing dos mais diversos tipos, a desenvolver tanto layouts como eventos em seus aplicativos, e a utilizar o banco de dados MySQL e se desenvolver na linguagem SQL. Descobrirá ainda como os componentes do JBuilder, no desenvolvimento com bancos de dados ou arquivos de texto, podem facilitar o seu trabalho na criação de aplicativos.

Além disso o leitor que adquirir o livro poderá baixar capítulos extras encontrados no site, além de um vídeos exclusivo de criação de relatórios e desenvolvimento da distribuição do arquivo (tornando o programa um executável com configuração das bibliotecas, sem aquele famoso arquivo .bat).

Integrator Technology and Design – www.integrator.com.br 33

Page 34: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Dominando EclipseTudo o que o desenvolvedor Java Precisa para Criar Aplicativos

para Desktop

Edson Gonçalves

ISBN 8573934867 - Cód. Barra 9788573934861

334 páginas – 1.ª edição – 2006

Compre agora

Um estouro de vendas, 300 livros vendidos só na primeira semana!

Um livro com uma abordagem exclusiva sobre a Plataforma Java Eclipse, que mostra como desenvolver aplicativos desde o início até utilizar o plug-in Visual Editor. Esse livro aborda o Java Swing e o SWT da IBM, uma linguagem que está dando o que falar pelas comunidades Java com relação a sua velocidade de carregamento.

Você também aprenderá a criar aplicativos distribuíveis, a fazer uma agenda completa em Swing e também em SWT, utilizando JDBC 2 e banco de dados MySQL.

Conhecerá sua poderosa ferramenta de depuração e por fim criará relatórios usando um componente chamado JasperAssistant.

O livro virá com CD contendo todos os fontes do livro, mais os programas utilizados no livro e exclusívos vídeos com demonstrações dos principais capítulos do livro e mais um extra ensinando como criar um arquivo .JAR executável com todas as bibliotecas do JasperReports para que você possa instalar em qualquer máquina com a Máquina Virtual Java instalada.

Integrator Technology and Design – www.integrator.com.br 34

Page 35: Criando Relatórios

Além da IDE - Criando Relatórios em Java para Desktop

Integrator Technology and Design – www.integrator.com.br 35

Agenda em Swing Agenda em SWT

Edição dos dados encontrados no banco

Construção de um relatório no JasperAssistant