Instalei o plugin do jasper report… criei um relatorio nele… mais agora não sei como chamar esse relatorio por um botão na aplicação desktop que estou fazendo…
alguem pode me ajudar?
Instalei o plugin do jasper report… criei um relatorio nele… mais agora não sei como chamar esse relatorio por um botão na aplicação desktop que estou fazendo…
alguem pode me ajudar?
da uma olhada podera usar essa classe que tem ae:
http://www.guj.com.br/posts/list/141363.java
vlw
abs
mais minha aplicação é desktop… e nem deu certo fazer os imports.
para os imports não funcionarem, vc deve ter esquecido de incluir os jars do jasper no seu classpath
o código pra chamar o relatório fica idêntico tanto na web quanto em desktop, só muda o jeito que vc chama a ação e passa os parâmetros
Cara seta os jars no classpath:
commons-collections-2.1.jar
commons-javaflow-20060411.jar
commons-logging-api-1.0.2.jar
iReport.jar
iText-2.1.5.jar
jasperreports-3.1.4-javaflow.jar
depois segue abaixo a chamada do relatorio, coloque em um evento do JButton.
//Compila o aplicativo Jasper
JasperFillManager.fillReportToFile(jasper, jrprint,parameters, jrs);
//Entra no modo de visualização do JasperReport
JasperViewer.viewReport(jrprint, false, false);
Abraços!
para colocar os pontos jar eh nas variavels de ambiente? se for eu coloco em qual local das variaveis?
eu eu coloco no proprio netbeans?
Obrigado
no netbeans
fui em biblioteca add.jar e coloquei os que vc falo… menos o iReport.jar e jasperreports-3.1.4-javaflow.jar que não tinha…
e akele comando para compilar não deu certo… pois nem possui os imports
Da uma olhada nesse código tava com o mesmo problema, e funcionou, ve se te ajuda:
package Relatorios;
import java.util.HashMap;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
import Utilitarios.conexao;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.*;
public class Relat_Acervo{
conexao con = new conexao();// possuo uma classe conexão
public Relat_Acervo(){
try
{
con.conecta();// possuo um metodo conecta na classe conexão
JOptionPane.showMessageDialog(null,"CONECTADO","CONECTOU",JOptionPane.INFORMATION_MESSAGE);//TESTANDO CONEXÃO COM BANCO OK
con.executeSQL("select * from Cad_Acervo");//MINHA TABELA DO BANCO ONDE QUERO QUE TRAGA OS DADOS
JRResultSetDataSource jrRS = new JRResultSetDataSource(con.resultset);
JasperPrint jasperPrint = JasperFillManager.fillReport("Relatorios/Relat.jasper", new HashMap(), jrRS);// O RELATÓRIO ESTA NA PASTA RELATÓRIO
//JasperExportManager.exportReportToPdfFile(jasperPrint, "Relatorios/Relatorio_Acervos.pdf");
JasperViewer.viewReport(jasperPrint);
}
catch(Exception erro)
{
JOptionPane.showMessageDialog(null, " Erro "+erro);
}
}
public static void main(String args[]) {
new Relat_Acervo();
}
}
Também tive problema na versã do iReport 3.6.4 que não conseguia chamar o relatório, instalei a 1.5 e rodou, pode ser a bilioteca
eu uso o Ireport 3.0
aqueles imposts e so vc retira o que faz ligção com servelet…
dora isso e so colocar para rodar.
rs
vlw
abs
eu consegui arrumar os imports colocando os .jar
Agora minha duvida eh como abrir o relatorio, tenho esse metodo de consulta
public List consultar(String parametro, String parametro2) {
List<Produto> strList = new ArrayList<Produto>();
try {
Connection conn = Conexao.getConnection();
String sql = null;
sql = "select produtos.idproduto,produtos.nomeproduto,marcaproduto.nomemarca,produtos.descricao,produtos.localizacao_produto,produtos.validade,produtos.valorproduto,produtos.quantidadeestoque,unidades.nomeunidade where produtos.nomeproduto like ? and produtos.descricao like ? and marcaproduto.idmarca=produtos.idmarcaproduto and unidades.idunidade = produtos.idunidade";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, parametro);
pst.setString(2, parametro2);
ResultSet rs = pst.executeQuery();
while (rs.next()) {
Produto produto = new Produto();
produto.setId(rs.getInt("idproduto"));
produto.setNomeProduto(rs.getString("nomeproduto"));
MarcaProduto marca = new MarcaProduto();
marca.setNomeMarca(rs.getString("nomemarca"));
produto.setMarcaproduto(marca);
produto.setDescricao(rs.getString("descricao"));
produto.setLocalizacaoProduto(rs.getString("localizacao_produto"));
produto.setValidade(rs.getString("validade"));
produto.setValorProduto(rs.getDouble("valorproduto"));
produto.setQuantidadeEstoque(rs.getInt("quantidadeestoque"));
Filiais filiais = new Filiais();
filiais.setNomeFilial(rs.getString("nomeunidade"));
produto.setFiliais(filiais);
strList.add(produto);
}
pst.close();
rs.close();
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, e.getMessage());
}
return strList;
}
aki eh minha view que chama do metodo do controle
try {
Produto produto = new Produto();
IFachada fachada = new Fachada();
// IFachada fachadaoco = (IFachada) new FachadaOcorrencia();
// JOptionPane.showMessageDialog(null,"antes do parametro");
fachada.setDomainObject(produto);
List<Produto> list = fachada.consultar(tfconsult1.getText(), tfconsult2.getText());
// JOptionPane.showMessageDialog(null,"dps do parametro");
for (Produto prod : list) {
tfcodprod.setText(String.valueOf(prod.getId()));
tfnomeprod.setText(String.valueOf(prod.getNomeProduto()));
tfdescricao.setText(String.valueOf(prod.getDescricao()));
tflocalizacao.setText(String.valueOf(prod.getLocalizacaoProduto()));
tfdescricao.setText(prod.getDescricao());
tfvalidade.setText(prod.getValidade());
tfvalor.setText(Double.toString(prod.getValorProduto()));
tfquantidade.setText(String.valueOf(prod.getQuantidadeEstoque()));
tfmarca.setText(prod.getMarcaproduto().getNomeMarca());
kkkklocal.setText(prod.getFiliais().getNomeFilial());
da pra usar esse metodo pra consultar no banco e gerar um relatorio?
rapaz vc nao precisa colocar o Select na classe em java quando vc controi um relartorio com o Ireport vc ja coloca nele.
vc precisa colocar aapenas o nome do banco caminho ,login e senha.
e para gerar o Relatrio so precisa chamar a classe.
vlw
abs
ok. no netbeans fui em welcome to ireport… fez meu relatorio e ele salvou com a extensão .jrprint
tentei varios exemplos que esta no guj mais não aconteceu nada… apareceu um joptionpane vazio. deve ser algo null…
com vc faz para abrir o relatorio?