Como chamar relatorio em minha aplicaÇÃo?

2 respostas
E

BOA TARDE!!
AMIGOS!!

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.

AGRADEÇO QUEM PUDER ME AJUDAR…

GRATO

ELIAS

2 Respostas

C

Olá ELIASRS

Você pode usar o seguinte código para chamar um relatório feito com o JasperReports:

JasperPrint print = JasperFillManager.fillReport(endereco_relatorio, params,
        conexao);
JasperViewer.viewReport(print, false);
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? :wink:

Até mais,

L

Ola

Espero que esteja utilizando o jasperrports 1.2.0 ou superior
e a connection do bando de dados.

------------------- olha ai ------------

import java.io.IOException;

import java.io.StringReader;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.HashMap;

import javax.swing.text.BadLocationException;
import javax.swing.text.rtf.RTFEditorKit;

import net.sf.jasperreports.engine.JasperManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.engine.JasperReport;

import net.sf.jasperreports.engine.design.JasperDesign;

import net.sf.jasperreports.view.JasperViewer;

/* 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 <em>/

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();

}

/</em> Inicio do bloco que ira gerar nossos relatorios e 3ª parte <em>/

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();

}

}

/</em> 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);

}

}

nao esqueca de criar o CLASSPATH

espero ter ajudado

Lindberg

Criado 18 de agosto de 2005
Ultima resposta 2 de mai. de 2006
Respostas 2
Participantes 3