JasperReports 0.6.1: Passar parâmetro para sub relatório com conexão Custom JRDataSource

1 resposta
Leandro_BSB

Caríssimos,

estou desenvolvendo um relatório usando o JasperReports 0.6.1 com conexão do tipo Custom JRDataSource no qual preciso criar um sub relatório. Alguém sabe uma forma de chamar o método estático da Factory class passando um parâmetro (para o sub relatório)?

[]s

Leandro

1 Resposta

Lindberg

Ola

Primeiro baixe a versao mais recente JasperReport 1.2.2

Depois configure os classpath.

Comece criar relatorios.

para chamar o relatorio:

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.JRException;

import net.sf.jasperreports.engine.JRResultSetDataSource;

import net.sf.jasperreports.engine.JasperCompileManager;

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.view.JasperViewer;

/* Primeira parte */
public class relatorio {

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 relatorio() {

/* 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”);
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
		
		JasperPrint jasperPrint = JasperFillManager.fillReport(
		"relatorio.jasper", new HashMap(), jrRS);
		
		JasperViewer.viewReport(jasperPrint);

     }
  }
  catch (Exception e) {
     System.err.println("Problemas apresentados na operacao de conexao");
     e.printStackTrace();
  }
}

/* Aqui chamamos o construtor de nossa classe para exibirmos o relatorio e 4ª parte*/

public static void main (String args[]) {

new relatorio();

System.out.println(ok);

}

}

Não esqueça dos drives do seu banco de dados

Lindberg

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