criando relatórios

Upload: eddfox1

Post on 10-Jul-2015

648 views

Category:

Documents


0 download

TRANSCRIPT

Alm da IDE - Criando Relatrios em Java para Desktop

SumrioIntroduo.............................................................................................................................................2 O JasperReports....................................................................................................................................2 Mas o que um Relatrio?................................................................................................................... 3 O iReport.............................................................................................................................................. 6 Baixando e Instalando o iReport.......................................................................................................... 6 Configurando o iReport........................................................................................................................ 7 Conectando ao banco de dados.............................................................................................................9 Desenvolvendo seu primeiro relatrio................................................................................................11 Exibindo o relatrio............................................................................................................................ 21 Criando o cdigo Java que abrir o relatrio......................................................................................23 Apndice.............................................................................................................................................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 bsica da SQL........................................................................................................................31 Comando INSERT..............................................................................................................................31 Comando SELECT............................................................................................................................. 31 Um outro caso, a clusula WHERE................................................................................................... 32 Nas Livrarias...................................................................................................................................... 33 Em breve em uma livraria perto de voc............................................................................................33

Integrator Technology and Design www.integrator.com.br

1

Alm da IDE - Criando Relatrios em Java para Desktop

IntroduoSejam bem vindos caros leitores. Esse tutorial uma pequena apresentao do e-book completo que voc poder baixar gratutamente 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 relatrio bsico com JasperReports e iReport. Muitas das dvidas existentes na construo de um aplicativo, seja qual for a linguagem, a criao de relatrios. At bem pouco tempo existiam somente bons programas pagos de criao de relatrios. Em sua maioria, o desenvolvimento de relatrios era voltado para a plataforma Windows, isso porque esses construtores de relatrios somente desenvolviam para linguagens e programas especficos da plataforma. O Java tem pouco tempo de vida, principalmente do ponto de vista do desenvolvedor, e como sua caracterstica 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 alegaes mais comuns, as pessoas que no querem desenvolver Java para desktop dizem que a criao de relatrios e muito complexa. Neste tutorial voc conhecer o JasperReports que constri o relatrio e o iReport, desenvolvido como IDE independente de construo de relatrios em JasperReports. Tambm aprender em como fazer uma aplicao distribuda para desktop que chame seu relatrio sem dar os problemas comuns existentes.

O JasperReportsJasperReports um poderoso framework de cdigo fonte aberto famoso por gerar de relatrios multiplataforma. Escrito na linguagem Java, essa biblioteca apresenta grande habilidade na organizao e apresentao de contedo, permitindo a gerao dinmica de relatrios em diversos formatos, como PDF, HTML, XLS, CSV e XML, podendo ainda ser utilizada em qualquer aplicao Java, incluindo aplicaes desktop, Web e distribudas. sem sombra de dvidas, a ferramenta de gerao de relatrios mais usada no pas, quando se trata da linguagem Java. O que torna o JasperReports poderoso est em sua forma de desenvolvimento do relatrio, escrito totalmente em XML, isso o torna simples de ser compreendido e de fcil manuteno. No design do relatrio, voc tem desde dos campos a serem preenchidos e com seus respectivos tipos como tambm at mesmo a linguagem SQL imbutida, todos definidos em um arquivo XML atravs de tags que obedecem a uma estrutura e restries declaradas em um arquivo DTD (jasperreports.dtd). Usando XML, o desenvolvedor pode definir textos estticos, imagens, linhas, formas geomtricas, como retngulos e elipses, e suas localizaes dentro do relatrio. Quando pronto, esse arquivo XML precisa ser compilado, no qual gerado um arquivo com a extenso .jasper, contendo a verso compilada do cdigo XML.

Integrator Technology and Design www.integrator.com.br

2

Alm da IDE - Criando Relatrios em Java para Desktop A compilao do arquivo XML representando o design feito pelo mtodo compileReport encontrado na classe net.sf.jasperreports.engine.JasperCompileManager. Nesta compilao, o design do relatrio carregado em um objeto do projeto do relatrio e ento colocado em srie e armazenado no disco( net.sf.jasperreports.engine.JasperReport). Este objeto colocado em srie usado ento quando a aplicao quer preencher o projeto especificado do relatrio com os dados. A compilao de um projeto do relatrio implica na compilao de todas as expresses de Java definidas nas linhas de XML que representam todas o projeto do relatrio. Vrias verificaes so feitas em tempo de compilao para checar a consistncia do desenho do relatrio. Como resultado voc tem um relatrio gerado que pode ser usado para mostrar resultados vindos de diferentes bancos de dados e que pode ser exportado para vrios formatos, o que o torna at mesmo independente do prprio JasperReports estar o no instalado na mquina do usurio final. Esse resultado s possvel graas a classe net.sf.jasperreports.engine.JasperPrint.

Mas o que um Relatrio?Um relatrio uma maneira agradvel de apresentar os dados vindos de alguma base de informao com sua aparncia formatada . Os relatrios so feitos na forma de voc perguntar a uma base de dados e obter os resultados em um formato agradvel. Os dados na base de dados podem ser indicados apenas como est, isto , nas centenas das pginas. Entretanto, na maioria das vezes, relatrios so usados para agrupar as informaes vindas de um grupo de dados, relacionados entre si em diversas tabelas. Como resultado voc tem apenas os campos determinados na construo do seu relatrio e exposto como tal de forma agradvel, ou seja, formatada. Vindo em um formato padronizado para impresso, como um texto feito em um editor de textos, voc s precisa imprimlos ou export-los para um outro formato de maior uso.

Integrator Technology and Design www.integrator.com.br

3

Alm da IDE - Criando Relatrios em Java para Desktop

Ilustrao 1

Um relatrio composto por vrias sees. Sees so partes de um relatrio que contm informaes especficas, necessrias para uma boa apresentao. Essas sees podem conter imagens, textos, retngulos e etc. Na terminologia do JasperReports, sees so chamadas de Bands. Em um documento, existem sees com propsitos especficos, onde cada um exerce um papel na gerao do relatrio. A seguir voc tem uma lista com as principais sees existentes para a gerao de relatrios:

Sees Title A seo de ttulo. Esta seo s aparece uma vez no comeo do relatrio. Ex.: Relatrio de Clientes Page Header A seo de cabealho da pgina. Esta seo se aparece no comeo de cada pgina. Neste local voc pode ter data e hora e/ou nome ou informaes da empresa. Column Header A seo coluna do cabealho. Esta seo s aparece no comeo de cada coluna. Se o relatrio tem uma s coluna definida, ento so ignoradas as sees cabealhos e rodaps de coluna. Como exemplo voc pode listar nomes escolhidos de campos especficos como: Nome do Cliente, Telefone, Data do Cadastro. Integrator Technology and Design www.integrator.com.br 4

Alm da IDE - Criando Relatrios em Java para Desktop Detail A seo de detalhes. Esta seo se repete enquanto houver linhas para serem colocadas no seu relatrio de acordo com o que exite na sua base de dados. Column Footer A seo coluna do rodap. Esta seo aparece abaixo de cada coluna. Vale o mesmo comentrio da seo Column Header. Page Footer A seo de rodap da pgina. Esta seo se aparece no final de cada pgina. Esta parte pode conter informaes como o nmero da pgina ou o total de pginas encontradas: 1/7. Last Page Footer A ltima seo do rodap da pgina. Esta seo substitui o rodap da pgina regular na ltima pgina do relatrio. Summary A seo de sumrio. Esta seo s aparece uma vez ao trmino do relatrio. Para o exemplo, aps ter alistado todos os cadastros de clientes nos detalhes (detail), voc pode querer expor algum detalhe em um grfico para melhorar a comparao visual.

Ilustrao 2

Integrator Technology and Design www.integrator.com.br

5

Alm da IDE - Criando Relatrios em Java para Desktop

O iReportO iReport uma ferramenta visual que desenha arquivos XML para o JasperReports. uma IDE de relatrios WYSIWYG. Com iReport voc pode definir o design do relatrio dentro de um ambiente grfico, contento os recursos necessrios para que voc desenvolva um relatrio com o formato que a biblioteca JasperReports oferece. Graas ao iReport voc pode criar relatrios com designs modernos e complexos sem se quer escrever uma linha ou at mesmo conhecer o cdigo XML, pois ele todo gerado automaticamente. Esse ambiente oferece muitas ferramentas que aceleram o desenvolvimento do seu relatrio, desde a conexo com a base de dados at a atalhos para tarefas de compilao e visualizao do relatrio, dando a voc a possibilidade de realizar testes antes de ter o resultado final do seu relatrio.

Baixando e Instalando o iReportPara baixar o iReport, v at o site http://ireport.sourceforge.net e baixe a verso mais atual do seu iReport. A verso utilizada nesse tutorial a verso 0.5.2, no qual a mais atual no momento em que escrevo. Aps baixar o arquivo, descompacte-o no diretrio de sua preferncia. No preciso dizer que necessrio ter o JDK instalado e devidamente configurado na sua mquina. No necessrio ter o Apache Ant instalado na sua mquina. Copie o arquivo tools.jar, localizado na pasta lib de seu JDK instalado, para os diretrio lib do seu iReport. Caso voc esteja trabalhando com um banco de dados especfico, verifique se este tem um driver JDBC tambm no diretrio lib do iReport. Para iniciar o iReport, v ao diretrio do iReport e execute o arquivo iReport.bat (para Windows) ou iReport.sh (para Linux).

Ilustrao 3

Nota: Caso o seu iReport no inicialize, voc deve verificar a sua configurao do JDK, no necessitando de alterar o cdigo descrito no arquivo .bat.

Integrator Technology and Design www.integrator.com.br

6

Alm da IDE - Criando Relatrios em Java para Desktop

Ilustrao 4

Configurando o iReportV at o menu Tools e clique em Options. Na guia General altere o item Language para portugus (Brasil). Clique no boto Apply. Note que seu iReport ficou em Portugus. Isso bom, pois assim voc se familiarizar mais rpidamente. Nesta mesma guia voc tambm pode definir outras opes como unidade padro (Default unit), visualizar rguas e grids (View rules e View grids) e etc.

Integrator Technology and Design www.integrator.com.br

7

Alm da IDE - Criando Relatrios em Java para Desktop

Ilustrao 5

Na guia External programs voc pode configurar os programas externos que abriro o arquivo em caso de uma exportao para o formato especfico.

Ilustrao 6

Clique em Save para salvar e sair da caixa de dilogo Options.

Integrator Technology and Design www.integrator.com.br

8

Alm da IDE - Criando Relatrios em Java para Desktop

Conectando ao banco de dadosO banco de dados escolhido aqui o MySQL, no s por ser atualmente o mais popular mas tambm por ser portvel a vrios sistemas operacionais. O banco de dados utilizado nesse tutorial bem seus dados se encontram no Apndice. Para criar uma conexo com o banco de dados, v at o menu Fonte de Dados e clique em Conexes / Fonte de dados (lembre-se, voc colocou seu iReport em Portugus).

Ilustrao 7

Na caixa de dilogo Connections / Datasources voc define a conexo com o seu banco de dados. Na Ilustrao 7 voc tem um exemplo com mais de uma conexo. importante salientar que voc pode ter vrios bancos de dados e configurar vrias conexes nesse local. Ao clicar no boto New voc tem uma nova caixa de dilogo chamada de Connections properties. A seguir voc tem uma imagem da configurao usada no meu caso:

Integrator Technology and Design www.integrator.com.br

9

Alm da IDE - Criando Relatrios em Java para Desktop

Aqui voc define o nome da sua conexo Aqui voc seleciona o Driver e a configurao para a conexo. Aqui voc pode digitar o nome do banco de dados por exemplo e clicar no boto Wizard. Ele preencher a opo acima. Aqui voc define o login e a senha para se conectar com o banco de dados.

Ilustrao 8

Para verificar se a conexo foi configurada corretamente, clique no boto Test. Aparecer uma mensagem indicando se est ou no configurado certo.

Ilustrao 9

Nota: Veja tambm a nota de Ateno dada a respeito de salvar a senha para se conectar com o banco de dados. Como ele mesmo diz, as senhas so armazenadas em um arquivo de texto no criptografado. Se voc no especificar uma senha, o iReport pedir somente quando necessrio e no a guardar. Aps clicar no boto Save voc est pronto para trabalhar com essa conexo e desenvolver seu primeiro relatrio.

Integrator Technology and Design www.integrator.com.br

10

Alm da IDE - Criando Relatrios em Java para Desktop

Desenvolvendo seu primeiro relatrioNesta etapa voc aprender como criar relatrios simples com o iReport. importante dizer que necessrio o conhecimento de SQL e de um banco de dados. V ao menu Arquivo e clique em Novo Documento. Na caixa de dilogo Report properties voc define o nome do seu relatrio bem como o tamanho da pgina e a orientao, se retrato ou paisagem. Confirme no boto OK.

Ilustrao 10

V ao menu Criar(build) e clique na opo Definir a conexo ativa. Selecione a conexo Dados caso voc tenha outra configurada. Confirme no boto OK.

Ilustrao 11

Voc tambm pode selecionar a conexo ativa usando a barra de ferramentas do iReport.

Ilustrao 12

Integrator Technology and Design www.integrator.com.br

11

Alm da IDE - Criando Relatrios em Java para Desktop Nota: A configurao de uma conexo dentro do iReport no obrigatria, pois voc pode apenas criar o design do relatrio e compil-lo. Mas importante poder visualizar seus dados antes mesmo de colocar em um aplicativo, testando a configurao feita. Agora voc est pronto para comear o seu primeiro relatrio. Utilizando a barra de ferramentas a seguir, selecione o boto pressionado, visto na Ilustrao 13.

Ilustrao 13

Clique e arraste para abrir uma caixa de texto esttico no local indicado na Ilustrao 14 a seguir, na band title:

Ilustrao 14

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.

Ilustrao 15

Na guia Static Text, digite o texto: Relatrio de Autores Cadastrados. Quando terminar basta fechar a caixa de dilogo. Seu relatrio ter uma aparncia como a mostrada na imagem a seguir (Ilustrao 16):

Integrator Technology and Design www.integrator.com.br

12

Alm da IDE - Criando Relatrios em Java para Desktop

Ilustrao 16

Na band columnHeader adicione mais trs textos estticos e os configure como mostra a tabela a seguir: Static Text Cad. N. Nome Ano Nascimento Font Size: 12 - Bold Size: 12 - Bold Size: 12 - BoldTabela 1

A seguir voc tem a aparncia da configurao aplicada:

Ilustrao 17

Com o boto direito do mouse sobre o relatrio, voc ter um menu de contexto. Selecione a opo Band properties.

Ilustrao 18

Integrator Technology and Design www.integrator.com.br

13

Alm da IDE - Criando Relatrios em Java para Desktop Na caixa de dilogo bands selecione a opo pageHeader e em Band height digite o valor 0.

Aqui voc seleciona a band que deseja configurar

Ilustrao 19

Feche a caixa de dilogo. Seu relatrio ter agora a aparncia como a demonstrada a seguir:

Ilustrao 20

Integrator Technology and Design www.integrator.com.br

14

Alm da IDE - Criando Relatrios em Java para Desktop Para definir os campos que recebero os dados do seu banco de dados, v at o menu Fonte de Dados e clique em Consultas do Relatrio. Na guia Report SQL query voc digita a query que realizar a consulta na tabela que voc deseja visualizar. Faa a query como mostra a Ilustrao 21. Confirme logo aps com o boto OK.

Ilustrao 21

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

Ilustrao 22

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 contedo e com o boto direito do mouse, no menu de contexto, selecione o item Use texteditor (Ilustrao 23).

Integrator Technology and Design www.integrator.com.br

15

Alm da IDE - Criando Relatrios em Java para Desktop

Ilustrao 23

Na caixa de dilogo Expression editor selecione o campo desejado, no caso o autor_id dando um duplo clique (Ilustrao 24) e logo aps clique no boto Apply.

Ilustrao 24

Aps configurado, voc ter na tela uma imagem semelhante a seguir: Integrator Technology and Design www.integrator.com.br 16

Alm da IDE - Criando Relatrios em Java para Desktop

Ilustrao 25

Adicione mais dois campos. Um ser o campo nome e o outro o campo ano_nasc. Veja na tabela a seguir as alteraes que devero serem feitas em seus respectivos campos: Coluna $F{nome} Textfield Expresssion Class Pattern java.lang.String yyyyTabela 2

$F{ano_nasc} java.lang.Date

Sua tela ter uma aparncia semelhante a mostrada a seguir:

Ilustrao 26

Quando voc adicionou os outros campos, lgicamente 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 seleo 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

Alm da IDE - Criando Relatrios em Java para Desktop

Ilustrao 27

Aps alinhar, clique com o boto direito do mouse sobre um dos campos selecionados e selecione no menu de contexto o item Properties.

Ilustrao 28

Altere na guia Font para Bold e escolha um tamanho se desejar. Depois de acertado o tamanho, selecione o rtulo e o campo da primeira coluna, como mostra a Ilustrao 29.

Ilustrao 29

Na barra de ferramentas de alinhamentos, clique sobre o cone Align left. Faa o mesmo com os outros itens. Com a ferramenta Line tool iremos fazer apenas duas linhas separadoras para que fique fcil de identificar uma linha de dados da outra.

Ilustrao 30

Na Ilustrao 31 voc ver como ficar suas linhas em relao ao seu relatrio:

Integrator Technology and Design www.integrator.com.br

18

Alm da IDE - Criando Relatrios em Java para Desktop

Ilustrao 31

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

Veja que seu ponteiro do mouse muda para que voc dimensioneIlustrao 32

Para finalizar o relatrio simples, voc ir adicionar os campos para o nmero de pginas. Insira um Textfield tool na band pageFooter. Comece digitando entre aspas como mostra na imagem Ilustrao 33 a seguir:

Ilustrao 33

Concatene o texto com o sinal de + e com o boto direito do mouse selecione Use texteditor. Na Integrator Technology and Design www.integrator.com.br 19

Alm da IDE - Criando Relatrios em Java para Desktop caixa de dilogo Expression editor selecione no item Variables a varivel $V{PAGE_NUMBER}. Termine colocando outra concatenao e coloque a palavra de.

Ilustrao 34

Insira mais Textfield tool e configure no campo Evaluation time, o nvel Report, no que a varivel ser inicializada somente uma vez, no comeo do relatrio, e ser executado o clculo especificado at que o fim do relatrio seja alcanado, ou seja, ele exibe a quantidade total de pginas.

Integrator Technology and Design www.integrator.com.br

Ilustrao 35

20

Alm da IDE - Criando Relatrios em Java para Desktop As bands no utilizadas faa o mesmo que no incio desse tutorial, coloque o valor zero. A aparncia final ser como mostra a imagem a seguir:

Ilustrao 36

Exibindo o relatrioAgora que voc projetou o layout do seu relatrio, v at o menu Criar(build) e clique em Executar relatrio (usar conexo ativa).

Ilustrao 37

Se o seu arquivo ainda no fora salvo, ele pedir pra voc salvar antes. Se tudo der certo, voc ver uma janela como mostra a Ilustrao 38 a seguir: Se voc selecionar RTF Preview e depois mandar compilar como fez anteriormente, voc ter a abertura do programa prviamente configurado no incio do tutorial e a sua abertura com o arquivo no formato RTF.

Integrator Technology and Design www.integrator.com.br

21

Ilustrao 38 Ilustrao 39

Alm da IDE - Criando Relatrios em Java para Desktop

Integrator Technology and Design www.integrator.com.br

22

Alm da IDE - Criando Relatrios em Java para Desktop

Criando o cdigo Java que abrir o relatrioEssa etapa muito importante, pois ela define o funcionamento correto do seu programa escrito em Java com relao a biblioteca JasperReports. Se voc estiver trabalhando com uma IDE como Eclipse, NetBeans ou JBuilder, voc deve adicionar as bibliotecas necessrias para a conexo com o banco de dados e tambm a biblioteca do JasperReports. Para a edio 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-digester1.7.jar; commons-logging-1.0.2.jar; commons-logging-api-1.0.2.jar; itext1.3.1.jar ; jasperreports-1.1.0.jar; mysql-connector-java-3.1.11-bin.jar

Uma observao importante a ser feita que voc dever adicionar um diretrio no seu projeto chamado de relatorios e colocar nele o arquivo compilado, com a extenso .jasper. Aps adicionar essas bibliotecas, digite o cdigo a seguir para chamar o relatrio 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

Alm da IDE - Criando Relatrios 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

Alm da IDE - Criando Relatrios 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 Relatrio"); 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

Alm da IDE - Criando Relatrios 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("Relatrio 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

Alm da IDE - Criando Relatrios 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.java Como resultado voc ter uma janela como a mostrada a seguir, que ao clicar no boto Abre Relatrio, voc ter o relatrio desenvolvido anteriormente.

Ilustrao 40

Integrator Technology and Design www.integrator.com.br

27

Alm da IDE - Criando Relatrios em Java para Desktop

Apndice Comandos MySQL O 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 no foi utilizado acentuao e em casos de palavras compostas no insira espaos, se for o caso insira sublinhado _ .

O comando USEDepois de confirmado a criao 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 no torna ativo o banco de dados que voc criou, isso deve ser implcito.

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 imperdovel. No h caixas de confirmao 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

Alm da IDE - Criando Relatrios em Java para Desktop

mysql> DROP DATABASE livraria; Isso excluir o banco de dados veculos e tudo o que estiver nele.

Criando tabelasCriar tabela no MySQL uma tarefa relativamente fcil. Para se criar uma tabela basta usar a seqncia: shell>mysql u root Aps estar no monitor do MySQL digite a seguinte seqncia: 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

Alm da IDE - Criando Relatrios 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 seqncia:

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

Alm da IDE - Criando Relatrios em Java para Desktop

Sintaxe bsica 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 vrios exemplos');

O nome da tabela em que voc ir inserir dever ser declarada logo no incio INSIRA DENTRO nomedatabela (colunas) VALORES (valores inseridos dentro de cada coluna); importante salientar que strings ficam entre aspas ou apstrofos e valores numricos (declarados como tipo de dados numricos) no precisam de aspas ou apstrofos. Para inserir mais de um valor separe-os por vrgula:

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

Comando SELECTA instruo SELECT provavelmente a mais utilizada de todas as instrues de SQL. A instruo SELECT somente retornar os dados que so armazenados no banco de dados dentro de uma tabela. O MySQL realiza essa instruo mais rpido que qualquer outro banco de dados do mercado. A sintaxe : SELECT nomedacoluna FROM nomedatabela WHERE condies;

Integrator Technology and Design www.integrator.com.br

31

Alm da IDE - Criando Relatrios 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 clusula WHEREmysql>SELECT * FROM livros WHERE ISBN='85-7585-120-5';

Integrator Technology and Design www.integrator.com.br

32

Alm da IDE - Criando Relatrios em Java para Desktop

Nas LivrariasDominando o BORLAND JBUILDER X Edson Gonalves ISBN 8573934360 288 pginas 1. edio - 2005 Comprar agora Um grande sucesso de vendas, com mais de 500 livros vendidos s no primeiro ms. Este livro apresenta um amplo panorama no desenvolvimento de programas utilizando a linguagem Java no programa JBuilder X, passando do desenvolvimento de aplicativos bsicos elaborao de programas mais sofisticados com a utilizao 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 criao de aplicativos. Alm disso o leitor que adquirir o livro poder baixar captulos extras encontrados no site, alm de um vdeos exclusivo de criao de relatrios e desenvolvimento da distribuio do arquivo (tornando o programa um executvel com configurao das bibliotecas, sem aquele famoso arquivo .bat).

Integrator Technology and Design www.integrator.com.br

33

Alm da IDE - Criando Relatrios em Java para Desktop

Dominando EclipseTudo o que o desenvolvedor Java Precisa para Criar Aplicativos para DesktopEdson Gonalves ISBN 8573934867 - Cd. Barra 9788573934861 334 pginas 1. edio 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 incio 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 relao a sua velocidade de carregamento. Voc tambm aprender a criar aplicativos distribuveis, a fazer uma agenda completa em Swing e tambm em SWT, utilizando JDBC 2 e banco de dados MySQL. Conhecer sua poderosa ferramenta de depurao e por fim criar relatrios usando um componente chamado JasperAssistant. O livro vir com CD contendo todos os fontes do livro, mais os programas utilizados no livro e exclusvos vdeos com demonstraes dos principais captulos do livro e mais um extra ensinando como criar um arquivo .JAR executvel com todas as bibliotecas do JasperReports para que voc possa instalar em qualquer mquina com a Mquina Virtual Java instalada.

Integrator Technology and Design www.integrator.com.br

34

Alm da IDE - Criando Relatrios em Java para Desktop

Agenda em Swing

Agenda em SWT

Edio dos dados encontrados no banco

Construo de um relatrio no JasperAssistant

Integrator Technology and Design www.integrator.com.br

35