Olá a todos!
Estou há um tempo procurando uma solução e não a encontro.
É o seguinte, tenho um arquivo .jasper e quando este é executado no iReport ele funciona corretamente (os dados do relatório são preenchidos através de um arquivo XML).
Mas quando carrego o mesmo arquivo .jasper no Java, o relatório não é preenchido por inteiro. Só são preenchidos os campos em que não é utilizado o caminho relativo.
Segue abaixo o código (é um applet e a idéia é imprimir o relatório, a questão é que este relatório, como eu disse, não é preenchido corretamente):
public class AppletImprimirNF extends JApplet {
/* INICIA APPLET */
public void init() {
printNF();
}
private void printNF() {
try {
JasperReport relatorio = (JasperReport) JRLoader.loadObject(getClass().getResource("relatorio.jasper"));
try {
URL url = new URL(getParameter("PROTOCOL"), getParameter("HOST"), Integer.valueOf(getParameter("PORT")), getParameter("DADOS"));
JRXmlDataSource xml = new JRXmlDataSource(url.openStream());
JasperPrint impressao = JasperFillManager.fillReport(relatorio, new HashMap<String, Integer>(), xml);
JasperPrintManager.printReport(impressao, true);
} catch(MalformedURLException e) {
System.out.println("\nUrl mal formada:\n" + e.getMessage());
} catch(Exception e) {
System.out.println("Erro:\n"+e.getMessage()+"\n\nStack Trace:\n"+e.getStackTrace());
}
} catch(Exception ex){
System.out.println("\nInforme o seguinte erro ao suporte:\n" + " Mensagem: " + ex.getMessage() + "\n Causa: " + ex.getCause());
}
}
}
Se alguem puder me ajudar, agradeço.
Value!!
