Relatorio so exibe os dados de quando foi criado

1 resposta
Lindberg

Ola Pessoal !

Estou precisando de uma ajudinha ! .

O meu bando de dados é atualizado constantimente !

Estou gerando relatorios em texto. Depois imprimo o texto,
e sai tudo bem, perfeito !.

Só meu relatorio jasper exibe dados sem atualizar.

Exemplo.: Para filtra relatorio do dia que desejo não funciona.

Não sei o que fiz errado !.
Acredito que o exemplo que peguei tenha algo pra consertar.

Se puder me ajudar, te agradeço muito.
O meu relatorio é segue este exemplo abaixo.

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

}

}

Se voce preferir mande-me um outro exemplo, por favor.
Vi exemplos no forum mas são muito antigos.
Muito Obrigado, Lindberg

1 Resposta

ASOBrasil

Lindberg,

Pq vc não passa o ResultSet como parâmetro, exemplo:

Connection con = TestaRelatorio.getConnection(); 
Statement stm = con.createStatement();
String query = "select * from clientes";
ResultSet rs = stm.executeQuery( query );
			
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
			
JasperPrint jasperPrint = JasperFillManager.fillReport(
	jasperReport, new HashMap(), jrRS);
			
JasperViewer.viewReport(jasperPrint);

ASOBrasil

Criado 8 de maio de 2006
Ultima resposta 8 de mai. de 2006
Respostas 1
Participantes 2