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

13 respostas
L

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

não to conseguindo!!!!

valeu!!!

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");   
	//}   
}
//imprimi o relátorio
	
	private void btnImprimirActionPerformed(java.awt.event.ActionEvent evt) {
		
	
		
		
	}

13 Respostas

L

up!!!alguem!

kenneth

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!

L

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

seria dessa forma que vc representou!

o btnImprimir esta no frame!!!

L

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

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

		//new Relatorio().Relatorio();

		Relatorio  relatorio = new  Relatorio(1);
			
	}
rcipriani
lokit"s:
um problema, ele imprimi pelo botão mas tenhu que ficar colocando o numero entre os paranteses, como posso resolver isso??
private void btnImprimirActionPerformed(java.awt.event.ActionEvent evt) {

		//new Relatorio().Relatorio();

		Relatorio  relatorio = new  Relatorio(1);
			
	}
O construtor pede um codigo
public Relatorio(Integer codigo) {

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

kenneth

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!

L

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.

W

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

rcipriani

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.

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á

L

como poderia fazer isso!!!

kenneth

Fala brow,

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

Abraco!

rcipriani

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

L

valeu pessoal resolvido !!!!

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


		Relatorio  relatorio = new  Relatorio(new Integer(txtCodigo.getText()));			
	}

abrxx

Criado 20 de setembro de 2010
Ultima resposta 22 de set. de 2010
Respostas 13
Participantes 4