Busquei em muitos fóruns tutoriais para execução de relatórios jasper e encontrei muitas informações e montei o seguinte código:
public void ExecutaRelatorio() throws JRException, SQLException, FileNotFoundException {
// note que estamos chamando o novo relatório
String caminho = "C:/Users/14208/JaspersoftWorkspace/SGD_prod/Empregado.jrxml";
JRDataSource dataSource = new JREmptyDataSource();
JasperReport report = JasperCompileManager.compileReport( caminho );
Map parametros = new HashMap();
parametros.put("matricula", "7874");
parametros.put("semestre", "2%");
parametros.put("ano", "2016");
parametros.put("SUBREPORT_DIR", "C:/Users/14208/JaspersoftWorkspace/SGD_prod/");
ConnectionFactory connectionFactory = new ConnectionFactory();
JasperDesign design = JRXmlLoader.load(new FileInputStream(caminho));
List lista = connectionFactory.consultaEmpregado();
JasperPrint print = JasperFillManager.fillReport(report, parametros , new JRBeanCollectionDataSource(lista));
File outDir = new File("C:/Users/14208/Documents/Jars/JasperOut");
outDir.mkdir();
JasperExportManager.exportReportToPdfFile(print,"C:/Users/14208/Documents/Jars/JasperOut/Relatorio.pdf");
Eu chamo um relatório Empregado.jrxml e o compilo, porém dentro deste arquivo, há mais 4 subreports o qual o eclipse não consegue achar, e gostaria saber se há dicas para esse pequeno problema?
Minha exception:
net.sf.jasperreports.engine.JRException: Resource not found at: Dados.jasper.
at net.sf.jasperreports.repo.RepositoryUtil.getResourceFromLocation(RepositoryUtil.java:153)
at net.sf.jasperreports.repo.RepositoryUtil.getReport(RepositoryUtil.java:112)
at net.sf.jasperreports.engine.fill.JRFillSubreport.loadReport(JRFillSubreport.java:398)
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateReport(JRFillSubreport.java:365)
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:427)
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:341)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:381)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:500)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2022)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:748)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:255)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:115)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:582)
at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:414)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:121)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:667)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:983)
at br.com.bancoamazonia.relatorios.AbreRelatorio.ExecutaRelatorio(AbreRelatorio.java:77)
at br.com.bancoamazonia.relatorios.Teste.main(Teste.java:14)