Galera fui reprovado no tcc, e me deram 1 semana para implementar o relatorio para uma nova banca.
é o sequinte conseguir fazer chamar de dentro do netbeans mais nao sei como chama-lo da aplicacao, segue ai o codigo para vcs verem
tenho a classe de conexao
package relatorio.materiaPrima;
/**
*
* @author Fred
*/
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/tcc";
String login = "root";
String senha = "vertrigo";
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;
}
}
Tenho a classe de repositorio
package relatorio.materiaPrima;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import javax.faces.bean.ManagedBean;
import javax.swing.JOptionPane;
import modelo.Usuario;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
@ManagedBean (name="RelatorioABean")
public class repositorioMateriaPrima {
public repositorioMateriaPrima() {
}
// public void inserir(Usuario user) throws ExcRepositorio {
// Integer id = user.getIdUsuario();
// String nome = user.getNome();
// String SQL = "insert into Usuario (nome) values " + "("+ nome +")";
// 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 = "materiaPrima.jasper";
rel = JasperFillManager.fillReport(arquivoJasper, map, con);
} catch (JRException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
return rel;
}
}
Tenho uma outra classe
package relatorio.materiaPrima;
/**
*
* @author Fred
*/
public class ExcRepositorio extends Exception {
public ExcRepositorio(String mensagem) {
super(mensagem);
}
}
E agora tenho a classe com o metado main para chamar o relatorio
package relatorio.materiaPrima;
/**
*
* @author Fred
*/
import javax.faces.bean.ManagedBean;
import javax.swing.JOptionPane;
import modelo.Usuario;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
public class materiaPrima {
public static void main(String[] args) throws JRException {
repositorioMateriaPrima rep = new repositorioMateriaPrima();
JasperPrint relat; //Insere mais um produto e exibe o relatório
// String desc = JOptionPane.showInputDialog("Nome do Cliente: ");
Usuario user = new Usuario();
try {
// rep.inserir(user);
relat = rep.gerar();
JasperViewer.viewReport(relat, false);
} catch (ExcRepositorio e) {
JOptionPane.showMessageDialog(null, "Erro: " + e.getMessage());
}
}
}
Se eu executar a classe ele abre o relatorio mais se nao consigo por isso dentro de um command buton por exemplo…
Alguem pode me ajudar?
Eu dependo disso pra passar no tcc.
Obrigado