Exemplo basicão pra gerar relatórios usando o jasperreports

Galera, algum tem um exemplo de criação de relatório utilizando jasperreports bem basicão, pelo ireport eu consegui criar um relatóriozinho em pdf bem básico. Queria saber como chamar o relatório atraves de uma aplicação java. Agradeço desde já!!!

Falows!!! :D

faca assim…

JasperDesign jasperDesign = JasperManager.loadXmlDesign(seuXML);
JasperReport jasperReport = JasperManager.compileReport(jasperDesign);

Map parameters = new HashMap();			
parameters.put(parametro_do_jasper,valor);

JasperPrint jasperPrint = JasperManager.fillReport(jasperReport, parameters, connection);

JasperViewer.viewReport(jasperPrint,false);	

falow

Desculpa minha ignorância Rafael, mas o que é esse parametro_do_jasper e valor?

Esse “parametro_do_jasper” é um parametro que você cria dentro do relatório, e “valor” é o conteúdo do parametro

Fiquei na mesma!!! :oops: :lol:

ehehe Luiz, os parâmetros são usados para complementar seu relatório.

Um exemplo é você passar as condições do SQL como um período de data ou a ordenação …

Sem parametros o relatorio não seria muito útil … vc teria q escrever um pra cada situação possível.

dentro do relatório você tem $F{nome_do_campo} que representa um campo do SELECT, $P{nome_do_parametro} que representa um parametro passado como o douglas falou e $V{nome_da_variavel} que é uma variavel pra fazer calculos e outras coisitas dentro do relatorio.

[]s

Poderia me dar um pequeno exemplo!!! :lol:

Luiz:

Permita-me passar algo que fizemos no meu trabalho. Trata-se de um relatório que é constituído de um cabeçalho e um rodapé que são impressos em todas as páginas mais o texto propriamente dito. Se o texto do cabeçalho e/ou do rodapé forem nulos, eles não aparecerão. Está configurado para uma página A4. Segue-se o código do XML deconfiguração:

<?xml version="1.0"?>
<!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

<jasperReport 
		name="impressao" 
		pageWidth="595" 
		pageHeight="842" 
		columnWidth="515" 
		columnSpacing="0" 
		leftMargin="40" 
		rightMargin="40" 
		topMargin="50" 
		bottomMargin="50">
	<parameter name="titulo" class="java.lang.String"/>
	<parameter name="cabecalho" class="java.lang.String"/>
	<parameter name="texto" class="java.lang.String"/>
	<parameter name="rodape" class="java.lang.String"/>
	<!--
	<title>
		<band height="70">
			<textField isBlankWhenNull="true" isStretchWithOverflow="true">
				<reportElement x="0" y="10" width="515" height="30"/>
				<textElement textAlignment="Center">
					<font fontName="Arial" size="22" pdfFontName="Helvetica" isPdfEmbedded="false"/>
				</textElement>
				<textFieldExpression>$P{titulo}</textFieldExpression>
			</textField>
		</band>
	</title>
	-->
	<pageHeader>
		<band height="70">
			<textField isBlankWhenNull="true" isStretchWithOverflow="true">
				<reportElement x="0" y="0" width="515" height="60"/>
				<textElement textAlignment="Center"/>
				<textFieldExpression>$P{cabecalho}</textFieldExpression>
			</textField>
		</band>
	</pageHeader>
	<detail>
		<band height="20">
			<textField isBlankWhenNull="true" isStretchWithOverflow="true">
				<reportElement x="0" y="4" width="515" height="15"/>
				<textElement>
					<font fontName="monospaced" size="10" pdfFontName="Courier"/>
				</textElement>
				<textFieldExpression>$P{texto}</textFieldExpression>
			</textField>
		</band>
	</detail>
	<pageFooter>
		<band height="70">
			<textField isBlankWhenNull="true" isStretchWithOverflow="true">
				<reportElement x="0" y="4" width="515" height="60"/>
				<textElement textAlignment="Center"/>
				<textFieldExpression>$P{rodape}</textFieldExpression>
			</textField>
		</band>
	</pageFooter>
</jasperReport>

A classe abaixo lê o arquivo impressao.xml acima e pode gerar um PDF, um HTML e um arquivo para impressão. A seguir o código da classe:


import java.io.*;
import java.util.HashMap;
import java.util.Map;

import dori.jasper.engine.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2002</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */

public class ServicoImpressaoTexto {
    private String titulo;
    private String cabecalho;
    private String rodape;
    private String texto;
    private static JasperReport jrImpressao;

    /**Construtor Padrão. */
    public ServicoImpressaoTexto() {
    }

    private JasperReport getJasperReportImpressao() throws JRException, IOException {
        if(jrImpressao == null) {
            jrImpressao = JasperCompileManager.compileReport(new
                BufferedInputStream(getClass().
                getResourceAsStream("impressao.xml"))); // Localizacao do arquivo XML exibido acima.
        }
        return jrImpressao;
    }

    private JasperPrint gerarConteudo() throws JRException, IOException {
        Map parameters = new HashMap(4);
        parameters.put("titulo", this.titulo);
        parameters.put("cabecalho", this.cabecalho);
        parameters.put("texto", this.texto);
        parameters.put("rodape", this.rodape);
        return JasperFillManager.fillReport(this.getJasperReportImpressao(),
            parameters, new JREmptyDataSource());
    }

    private String lerHTML(OutputStream osHTML, File fileHTML,
            String fileName) throws IOException, JRException {
        fileHTML = new File(fileName);
        JasperExportManager.exportReportToHtmlFile(this.gerarConteudo(),
            fileName);
        BufferedReader rd = new BufferedReader(
            new InputStreamReader(new FileInputStream(fileHTML)));
        String s;
        StringBuffer sbHTML = new StringBuffer();
        while((s = rd.readLine()) != null) {
            sbHTML.append(s + "
");
        }
        rd.close();
        return sbHTML.toString();
    }


    private void fecharStreams(OutputStream osHTML, File fileHTML,
            String fileName) throws IOException {
        if(osHTML != null) {
            osHTML.flush();
            osHTML.close();
        }
        if((fileHTML != null) && fileHTML.exists()) {
            fileHTML.delete();
        }
        fileHTML = new File(fileName + "_files");
        if((fileHTML != null) && fileHTML.exists() && fileHTML.isDirectory()) {
            fileHTML.delete();
        }
    }

    /**Determina o Título do Relatório. Método sem Efeito
     *
     * @param strTitulo Título do Relatório.
     */
    public void setTitulo(String strTitulo) {
        this.titulo = strTitulo;
    }

    /**Determina o Cabeçalho das páginas do Relatório.
     *
     * @param strCabecalho Cabeçalho das páginas do Relatório.
     */
    public void setCabecalho(String strCabecalho) {
        this.cabecalho = strCabecalho;
    }

    /**Determina o Rodapé das páginas do Relatório.
     *
     * @param strRodape Rodapé das páginas do Relatório.
     */
    public void setRodape(String strRodape) {
        this.rodape = strRodape;
    }

    /**Determina o Conteúdo do Relatório.
     *
     * @param strTexto Conteúdo do Relatório.
     */
    public void setTexto(String strTexto) {
        this.texto = strTexto;
    }

    /**Gera um relatorio para a Impressão
     *
     * @param verDialogoDeImpressao Se quer ver o diálogo de impressão.
     * @exception IOException SE ocorrer algum problema de I/O, ou na geração
     * de conteúdo ou quando enviar o relatório a impressora.
     */
    public void gerarImpressao(boolean verDialogoDeImpressao) throws IOException {
        try {
            JasperPrintManager.printReport(this.gerarConteudo(),
                verDialogoDeImpressao);
        } catch(JRException jrex) {
            throw new IOException(jrex.getMessage());
        }
    }

    /**Gera versao HTML do Relatório.
     *
     * @return String com o conteudo HTML do Relatório.
     */
    public String gerarHTML() {
        String strHTML = null;
        OutputStream osHTML = null;
        File fileHTML = null;
        String fileName = System.currentTimeMillis() + ".html";
        try {
            strHTML = this.lerHTML(osHTML, fileHTML, fileName);
        } catch(IOException ioex) {
            throw new RuntimeException(ioex);
        } catch(JRException jrex) {
            throw new RuntimeException(jrex);
        } finally {
            try {
                this.fecharStreams(osHTML, fileHTML, fileName);
            } catch(IOException ioex) {
                throw new RuntimeException(ioex);
            }
        }
        return strHTML;
    }

    /**
     *
     * @return Stream com o versao PDF do Relatório.
     * @throws IOException Se ocorrer um problema de I/O ou na criacao do
     * Conteudo.
     */
    public OutputStream gerarStreamPDF() throws IOException {
        byte[] bytePDF = this.gerarPDF();
        OutputStream osPDF = new
            BufferedOutputStream(new ByteArrayOutputStream(bytePDF.length));
        osPDF.write(bytePDF);
        osPDF.flush();
        return osPDF;
    }

    /**
     *
     * @return Vetor de bytes com a versao PDF do Relatório.
     * @throws IOException Se ocorrer um problema de I/O.
     */
    public byte[] gerarPDF() throws IOException {
        byte[] bytePDF = null;
        try {
            bytePDF = JasperExportManager.exportReportToPdf(this.gerarConteudo());
        } catch(JRException jrex) {
            throw new IOException(jrex.getMessage());
        }
        return bytePDF;
    }

}

A seguir está um programa de teste que fiz para testar a classe acima é um JFrame com 3 JtextAreas (para o cabeçalho, texto e rodapé) mais botões para gerar os tipos de relatório. Está um pouco desatualizado e provavelmente deverá ser modificado.

ackage jasperteste;

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;

import javax.swing.*;

import dori.jasper.engine.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */

public class FrameJasper extends JFrame {
    private static final String FILE_NAME = "DataSourceReport";
    JPanel pnlCentral = new JPanel();
    GridBagLayout gridBagLayout1 = new GridBagLayout();
    JScrollPane scpTexto = new JScrollPane();
    JTextArea txaTexto = new JTextArea();
    JButton btnPdf = new JButton();
    JButton btnImpressao = new JButton();
    JScrollPane scpResultado = new JScrollPane();
    JTextArea txaResultado = new JTextArea();
    JButton btnLimpar = new JButton();
    JButton btnCompilar = new JButton();
    JButton btnPreencher = new JButton();

    public FrameJasper() {
        super("Teste do Jasper Reports");
        try {
            jbInit();
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setSize(450, 300);
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        pnlCentral.setLayout(gridBagLayout1);
        btnPdf.setText("Gerar PDF");
        btnPdf.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(ActionEvent e) {
                btnPdf_actionPerformed(e);
            }
        });
        btnImpressao.setText("Gerar Impressão");
        btnImpressao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(ActionEvent e) {
                btnImpressao_actionPerformed(e);
            }
        });
        btnLimpar.setText("Limpar Resultados");
        btnLimpar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(ActionEvent e) {
                btnLimpar_actionPerformed(e);
            }
        });
        txaResultado.setEditable(false);
        btnCompilar.setText("Compilar");
        btnCompilar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(ActionEvent e) {
                btnCompilar_actionPerformed(e);
            }
        });
        btnPreencher.setText("Gerar Preenchimento");
        btnPreencher.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(ActionEvent e) {
                btnPreencher_actionPerformed(e);
            }
        });
        this.getContentPane().add(pnlCentral,  BorderLayout.CENTER);
        pnlCentral.add(scpTexto,            new GridBagConstraints(0, 0, 1, 3, 1.0, 2.0
            ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 0), 0, 0));
        scpTexto.getViewport().add(txaTexto, null);
        pnlCentral.add(btnPdf,         new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
        pnlCentral.add(btnImpressao,         new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
        pnlCentral.add(scpResultado,                new GridBagConstraints(0, 3, 1, 2, 1.0, 1.0
            ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 0), 0, 0));
        scpResultado.getViewport().add(txaResultado, null);
        pnlCentral.add(btnCompilar,           new GridBagConstraints(1, 3, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
        pnlCentral.add(btnLimpar,      new GridBagConstraints(1, 4, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
        pnlCentral.add(btnPreencher,    new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
    }

    void btnPdf_actionPerformed(ActionEvent e) {
        if((txaTexto.getText() != null) || (!"".equals(txaTexto.getText().trim()))) {
            txaResultado.append("-------------------------|n");
            try {
                txaResultado.append("Iniciando geração de PDF |n");

                File jasperFile = new File(FILE_NAME + ".jasper");
                if(!jasperFile.exists()) {
                    txaResultado.append("Compilando XML|n");
                    this.compilar();
                }

                txaResultado.append("Gerando Conteudo|n");
                long start = System.currentTimeMillis();
                InputStream ipsJasper = new BufferedInputStream(new
                    FileInputStream(jasperFile));
                JasperPrint jp = this.gerarConteudo(ipsJasper);
                txaResultado.append("Conteudo Gerado. Tempo: " +
                    (System.currentTimeMillis() - start) + "|n");

                txaResultado.append("Gerando PDF|n");
                start = System.currentTimeMillis();
                JasperExportManager.exportReportToPdfFile(jp, "teste.pdf");
                txaResultado.append("Terminando geração de PDF. Tempo: " +
                    (System.currentTimeMillis() - start) + "|n");
            } catch(Exception ex) {
                txaResultado.append(ex.getMessage() + "|n");
            }
            txaResultado.append("-----------------------|n");
        }
    }

    void btnImpressao_actionPerformed(ActionEvent e) {
        if((txaTexto.getText() != null) || (!"".equals(txaTexto.getText().trim()))) {
            txaResultado.append("-------------------------|n");
            try {
                txaResultado.append("Iniciando geração de Impressão |n");

                File jasperFile = new File(FILE_NAME + ".jasper");
                if(!jasperFile.exists()) {
                    txaResultado.append("Compilando XML|n");
                    this.compilar();
                }

                txaResultado.append("Gerando Conteudo|n");
                long start = System.currentTimeMillis();
                InputStream ipsJasper = new BufferedInputStream(new
                    FileInputStream(jasperFile));
                JasperPrint jp = this.gerarConteudo(ipsJasper);
                txaResultado.append("Conteudo Gerado. Tempo: " +
                    (System.currentTimeMillis() - start) + "|n");

                txaResultado.append("Gerando Impressão|n");
                start = System.currentTimeMillis();
                JasperPrintManager.printReport(jp, false);
                txaResultado.append("Terminando geração de Impressão. Tempo: " +
                    (System.currentTimeMillis() - start) + "|n");
            } catch(Exception ex) {
                txaResultado.append(ex.getMessage() + "|n");
            }
            txaResultado.append("-----------------------|n");
        }

    }

    void btnLimpar_actionPerformed(ActionEvent e) {
        txaResultado.setText(null);
    }

    void btnCompilar_actionPerformed(ActionEvent e) {
        try {
            this.compilar();
        } catch(Exception ex) {
            txaResultado.append(ex.getMessage() + "|n");
        }
    }

    private void compilar() throws JRException {
        txaResultado.append("-----------------------|n");
        txaResultado.append("Iniciando Compliação ..." + "|n");
        long start = System.currentTimeMillis();
        JasperCompileManager.compileReportToFile(FILE_NAME + ".xml");
        txaResultado.append("Compilação Concluida - Tempo =  " +
            (System.currentTimeMillis() - start) + " ms|n");
        txaResultado.append("-----------------------|n");
    }

    public static void main(String[] args) {
        FrameJasper frameJasper = new FrameJasper();
        frameJasper.show();
    }

    void btnPreencher_actionPerformed(ActionEvent e) {
        if((txaTexto.getText() != null) || (!"".equals(txaTexto.getText().trim()))) {
            txaResultado.append("-----------------------|n");
            try {
                File jasperFile = new File(FILE_NAME + ".jasper");
                if(!jasperFile.exists()) {
                    txaResultado.append("Compilando XML|n");
                    this.compilar();
                }

                InputStream ipsJasper = new BufferedInputStream(new
                    FileInputStream(jasperFile));
                JasperPrint jp = this.gerarConteudo(ipsJasper);
            } catch(Exception ex) {
                txaResultado.append(ex.getMessage() + "|n");
            }
            txaResultado.append("-----------------------|n");
        }
    }

    private JasperPrint gerarConteudo(InputStream ipsJasper) throws JRException{
        Map parameters = new HashMap(1);
        System.out.print(txaTexto.getText() + "|n");
        parameters.put("Texto", txaTexto.getText());
        return JasperFillManager.fillReport(ipsJasper, parameters,
            new JREmptyDataSource());

    }

}

Onde “|n” sinifica "
".
Reconheço que não é exatamente um “Pequeno exemplo” mas espero que sirva para te esclarecer. Para mais detalhes dê uma olhada na API do Jasper e na documentação a respeito do XML de configuração.

Boa Sorte,

O problema é que o XML do Jasper nunca é um pequeno exemplo :shock:

Vou tentar colocar um dos menores que eu tenho aqui.

[code]<?xml version="1.0" encoding="UTF-8" ?>











= $P{dtaInicial} AND fat.data_do_debito <= $P{dtaFinal} AND fat.tipo_do_debito = 'ADESAO' AND fat.tipo = 0 AND fat.operadora = 'BANRISUL' UNION --muitos outros selects ORDER BY ordem ]]>





























































































































































[/code]

Veja na Query o campo $P{dtaInicial} … usando o código do Rafael voce adicionaria ao hashmap assim parameters.put(“dtaInicial”,data.getTime()); e isso é um parametro.

Ainda no exemplo tem um parâmetro LogoNetset que uso pra passar o arquivo do logo do relatorio (que pode mudar e assim não preciso usar um caminho fixo de endereço pra imagem no relatório).

Neste exemplo ai tem tb uma variável pra sumarizar …

recomendo muito uma estudada nos exemplos do próprio Jasper:
http://jasperreports.sourceforge.net/samples/index.html

Bem, eu também estou aqui iniciando no Jasper Reports, e tentei testar o código postado pelo Rafael, e consegui apenas o pequeno erro:

java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester at dori.jasper.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:105) at jasperteste.FrameJasper.compilar(FrameJasper.java:180) at jasperteste.FrameJasper.btnPreencher_actionPerformed(FrameJasper.java:198) at jasperteste.FrameJasper$5.actionPerformed(FrameJasper.java:77) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245) at java.awt.Component.processMouseEvent(Component.java:5100) at java.awt.Component.processEvent(Component.java:4897) at java.awt.Container.processEvent(Container.java:1569) at java.awt.Component.dispatchEventImpl(Component.java:3615) at java.awt.Container.dispatchEventImpl(Container.java:1627) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128) at java.awt.Container.dispatchEventImpl(Container.java:1613) at java.awt.Window.dispatchEventImpl(Window.java:1606) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.EventQueue.dispatchEvent(EventQueue.java:456) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100) java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester at dori.jasper.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:105) at jasperteste.FrameJasper.compilar(FrameJasper.java:180) at jasperteste.FrameJasper.btnPreencher_actionPerformed(FrameJasper.java:198) at jasperteste.FrameJasper$5.actionPerformed(FrameJasper.java:77) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245) at java.awt.Component.processMouseEvent(Component.java:5100) at java.awt.Component.processEvent(Component.java:4897) at java.awt.Container.processEvent(Container.java:1569) at java.awt.Component.dispatchEventImpl(Component.java:3615) at java.awt.Container.dispatchEventImpl(Container.java:1627) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128) at java.awt.Container.dispatchEventImpl(Container.java:1613) at java.awt.Window.dispatchEventImpl(Window.java:1606) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.EventQueue.dispatchEvent(EventQueue.java:456) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100) java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester at dori.jasper.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:105) at jasperteste.FrameJasper.compilar(FrameJasper.java:180) at jasperteste.FrameJasper.btnCompilar_actionPerformed(FrameJasper.java:170) at jasperteste.FrameJasper$4.actionPerformed(FrameJasper.java:71) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245) at java.awt.Component.processMouseEvent(Component.java:5100) at java.awt.Component.processEvent(Component.java:4897) at java.awt.Container.processEvent(Container.java:1569) at java.awt.Component.dispatchEventImpl(Component.java:3615) at java.awt.Container.dispatchEventImpl(Container.java:1627) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128) at java.awt.Container.dispatchEventImpl(Container.java:1613) at java.awt.Window.dispatchEventImpl(Window.java:1606) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.EventQueue.dispatchEvent(EventQueue.java:456) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100) java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester at dori.jasper.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:105) at jasperteste.FrameJasper.compilar(FrameJasper.java:180) at jasperteste.FrameJasper.btnImpressao_actionPerformed(FrameJasper.java:140) at jasperteste.FrameJasper$2.actionPerformed(FrameJasper.java:58) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245) at java.awt.Component.processMouseEvent(Component.java:5100) at java.awt.Component.processEvent(Component.java:4897) at java.awt.Container.processEvent(Container.java:1569) at java.awt.Component.dispatchEventImpl(Component.java:3615) at java.awt.Container.dispatchEventImpl(Container.java:1627) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128) at java.awt.Container.dispatchEventImpl(Container.java:1613) at java.awt.Window.dispatchEventImpl(Window.java:1606) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.EventQueue.dispatchEvent(EventQueue.java:456) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100) java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester at dori.jasper.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:105) at jasperteste.FrameJasper.compilar(FrameJasper.java:180) at jasperteste.FrameJasper.btnPreencher_actionPerformed(FrameJasper.java:198) at jasperteste.FrameJasper$5.actionPerformed(FrameJasper.java:77) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245) at java.awt.Component.processMouseEvent(Component.java:5100) at java.awt.Component.processEvent(Component.java:4897) at java.awt.Container.processEvent(Container.java:1569) at java.awt.Component.dispatchEventImpl(Component.java:3615) at java.awt.Container.dispatchEventImpl(Container.java:1627) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128) at java.awt.Container.dispatchEventImpl(Container.java:1613) at java.awt.Window.dispatchEventImpl(Window.java:1606) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.EventQueue.dispatchEvent(EventQueue.java:456) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

Alguem tem ideia do erro?

Obri.

Falta biblioteca do Jasper no Claspath…!
ta faltando alguma coisa do tipo common.jar que deve estar no LIB do iReport.

Flw!

Inclui o lib inteiro no classpath e fununciou…
(falta de atenção total :slight_smile: )

Valeu…

Meu deus!!! Eu dou um convite para o GMail para aquele que fizer um tutorial de JasperReports para o GUJ (além dese estar concorrendo ao vale-livros) :slight_smile:

[quote=mantabodyboarder]Inclui o lib inteiro no classpath e fununciou…
(falta de atenção total :slight_smile: )

Valeu…[/quote]

Deu o seguinte erro quando mandei gerar o pdf…------------------------
Iniciando geração de PDF
Compilando XML|n-----------------------|nIniciando Compliação …|nDataSourceReport.xml (The system cannot find the file specified)|n-----------------------|n :roll:

Olá!!

estes posts anteriores estão bem antigos!!

Mas queria ressucitar este assunto!!

estou pesquisando como gerar relatórios para o projeto da empresa onde trabalho!

encontrei ótimas ferramentas, e considero o JasperReport a mais robusta dentre as open source e livres!

mas tenho que faz\er um sistema de geração de inteerfaces bem prático, com um design padrão, seja pra PDF, XLS, HTML, …

e minha idéia seria usar o Jasper e o Annotation, abolindo o uso direto do XML! assim como existe o Hibernate Annotation!

outro aspecto é quanto à consulta no banco de dados! esta consulta não pode ser feita pelo gerador de relatórios, isso é feito por outra camada do projeto!

a camada de geração de ralatórios apenas receberia o resultado de uma consulta já feita!!

gostaria de saber se isso é viável com o JasperReport?!

e aceito sugestões, idéias e críticas quanto a tudo isso!!

obrigado!

Pessoal,

Eu consigo chamar o relatório, mas está tudo branco!
Passo o SQL como parâmetro.

Não entendi direito como que funciona o relatório…

[quote=aline_silva]Pessoal,

Eu consigo chamar o relatório, mas está tudo branco!
Passo o SQL como parâmetro.

Não entendi direito como que funciona o relatório…

[/quote]

Na realidade também não entendi muito bem!
pelo menos já percebi que é preciso criar um ficheiro de xml, (vou usar o iReports 3.0.0 para o fazer)! Depois vou dar uma olha de novo no tópico! Obrigado pela explicação! as é muito código para quem nunca viu Reports em Java!