Galera,
Meu sistema possui vários relatórios desenvolvidos no iReports, utilizando JasperReports.
Instalei o sistema em um MAC OS X e não abre os relatórios, da sempre erro.
Alguém aqui já passou por isso?
Devo substituir os .jars do JasperReports?
Obrigada.
Opa, vamos lá. Deu erro? Qual erro?
É interessante dizer que sempre que desenvolvemos relatorios, o nosso servidor de aplicação e sistema operacional podem ler diferente uns dos outros. Mesmo sendo java, mas a forma como você constroi ele pode ser interpretada diferente.
Por exemplo, tinha um monte de relatorios que so rodavam no Windows, quando fui ver o problema, era a Fonte que não existia no servidor que era Linux. Podem ser varios os motivos, o legal é você passar o erro que está dando e sua implementação para que possamos dizer o que pode estar errado.
esses problemas da fonte é um caso sério, todos os meu problemas de compatibilidade eram causados pelas fontes ![:slight_smile: :slight_smile:](//www.guj.com.br/images/emoji/twitter/slight_smile.png?v=5)
grande chance de ser esse o seu problema…
Pessoal, obrigada pela ajuda!
Consegui achar o meu problema, eu criei todos os relatórios com o logotipo da empresa e o caminho do logotipo era do windows c:\ por isso no mac dava erro.
Então foi só tirar os logotipos dos relatórios e funcionou perfeitamente, exceto os subrelatórios.
Agora preciso de uma outra ajuda, preciso de um método java que independente do sistema operacional ele pegue pra mim o diretório corrente da aplicação.
O que acontece é que tenho subrelatórios que são chamados através de uma classe java que uso os caminhos fixos do windows.
Abaixo segue minha classe de conexão com o subrelatório:
[code]public class relCliente
{
public relCliente(Integer cliente, Integer status)
{
try
{
Conexao_Sub.estabelecerConexao();
HashMap <String, Object> parametros = new HashMap <String, Object>();
parametros.put("SUBREPORT_DIR","C://PROJETO/SUBRELATORIOS/");
parametros.put("idCliente", cliente);
parametros.put("Status", status);
JasperReport jasperReport = JasperCompileManager.compileReport("C://PROJETOS/SUBRELATORIOS/RELATORIO_CLIENTES.jrxml");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parametros, Conexao_Sub.getConexao());
JasperViewer jrViewer = new JasperViewer(jasperPrint, false);
jrViewer.setTitle("Clientes" + new SimpleDateFormat("dd/MM/yyyy").format(new Date()));
jrViewer.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE);
jrViewer.setVisible(Boolean.TRUE);
}
catch (JRException ex)
{
ex.printStackTrace();
Logger.getLogger(relResultadosGeral_Contrato.class.getName()).log(Level.SEVERE, null, ex);
}
}
}[/code]
Obrigada galera!