Relátório IReport / Jasper no grails
05/02/2013 18:11
Senhores, estou tentando fazer um relatorio no jasper reports, mas não consigo de forma alguma. Se os senhores já trabalharam alguma vez com iReports, peço ajuda. Segue o meu código.
if (dadosTro) {
String relatorioprincipal = grailsAttributes.getApplicationContext().getResource("/relatorio/RelatorioTROv0.3.7.jrxml").getFile().toString()
//SubRelatório Envolvidos
String pathReportSubEnvolvidos = servletContext.getRealPath('/relatorio') + "/" + "RelatorioTROv0.3.5_subreport1_QualificacaoEnvolvidov.1.0.jasper";
JasperReport jasperReportSubEnvolvidos = seseg.compilaRelatorios(pathReportSubEnvolvidos);
params.put("SUBREPORT_DIR_ENVOLVIDOS", jasperReportSubEnvolvidos);
//Fim Envolvidos
//SubRelatório do SubRelatorio de Guarnicao
String pathReportSubRelGuarnicao = servletContext.getRealPath('/relatorio') + "/" + "subRelatorioTRO_guarnicao.jasper";
JasperReport jasperReportSubRelGuarnicao = seseg.compilaRelatorios(pathReportSubRelGuarnicao);
params.put("SUBREPORT_DIR_SUB_GUARNICAO", jasperReportSubGuarnicao);
//Fim Guarnição
//SubRelatório de Guarnicao
String pathReportSubGuarnicao = servletContext.getRealPath('/relatorio') + "/" + "RelatorioTROv0.3_guarnicaov1.0.jasper";
JasperReport jasperReportSubGuarnicao = seseg.compilaRelatorios(pathReportSubGuarnicao);
params.put("SUBREPORT_DIR_GUARNICAO", jasperReportSubGuarnicao);
//Fim Guarnição
//SubRelatório de Veiculo
String pathReportVeiculo = servletContext.getRealPath('/relatorio') + "/" + "RelatorioTRO_subreport1_ApreensoesVeiculov0.1.jasper";
JasperReport jasperReportVeiculo = seseg.compilaRelatorios(pathReportVeiculo);
params.put("SUBREPORT_DIR_VEICULO", jasperReportVeiculo);
//Fim Veiculo
//SubRelatório de Entorpecentes
String pathReportEntorpecentes = servletContext.getRealPath('/relatorio') + "/" + "RelatorioTRO_subreport1_ApreensoesEntorpecentes.1.jasper";
JasperReport jasperReportEntorpecente = seseg.compilaRelatorios(pathReportEntorpecentes);
params.put("SUBREPORT_DIR_ENTORPECENTE", jasperReportEntorpecente);
//Fim Entorpecentes
//SubRelatório de Armas
String pathReportArmas = servletContext.getRealPath('/relatorio') + "/" + "RelatorioTRO_subreport1_ApreensoesArmasv0.1.jasper";
JasperReport jasperReportArmas = seseg.compilaRelatorios(pathReportArmas);
params.put("SUBREPORT_DIR_ARMAS", jasperReportArmas);
//Fim Armas
//SubRelatório de Municao
String pathReportMunicao = servletContext.getRealPath('/relatorio') + "/" + "RelatorioTRO_subreport1_ApreensoesMuniçõesv0.1.jasper";
JasperReport jasperReportMunicao = seseg.compilaRelatorios(pathReportMunicao);
params.put("SUBREPORT_DIR_MUNICAO", jasperReportMunicao);
//Fim Municao
//SubRelatório de Material
String pathReportMaterial = servletContext.getRealPath('/relatorio') + "/" + "RelatorioTRO_subreport1_ApreensoesMaterialv0.1.jasper";
JasperReport jasperReportMaterial = seseg.compilaRelatorios(pathReportMaterial);
params.put("SUBREPORT_DIR_MATERIAL", jasperReportMaterial);
//Fim Material
//cria uma o qual vai conter todas os parametros do relatório
params._format = "PDF"
params._file = relatorioprincipal
def report = jasperService.buildReportDefinition(params, request.getLocale(), dadosTro)
generateReport(report)
//Gera o relatório
def generateReport = { reportDef ->
if (!reportDef.fileFormat.inline && !reportDef.parameters._inline) {
response.setHeader("Content-Disposition", "inline; filename=\"${reportDef.parameters._name ?: reportDef.name}.${reportDef.fileFormat.extension}\"");
response.setHeader("Content-Type", "${reportDef.fileFormat.mimeTyp}");
response.contentType = reportDef.fileFormat.mimeTyp
response.characterEncoding = "UTF-8"
response.outputStream << reportDef.contentStream.toByteArray()
} else {
render(text: reportDef.contentStream, contentType: reportDef.fileFormat.mimeTyp, encoding: reportDef.parameters.encoding ? reportDef.parameters.encoding : 'UTF-8');
}
}
Tags:
iReport