Duvida! impressão do relátorio![RESOLVIDO]

pessoal como posso chamar o relatorio de impressão dentro do meu botão btnImprimir

não to conseguindo!!!

valeu!!!

[code]package controller.relatorio;

import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import model.to.RelatorioSeguradoTO;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;

/* Primeira parte */

public class Relatorio {

static Connection connection;
ResultSet rs = null;   



@SuppressWarnings("unchecked")
public Relatorio(Integer codigo) {    
	/* Efetua a conexao a base de dados e coleta os valores da base de dados armazenando-os  
   em um array para ser futuramente utilizado */  

	RelatorioSeguradoTO relatorioSeguradoTO = new RelatorioSeguradoTO();

	try {   
		Class.forName("org.apache.derby.jdbc.ClientDriver"); // O sun.jdbc.odbc.JdbcOdbcDriver significa que seria usado um banco access
		String url = "jdbc:derby://localhost:1527/Cadastro;create=false";// esta string carrega o nome da fonte de dados
		connection = DriverManager.getConnection(url,"vitor"," ");// aqui  efetuada conex�o passando -se a fonte de dados e o login e senha do banco, que neste caso n�sso existem.
		//System.out.println("Conexão estabelecida"); // exibida uma mensagem informando que a conex�o foi efetuada

		@SuppressWarnings("unused")
		HashMap teste = new HashMap();  

		PreparedStatement pstm = connection.prepareStatement( "select * from tb_Cadastro where codigo = ?");

		pstm.setInt(1,codigo);

		rs = pstm.executeQuery();


		if(rs.next()) {   

			relatorioSeguradoTO.setCodigo(rs.getInt( "codigo"));
			relatorioSeguradoTO.setNomeSegurado(rs.getString( "nomeSegurado"));
			relatorioSeguradoTO.setNascimento(rs.getString( "Nascimento"));
			relatorioSeguradoTO.setSexo(rs.getString( "Sexo"));
			relatorioSeguradoTO.setCpf(rs.getString( "CPF"));
			relatorioSeguradoTO.setEnde(rs.getString( "Ende"));
			relatorioSeguradoTO.setBairro(rs.getString( "Bairro"));
			relatorioSeguradoTO.setNumeroRes(rs.getInt( "NumeroRes"));
			relatorioSeguradoTO.setComplemento(rs.getString( "codigo"));
			relatorioSeguradoTO.setProduto(rs.getString( "Produto"));
			relatorioSeguradoTO.setPremio(rs.getInt( "Premio"));							

		}   

	}   
	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 {
		
	JRBeanCollectionDataSource ds = null;
	JasperPrint print = null;

	//Verifica se existe no minimo uma proposta a ser impressar 
	List<RelatorioSeguradoTO > listaRelatorio = new ArrayList<RelatorioSeguradoTO>();

	listaRelatorio.add(relatorioSeguradoTO);

	ds = new JRBeanCollectionDataSource(listaRelatorio);
	
	URL  url = getClass().getResource("/relatorio/Relatorio_Cadastro.jasper");

	JasperReport relatorioJasper = (JasperReport) JRLoader.loadObject(url);

	print = JasperFillManager.fillReport(relatorioJasper, null , ds);
	
	
		JasperViewer.viewReport(print,null,"Relatorio de Clientes", null);
	} catch (JRException e) {
		e.printStackTrace();
	}        

}

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

// public static void main (String args[]) {

//	new Relatorio(1);   
//	System.out.println("ok");   
//}   

} [/code]

[code]//imprimi o relátorio

private void btnImprimirActionPerformed(java.awt.event.ActionEvent evt) {
	

	
	
}[/code]

up!!!alguem!

Fala brow,

Voce nao ta sabendo o que colocar na acao do seu botao?

//imprimi o relátorio
private void btnImprimirActionPerformed(java.awt.event.ActionEvent evt) {
      // Isso considerando que o botao NAO esta na classe Relatorio.
      new Relatorio().Relatorio(1); // 1 - algum codigo...
}

Ou da algum erro? Se for isso, posta o erro pra gente…

Abraco!

era que não sabia chamar o evento dentro do botão msm!

seria dessa forma que vc representou!

o btnImprimir esta no frame!!!

um problema, ele imprimi pelo botão mas tenhu que ficar colocando o numero entre os paranteses, como posso resolver isso??

[code]private void btnImprimirActionPerformed(java.awt.event.ActionEvent evt) {

	//new Relatorio().Relatorio();

	Relatorio  relatorio = new  Relatorio(1);
		
}[/code]

[quote=lokit"s]um problema, ele imprimi pelo botão mas tenhu que ficar colocando o numero entre os paranteses, como posso resolver isso??

[code]private void btnImprimirActionPerformed(java.awt.event.ActionEvent evt) {

	//new Relatorio().Relatorio();

	Relatorio  relatorio = new  Relatorio(1);
		
}[/code][/quote]

O construtor pede um codigo

public Relatorio(Integer codigo) {   

Se não quer o código, tira do construtor

Brow,

Esse codigo eh o identificador do cadastro que voce quer buscar…
Imaginando que seja uma tabela de cadastro de clientes, cada um
deles vai ter um codigo, e atraves desse eh que voce vai puxar
os dados dele…

Mas falae, qual a sua intencao? O que ta tentando fazer?

Abraco!

bom…o porposito dele é que pelo codigo ele vai imprimir o relatorio,um ex…

cadastrei 2 regitros

um pelo codigo 1 e outro pelo codigo 2…

qq quiser imprimir ele imprime o que esta na tela …

mas fazendo do meu jeito ele só imprimi o codigo um msm na tela estando codigo 2 …

entendeu.

Caro lokit"s,

neste trecho de codigo pstm.setInt(1,codigo); voce faz a busca pela codigo 1, entao sempre vai imprimir o objeto de codigo 1, voce deve mudar este 1 para a variavel que representa o codigo do objeto, esta variavel deverá conter o codigo que esta em tela, ai voce ira conseguir buscar no banco objetos diferentes

[quote=lokit"s]bom…o porposito dele é que pelo codigo ele vai imprimir o relatorio,um ex…

cadastrei 2 regitros

um pelo codigo 1 e outro pelo codigo 2…

qq quiser imprimir ele imprime o que esta na tela …

mas fazendo do meu jeito ele só imprimi o codigo um msm na tela estando codigo 2 …

entendeu.[/quote]

Mas então ali onde está o 1 você tem que colocar a variavel que representa o código do objeto que ta na tela…

Ou é isso ou ainda não entendi o que você quer.

Caso você ja esteja colocando a variável, verifica se ela ta contendo o código certo, sei lá

como poderia fazer isso!!!

Fala brow,

Eu acho que voce vai precisar dar uma olhada em algum material…
Eu sugiro isso aqui, para começar…

Abraco!

Algo assim:

// cria um campo JTextFild no seu formulario.
// faz os GET e SET dele (encapsulamento)
// depois é só usar assim

private void btnImprimirActionPerformed(java.awt.event.ActionEvent evt) {

     //new Relatorio().Relatorio();  

    Relatorio  relatorio = new  Relatorio(this.getMeuCampoComCodigo());  

}

Se não entender, sugiro que veja o link que te passaram acima…
Porquê a dúvida é bem básica

qq coisa grita ai

valeu pessoal resolvido !!!

[code]private void btnImprimirActionPerformed(java.awt.event.ActionEvent evt ) {


	Relatorio  relatorio = new  Relatorio(new Integer(txtCodigo.getText()));			
}[/code]

abrxx