Olá pessoal,
Este tópico vem com finalidade informar, passo a passo, como criar um relatório com o IREPORT e executá-lo através de uma aplicação em JAVA. Para melhor entendimento, não trabalharemos com o projeto em uma estrutura de camadas, todos os arquivos ficarão na pasta raiz do projeto.
/* MySQL Backup Source Host: localhost Source Server Version: 5.0.18-nt Source Database: meuprojeto Date: 2006/11/29 21:27:23 */ SET FOREIGN_KEY_CHECKS=0; use meuprojeto; #---------------------------- # Table structure for tb_produtos #---------------------------- CREATE TABLE `tb_produtos` ( `cod` int(11) NOT NULL auto_increment, `descricao` varchar(50) character set latin1 collate latin1_general_ci default NULL, `preco` double default NULL, PRIMARY KEY (`cod`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; #---------------------------- # Records for table tb_produtos #---------------------------- insert into tb_produtos values (1, 'camisa', '20'), (2, 'calça', '30'), (3, 'perfume', '70'), (4, 'cinto', '20'), (5, 'sapato', '100'), (6, 'cueca', '10'), (7, 'teste', '10'); |








| A função de cada um | |
| ExcRepositorio.java | Esta classe verifica erros quando do acesso à base de dados, analizando abertuta/fechamento |
| gConexao.java | Responsável pela conexao com a base de dados |
| principal.java | Aplicação principal onde será inserido um registro e apresentado o relatório |
| produto.java | classe utilizada para inserir produtos na base de dados |
| repositorioProduto.java | Responsável pela inserção do produto e tambem pela geração do relatório. |
| Salvar como: ExcRepositorio.java |
|---|
public class ExcRepositorio extends Exception {
public ExcRepositorio(String mensagem) {
super(mensagem);
}
}
|
| Salvar como: gConexao.java |
|---|
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class gConexao {
private static Connection con;
public static Connection getConexao() throws ExcRepositorio {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/meuprojeto";
String login = "root";
String senha = "";
try {
Class.forName(driver);
con = DriverManager.getConnection(url, login, senha);
} catch (ClassNotFoundException e) {
throw new ExcRepositorio("Driver não encontrado: " + e.getMessage());
} catch (SQLException e) {
throw new ExcRepositorio("Erro abrindo conexão: " + e.getMessage());
}
return con;
}
}
|
| Salvar como: principal.java |
|---|
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
public class principal {
public static void main(String[] args) throws JRException {
repositorioProduto rep = new repositorioProduto();
JasperPrint relat;
//Insere mais um produto e exibe o relatorio
String desc = JOptionPane.showInputDialog("Descrição do produto: ");
double valor = Double.parseDouble(JOptionPane.showInputDialog("Valor: "));
produto prod = new produto(desc,valor);
try {
rep.inserir(prod);
relat = rep.gerar();
JasperViewer.viewReport(relat, false);
} catch (ExcRepositorio e) {
JOptionPane.showMessageDialog(null, "Erro: " + e.getMessage());
}
}
}
|
| Salvar como: produto.java |
|---|
public class produto {
private int cod;
private String descricao;
private double preco;
public produto(String desc, double preco){
this.setDescricao(desc);
this.setPreco(preco);
}
public int getcod() {return cod;}
public String getDescricao() {return descricao;}
public double getPreco() {return preco;}
public void setcod(int cod) {
this.cod = cod;
}
public void setDescricao(String desc){
this.descricao = desc;
}
public void setPreco(double pc){
this.preco = pc;
}
}
|
| Salvar como: repositorioProduto.java |
|---|
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
public class repositorioProduto{
public repositorioProduto() {}
public void inserir(produto prod) throws ExcRepositorio{
String desc = prod.getDescricao();
double preco = prod.getPreco();
String SQL = "insert into tb_Produtos (descricao, preco) values " +
"('" + desc + "', " + preco + ")";
Connection conn = null;
Statement stat = null;
try {
conn = gConexao.getConexao();
stat = conn.createStatement();
stat.executeUpdate(SQL);
} catch (SQLException e) {
throw new ExcRepositorio("Erro na conexão ao inserir: " + e.getMessage());
} finally {
if (stat != null) {
try {
stat.close();
} catch (SQLException e) {
throw new ExcRepositorio("Erro ao fechar conexão: " + e.getMessage());
}
}
}
}
public JasperPrint gerar() throws ExcRepositorio{
JasperPrint rel = null;
try {
Connection con = gConexao.getConexao();
HashMap map = new HashMap();
String arquivoJasper = "relatorio.jasper";
rel = JasperFillManager.fillReport(arquivoJasper, map, con);
} catch (JRException e) {
JOptionPane.showMessageDialog(null,e.getMessage());
}
return rel;
}
}
|