Chamar relatório a partir de botão

13 respostas
rodolpho.netto

Pessoal, fiz um relatório usando o plugin do ireport, passo os parametros e a query toda no proprio ireport, preciso apenas criar um botão no meu aplicativo que chame o relatório como faço?

13 Respostas

Bear

Você fez o método para gerar o relatório?

rodolpho.netto

Segue meu metodo, ele está dando um alert com a segunte mensagem de erro

java.lang.nullpointerexception

public cad_cli(conexao conectado) {
        initComponents();
        con = conectado; 
    }

         private void imprimirRelatorio(){
             try {  
           URL arquivo = getClass().getResource("C:/Users/Rodolpho/Dropbox/Gestão em T.I/3° Semestre/java/Yamada3/src/yamada3/clientes.jasper");           
           Map<String, Object> map = new HashMap<String, Object>();
           JasperReport jasperReport = (JasperReport) JRLoader.loadObject(arquivo);  
           JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, con.conectar()); 
           JasperViewer jrviewer = new JasperViewer(jasperPrint, false);  
           jrviewer.setVisible(true); 
           jrviewer.toFront();
         }catch (Exception ex) {  
            JOptionPane.showMessageDialog(null, ex); 
        }
         }

Segue meu arquivo de conexão com o banco, apesar de que eu to criando uma conexão nova no ireport... não sei se é necessario passar a conexão como parametro, enfim segue:

public class conexao {
    
    private String driver="com.mysql.jdbc.Driver";
    private Connection Conexao;
    public Statement statemente;
    public ResultSet resultset;    
    public conexao() {
        
    }
    public  boolean conectar()
    {
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            String URL="jdbc:mysql://localhost:3306/yamada";
            String username="root";
            String passwd="yamada";
            Conexao = (Connection) DriverManager.getConnection(URL,username,passwd);
            System.out.println("conectou !!!");
            return true;
            
        }catch(Exception ef)
                {
                    return false;
                }
    }
    
    public  boolean executeSQL(String sql)
    {
        try {
            statemente = (Statement) Conexao.createStatement();
            resultset = statemente.executeQuery(sql);
            return true;
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
            return false;
        }
        
    
}

Segue tb o xml do relatório:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report name" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="18c41368-3840-4b5e-8235-eb7edd299f9e">
	<property name="ireport.zoom" value="1.0"/>
	<property name="ireport.x" value="0"/>
	<property name="ireport.y" value="0"/>
	<style name="Heading 1" fontSize="16" isBold="true"/>
	<parameter name="primeiroNome" class="java.lang.String">
		<parameterDescription><![CDATA[Valor do primeiro nome do Cliente]]></parameterDescription>
		<defaultValueExpression><![CDATA[]]></defaultValueExpression>
	</parameter>
	<queryString>
		<![CDATA[SELECT * FROM cliente
WHERE nome LIKE "%$P!{primeiroNome}%"
]]>
	</queryString>
	<field name="id_cli" class="java.lang.Integer"/>
	<field name="nome" class="java.lang.String"/>
	<field name="endereco" class="java.lang.String"/>
	<field name="telefone" class="java.lang.String"/>
	<field name="celular" class="java.lang.String"/>
	<field name="cpf" class="java.lang.String"/>
	<field name="cheque" class="java.lang.String"/>
	<field name="bloqueado" class="java.lang.String"/>
	<background>
		<band splitType="Stretch"/>
	</background>
	<title>
		<band height="79" splitType="Stretch"/>
	</title>
	<pageHeader>
		<band height="35" splitType="Stretch"/>
	</pageHeader>
	<columnHeader>
		<band height="24" splitType="Stretch">
			<staticText>
				<reportElement uuid="86991171-81d7-4446-96d8-56b5c3d810f8" x="11" y="2" width="100" height="20"/>
				<textElement/>
				<text><![CDATA[Nome]]></text>
			</staticText>
			<staticText>
				<reportElement uuid="86991171-81d7-4446-96d8-56b5c3d810f8" x="139" y="0" width="276" height="20"/>
				<textElement/>
				<text><![CDATA[Endereço]]></text>
			</staticText>
			<staticText>
				<reportElement uuid="86991171-81d7-4446-96d8-56b5c3d810f8" x="294" y="0" width="100" height="20"/>
				<textElement/>
				<text><![CDATA[Telefone]]></text>
			</staticText>
		</band>
	</columnHeader>
	<detail>
		<band height="42" splitType="Stretch">
			<textField>
				<reportElement uuid="186c6461-7149-4163-9cff-7dea4445c28d" x="11" y="0" width="100" height="20"/>
				<textElement/>
				<textFieldExpression><![CDATA[$F{nome}]]></textFieldExpression>
			</textField>
			<textField>
				<reportElement uuid="52afccc0-d051-463b-9b31-d68a1b13afb6" x="294" y="0" width="100" height="20"/>
				<textElement/>
				<textFieldExpression><![CDATA[$F{telefone}]]></textFieldExpression>
			</textField>
			<textField>
				<reportElement uuid="fe784d4a-5fde-4776-bf76-1e9f6e1399cd" x="139" y="0" width="155" height="20"/>
				<textElement/>
				<textFieldExpression><![CDATA[$F{endereco}]]></textFieldExpression>
			</textField>
		</band>
	</detail>
	<columnFooter>
		<band height="45" splitType="Stretch"/>
	</columnFooter>
	<pageFooter>
		<band height="54" splitType="Stretch"/>
	</pageFooter>
	<summary>
		<band height="42" splitType="Stretch"/>
	</summary>
</jasperReport>
tondatto

No método actionPerformed() do componente JButton, chave seu método imprimirRelatorio().

JButton imprimeButton = new JButton("Imprimir"); imprimeButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ imprimirRelatorio(); } });

rodolpho.netto

Segue o código que eu fiz no button, mas quando clico nele simplesmente não faz nada nem gera mensagem de erro nem nada

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { JButton jButton3 = new JButton("Imprimir"); jButton3.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ imprimirRelatorio(); } }); }

tondatto

Rodolpho,

Este método jButton3ActionPerformed(), salvo engano, deve estar sendo chamado pelo método actionPerformed() do seu jButton3.
Se for, basta chamar dentro deste método o imprimirRelatorio()

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { imprimirRelatorio(); });

Tente entender o que acontece quando você clica num objeto JButton. Grosseiramente acontece o seguinte:

  1. É disparado um ‘evento’ para todos os Listeners registrados do componente.
  2. Quando um Listener recebe um evento, ele chama o método actionPerformed para executar o que estiver alí dentro.
  3. Na sua classe, o método actionPerformed deste jButton3 deve estar chamando o método jButton3ActionPerformed.
rodolpho.netto

Certo, agora eu troquei o código de

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { JButton jButton3 = new JButton("Imprimir"); jButton3.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ imprimirRelatorio(); } }); }

passei para

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { imprimirRelatorio(); });

tive que retirar o ); no final pois estava dando erro, dai ele voltou como era antes, dando o erro do java.lang.nullpointerexception

tondatto

rodolpho.netto:

tive que retirar o ); no final pois estava dando erro, dai ele voltou como era antes, dando o erro do java.lang.nullpointerexception

Seja mais específico para podermos ajudar. Poste o erro completo.

Vanilson

Uso sempre esse código e nunca falhou, ai vai:

public void chamaRelatorioRecibo() {
        try {
            Connection conexao = Conexao.ligarBd();
            HashMap parametros = new HashMap();
            parametros.put("CODIGO_VENDA", txtCodigoVenda.getText());
            parametros.put("DATA_VENDA", txtData.getText());
            parametros.put("HORA_VENDA", txtHora.getText());
            JasperPrint jp = JasperFillManager.fillReport("./relatorios/persistech/factura_persistec.jasper", parametros, conexao);
            //JasperExportManager.exportReportToPdfFile(jp,"./factura.pdf");
            JasperViewer jv = new JasperViewer(jp, false);
            jv.setVisible(true);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

Qualquer duvida e perguntar…

rodolpho.netto

Não consegui passar as funções de conexão, então deixei sem elas ja que está sendo feito direto no relatório, usei o seguinte código e recebi o seguinte erro

public void chamaRelatorioRecibo() {
        try {
            
            HashMap parametros = new HashMap();
            parametros.put("primeiroNome", primeiroNome.getText());
            JasperPrint jp = JasperFillManager.fillReport("C:/Users/rodolpho.netto/Dropbox/Gestão em T.I/3° Semestre/java/Yamada3/src/yamada3/clientes.jasper", parametros);
            //JasperExportManager.exportReportToPdfFile(jp,"./factura.pdf");
            JasperViewer jv = new JasperViewer(jp, false);
            jv.setVisible(true);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/collections/ReferenceMap
	at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.<init>(DefaultExtensionsRegistry.java:97)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
	at java.lang.Class.newInstance0(Class.java:372)
	at java.lang.Class.newInstance(Class.java:325)
	at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:59)
	at net.sf.jasperreports.extensions.ExtensionsEnvironment.createDefaultRegistry(ExtensionsEnvironment.java:81)
	at net.sf.jasperreports.extensions.ExtensionsEnvironment.<clinit>(ExtensionsEnvironment.java:69)
	at net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:83)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:121)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:88)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:103)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:61)
	at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:153)
	at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:122)
	at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:464)
	at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:300)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:757)
	at yamada3.cad_cli.chamaRelatorioRecibo(cad_cli.java:109)
	at yamada3.cad_cli.jButton3ActionPerformed(cad_cli.java:343)
	at yamada3.cad_cli.access$200(cad_cli.java:31)
	at yamada3.cad_cli$3.actionPerformed(cad_cli.java:216)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:713)
	at java.awt.EventQueue.access$000(EventQueue.java:104)
	at java.awt.EventQueue$3.run(EventQueue.java:672)
	at java.awt.EventQueue$3.run(EventQueue.java:670)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:686)
	at java.awt.EventQueue$4.run(EventQueue.java:684)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:683)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.ReferenceMap
	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
	... 60 more
alxdre.pestana
rodolpho.netto:
Não consegui passar as funções de conexão, então deixei sem elas ja que está sendo feito direto no relatório, usei o seguinte código e recebi o seguinte erro
public void chamaRelatorioRecibo() {
        try {
            
            HashMap parametros = new HashMap();
            parametros.put("primeiroNome", primeiroNome.getText());
            JasperPrint jp = JasperFillManager.fillReport("C:/Users/rodolpho.netto/Dropbox/Gestão em T.I/3° Semestre/java/Yamada3/src/yamada3/clientes.jasper", parametros);
            //JasperExportManager.exportReportToPdfFile(jp,"./factura.pdf");
            JasperViewer jv = new JasperViewer(jp, false);
            jv.setVisible(true);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/collections/ReferenceMap
	at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.<init>(DefaultExtensionsRegistry.java:97)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
	at java.lang.Class.newInstance0(Class.java:372)
	at java.lang.Class.newInstance(Class.java:325)
	at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:59)
	at net.sf.jasperreports.extensions.ExtensionsEnvironment.createDefaultRegistry(ExtensionsEnvironment.java:81)
	at net.sf.jasperreports.extensions.ExtensionsEnvironment.<clinit>(ExtensionsEnvironment.java:69)
	at net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:83)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:121)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:88)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:103)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:61)
	at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:153)
	at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:122)
	at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:464)
	at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:300)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:757)
	at yamada3.cad_cli.chamaRelatorioRecibo(cad_cli.java:109)
	at yamada3.cad_cli.jButton3ActionPerformed(cad_cli.java:343)
	at yamada3.cad_cli.access$200(cad_cli.java:31)
	at yamada3.cad_cli$3.actionPerformed(cad_cli.java:216)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:713)
	at java.awt.EventQueue.access$000(EventQueue.java:104)
	at java.awt.EventQueue$3.run(EventQueue.java:672)
	at java.awt.EventQueue$3.run(EventQueue.java:670)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:686)
	at java.awt.EventQueue$4.run(EventQueue.java:684)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:683)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.ReferenceMap
	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
	... 60 more

Qual versao do Ireport voce esta utilizando?
A geração do relatório você nao precisa importar para o ClassPath todos as libs, apenas algumas...
Possivelmente esta ocorrendo um conflito de LIB, isso aconteceu comigo da outra vez em que estava utilizando.

eu uso a versao 4.7.0 onde as libs necessarias são:
commons-digester-2.1.jar
commons-beanutils-1.8.2.jar
commons-collections-3.2.1.jar
commons-javaflow-20060411.jar
commons-logging-1.1.jar
groovy-all-1.7.5.jar
jasperreports-4.7.0.jar
iText-2.1.7.jar

Eu gero meu relatorio atraves de uma objeto BEEN, caso ele reclame mais alguma coisa adicione com cautela os demais JAR.

rodolpho.netto

Opa, agora ele chamou meu relatório porem deu documento em branco e o seguinte erro:

Set 11, 2012 7:25:32 AM net.sf.jasperreports.engine.query.JRJdbcQueryExecuter <init>
WARNING: The supplied java.sql.Connection object is null.

isso se deve ao fato de eu não ter colocado a conexão nos parametros do botão, mas nao sei como passar esse parametro, segue minha classe de conexão!

package conexao;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class conexao {
    
    private String driver="com.mysql.jdbc.Driver";
    private Connection Conexao;
    public Statement statemente;
    public ResultSet resultset;    
    public conexao() {
        
    }
    public  boolean conectar()
    {
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            String URL="jdbc:mysql://localhost:3306/yamada";
            String username="root";
            String passwd="yamada";
            Conexao = (Connection) DriverManager.getConnection(URL,username,passwd);
            System.out.println("conectou !!!");
            return true;
            
        }catch(Exception ef)
                {
                    return false;
                }
    }
    
    public  boolean executeSQL(String sql)
    {
        try {
            statemente = (Statement) Conexao.createStatement();
            resultset = statemente.executeQuery(sql);
            return true;
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
            return false;
        }
        
    
}

e meu botão

public void chamaRelatorioRecibo() {
        try {
            
            HashMap parametros = new HashMap();
            parametros.put("primeiroNome", primeiroNome.getText());
            JasperPrint jp = JasperFillManager.fillReport("C:/Users/rodolpho.netto/Dropbox/Gestão em T.I/3° Semestre/java/Yamada3/src/yamada3/clientes.jasper", parametros);
            //JasperExportManager.exportReportToPdfFile(jp,"./factura.pdf");
            JasperViewer jv = new JasperViewer(jp, false);
            jv.setVisible(true);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
emanuelmm

passa no método fillReport, no terceiro parametro você coloca a conexao.

rodolpho.netto

Então, essa parte eu até cheguei a ver, só não sei como passo a conexão sabe? nos meus jframes eu já conecto logo de cara, alguém pode analisar minha classe de conexão e me dizer como lanço ela no parâmetro?

Criado 9 de setembro de 2012
Ultima resposta 11 de set. de 2012
Respostas 13
Participantes 6