Estou desenvolvendo uma aplicação desktop e desenvolvi um relatório no iReport. Gostaria que quando clicasse num botão o relatório fosse chamado. Como faço isso???
Obrigada
iReport+Aplicação Desktop
3 Respostas
criei uma classe no sourceforge pra mostrar um JDialog com opções de impressão:
da uma olhada 
vc cria um botão na sua tela, adiciona um evento nele e chama a tela de impressão assim:
Map<Object, Object> parameters = new HashMap<Object, Object>();
//String name = "Rod";
//parameters.put( "name", "%" + name + "%" ); // search especific
parameters.put( "name", "%%" ); // search all
JPrinterDialog printer = new JPrinterDialog(new javax.swing.JFrame(),
true,
/*jasperFile*/ "person",
parameters,
getConnection() );
printer.setVisible( true );
no lugar de getConnection() deve ir seu objeto de conexão com o banco!
[]´s
Olá
Para resolver esse problema criei um package relatórios e dentro dele a classe abaixo, depois disso basta você chamar essa classe através do botão ou menu de sua aplicação. No meu caso usei o Ireporte para gerar o relatório, por isso para rodar precisei copiar toda as bibliotecas do Ireport (C:\Arquivos de programas\JasperSoft\iReport-2.0.5\lib) para dentro do JAVA (C:\Arquivos de programas\Java\jdk1.6.0_06\jre\lib\ext) menos o arquivo "xalan".
//-----------------------------------------------------------------------------------
package relatorios;
import java.util.HashMap;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
import utilidades.conexao;
public class relgeral {
conexao con = new conexao();
public relgeral() {
try
{
con.conecta();
con.executeSQL(“SELECT * from dados_agenda”);
JRResultSetDataSource jrRS = new JRResultSetDataSource(con.resultset);
JasperPrint jasperPrint = JasperFillManager.fillReport(
“relatorio/reltelefonicogeral.jasper”, new HashMap(), jrRS); // NOME DA PASTA ONDE ESTA O RELATÓRIO/ NOME DO ARQUIVO .JASPER
JasperViewer.viewReport(jasperPrint,false);
} catch (Exception erro){
JOptionPane.showMessageDialog(null,“deu erro =”+erro);
}
}
public static void main (String args[])
{
new relgeral(); //DEVE SER MODIFICADA CONFORME O NOME DA CLASSE
}
}
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
Espero ter ajudado, boa sorte.....
criei uma classe no sourceforge pra mostrar um JDialog com opções de impressão:da uma olhada
vc cria um botão na sua tela, adiciona um evento nele e chama a tela de impressão assim:
Map<Object, Object> parameters = new HashMap<Object, Object>(); //String name = "Rod"; //parameters.put( "name", "%" + name + "%" ); // search especific parameters.put( "name", "%%" ); // search all JPrinterDialog printer = new JPrinterDialog(new javax.swing.JFrame(), true, /*jasperFile*/ "person", parameters, getConnection() ); printer.setVisible( true );no lugar de getConnection() deve ir seu objeto de conexão com o banco!
[]´s
Achei bem interessante seu projeto. Procure divulgar mais 