JA FIZ UM RELATORIO NO IREPORT CONECTADO HA UMA BASE DE DADOS.
COMO FAÇO PARA CHAMAR ESTE RELATÓRIO EM MINHA CLASSE NO JAVA???
JA TESTEI MINHA APLICAÇÃO A CONEXÃO ESTA FUNCIONANDO TUDO OK, OS DADOS ESTÃO EXIBINDO JTEXTFIELD.
Onde:
endereco_relatorio é uma String com o endereço do relatório (o arquivo compilado, .jasper);
params é um mapa contendo os parâmetros que vão ser usados no relatório (nome -> valor). Se você não for usar nenhum parâmetro, pode passar null;
conexao é um objeto java.sql.Connection que deve conter uma conexão válida com um banco de dados;
E o segundo atributo do método viewReport é indicando se o programa inteiro deve ser finalizado quando a pessoa fechar o seu relatório. É meio estranho mesmo… nunca precisei disso :razz: Por isso eu coloquei false.
Ah, e evite escrever em fóruns com tudo em maiúsculo, porque parece que você tá gritando com a gente, ok?
/* Primeira parte */
public class RelatorioLaboratorio {
private Connection con = null;
private String driver = “oracle.jdbc.driver.OracleDriver”;
private String endereco = “enderecoBanco”;
private String user = “usuarioBanco”;
private String pass = “senhaBanco”;
private ResultSet rs = null;
private String valores[] = new String[10];
private int chamada = 1;
private String dir = “local onde está o arquivo do relatorio”;
private StringReader stream;
/*Segunda parte */
public RelatorioLaboratorio() {
/* Efetua a conexao a base de dados e coleta os valores da base de dados armazenando-os
em um array para ser futuramente utilizado /
try {
if (con == null) {
Class.forName(driver);
con = DriverManager.getConnection(endereco, user, pass);
Statement statement = con.createStatement();
rs = statement.executeQuery(“select a ser executado”);
HashMap teste = new HashMap();
while(rs.next()) {
//for até o numero de campos da tabela
for (int i = 1; i < 10; i++) {
valores[i] = rs.getString(i);
}
}
}
}
catch (Exception e) {
System.err.println(“Problemas apresentados na operacao de conexao”);
e.printStackTrace();
}
/ Inicio do bloco que ira gerar nossos relatorios e 3ª parte /
try {
String array[] = valores;
JasperDesign design = JasperManager.loadXmlDesign(dir + “NomeDoRelatorio.jrxml”);
JasperReport jr = JasperManager.compileReport(design);
HashMap parameters = new HashMap();
parameters.put(“PARAMETRO_1”,array[1]);
parameters.put(“PARAMETRO_2”, array[2]);
parameters.put(“PARAMETRO_3”, array[5]);
parameters.put(“PARAMETRO_4”, array[4]);
parameters.put(“PARAMETRO_5”,array[9]);
JasperPrint impressao = JasperManager.fillReport(jr,parameters,con);
JasperViewer jrviewer = new JasperViewer(impressao,false);
jrviewer.show();
}
catch (Exception e) {
e.printStackTrace();
}
}
/ Aqui chamamos o construtor de nossa classe para exibirmos o relatorio e 4ª parte*/
public static void main (String args[]) {
new RelatorioLaboratorio();
System.out.println(“ok”);
}
}