Boa tarde a todos. criei um gerador de relatórios vendas. esta funcionando corretamente. Porem quando tento abrir dois relatórios ao mesmo tempo o sistema trava e da a seguinte exceção.
net.sf.jasperreports.engine.JRException: Error trying to export to file : C:\BLVendas\rel0.pdf
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:389)
at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:122)
at relatorios.DAORelatorios.gerarRelatorioCliente(DAORelatorios.java:61)
at controller.ControllerCliente.gerarRelatorioCliente(ControllerCliente.java:82)
at view.ViewPrincipal$51.run(ViewPrincipal.java:941)
Caused by: java.io.FileNotFoundException: C:\BLVendas\rel0.pdf (O arquivo já está sendo usado por outro processo)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.(FileOutputStream.java:213)
at java.io.FileOutputStream.(FileOutputStream.java:162)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:383)
… 4 more
Meu método.
public boolean gerarRelatorioCliente() {
try {
this.conectar();
this.executarSQL("SELECT "
+ " clientes.codigo AS clientes_codigo, "
+ " clientes.nome AS clientes_nome, "
+ " clientes.nome_fantasia AS clientes_nome_fantasia, "
+ " clientes.endereco AS clientes_endereco, "
+ " clientes.bairro AS clientes_bairro, "
+ " clientes.cep AS clientes_cep, "
+ " clientes.telefone AS clientes_telefone, "
+ " clientes.cpf_cnpj AS clientes_cpf_cnpj, "
+ " clientes.observacao AS clientes_observacao, "
+ " clientes.ativo AS clientes_ativo, "
+ " clientes.tipo_pessoa AS clientes_tipo_pessoa, "
+ " cidade.codigo_ibge AS cidade_codigo_ibge, "
+ " cidade.codigo AS cidade_codigo, "
+ " cidade.nome AS cidade_nome, "
+ " estado.uf AS estado_uf, "
+ " estado.nome AS estado_nome "
+ “FROM "
+ " cidade cidade INNER JOIN clientes clientes ON cidade.codigo = clientes.cod_cidade "
+ " INNER JOIN estado estado ON cidade.fk_cod_estado = estado.codigo”);
JRResultSetDataSource jrRS = new JRResultSetDataSource(getResultSet());
// caminho do arquivo dentro dos pacotes
InputStream caminhoRelatorio = this.getClass().getClassLoader().getResourceAsStream(“ArquivosJasper/relatorioClientes.jasper”);
JasperPrint jasperPrint = JasperFillManager.fillReport(caminhoRelatorio, new HashMap(), jrRS);
String nomeArquivo = "C:/BLVendas/rel0.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint, nomeArquivo);
File file = new File(nomeArquivo);
file.deleteOnExit();
try {
Desktop.getDesktop().open(file);
} catch (Exception e) {
JOptionPane.showConfirmDialog(null, e);
}
file.deleteOnExit();
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, e.getMessage(), "Erro:", JOptionPane.ERROR_MESSAGE);
return false;
}
return true;
}