Pessoal a alguns dias estou quase que parado na produção de software
que eu é um amigo estamos fazendo. Não estou conseguindo chamar o relatorio em JFrame.
Fui no site do Ireport é encontrei u exemplo.
Eu to usando Hibernate.
package relatorios;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.export.*;
import java.util.*;
public class Test {
public void Test(){
String fileName = "nascidosnafazenda.jasper";
String outFileName = "nascidosnafazenda.pdf";
HashMap hm = new HashMap();
try {
// Fill the report using an empty data source
JasperPrint print = JasperFillManager.fillReport(fileName, hm, new JREmptyDataSource());
// Create a PDF exporter
JRExporter exporter = new JRPdfExporter();
// Configure the exporter (set output file name and print object)
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, outFileName);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
// Export the PDF file
exporter.exportReport();
} catch (JRException e) {
e.printStackTrace();
System.exit(1);
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
}
Chamando no JFrame.
Test test = new relatorios.Test();
test.Test();
Galera tem algo errado fiz as importações certinhas.
alguem tem outra forma de ser feita.
File pdf = new File(System.getProperty(“user.dir”)+System.getProperty(“file.separator”)+“bin”+System.getProperty(“file.separator”)+“relatorio.pdf”);
esse codigo cria um pdf dentro da pasta bin da sua workspace.
//Esse voce usa simples assim… coloque a lista que buscou do banco. JRDataSource DADOS= new JRBeanCollectionDataSource( lista );
//Aqui é só um hash, coloca deque seu relatorio e… Map<String, String> parametros = new HashMap<String, String>();
parametros.put(“titulo”, “Relatório de Produtos”);
//Repara que ali onde tem relatorio.jasper… vai ficar o caminho da arquivo na workspace… se estiver num pacote sei la… Cliente… será: “cliente/relatorio”. JasperPrint impressao = JasperFillManager.fillReport(“relatorio.jasper”, parametros, DADOS);
Ahh tem que antes fazer um template usando o ireport cara…
E colocar dentro do sua workspace.
Se nao tiver aparecendo um .jasper e um .jrxml, nao deve funcionar… OU vai abrir mas vai aparecer null, nos dados…
Qualquer coisa é só falar… nao sei se deixei claro pra vc entender…
Até. DMX
Mas cara, vou te falar, fiquei bastante tempo tentando fazer de várias maneiras;
Se voce nao conseguir do jeito que vc ta tentando faz isso…
Cria sua DAO e seu metodo que retorna uma lista de objetos do seu banco…Com suas configuracoes que nao tem nada a ver com o report;
Depois que dentro da workspace estiver o .jasper, .jrxml que é criado pelo ireport…
public class Relatorio {
public Relatorio(){
}
// esse produtoexceptions eu que fiz nao tem que ter nao...
public static void geraRelatorio( DAOProdutos dao ) throws ProdutoExceptions
{
List<Produto> lista = dao.relatorio();
if( lista.size() > 0 )
{
Map<String, String> parametros = new HashMap<String, String>();
parametros.put("titulo", "Relatório de Produtos");
try {
JRDataSource collection = new JRBeanCollectionDataSource( lista );
JasperPrint impressao = JasperFillManager.fillReport("src/config/Produto.jasper", parametros, collection);
JasperViewer.viewReport(impressao);
} catch (Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
}
else
{
JOptionPane.showMessageDialog(null, "Não há dados cadastrados");
}
}
não já tinha notado o esse erro mandei rapido, mais mesmo senfo Lista.size()>0, ainda fica dando erro na linha que tinha lhe falado. Obrigado pela atenção.
Manda um print da sua workspace pra eu ver o caminho e tal… se der…
Obrigado nada, tinha que ajudar… Quando tive que fazer relatório fiquei igual um corno pq nao tinham topicos mt bons… daí resolvi vim ver se alguem estava tentando fazer… ahuahauhauha
Aí cara!! Eu tinha feito o projeto no eclipse… daí passei pro netbeans…
Deu erro pra gerar o relatorio… Daí consertei…
Faz o seguinte, clica com o botao direito em cima do .jasper, propriedade… pega o endereco todo lá… tipo isso:
“C:/Users/eu/workspace/MeusProjetosWorkSpace/Produto/src/config/Produto.jasper”
E tbm tem que copiar todas as bibliotecas que está dentro de:
C:\Program Files\Jaspersoft\iReport-3.7.6\ireport\modules\ext
E adicionar no buildPath(external jars) do projeto no eclipse… ou adicionar jars nas bibliotecas no netbeans…
Se vc fizer isso e nao funcionar deve ter coisa que vc deixou de fazer…