Pessoal
eu tenho um relatorio que possui um subReport
está funcionando perfeitamente..
agora quando fui gerar pelo codigo java..
vi um problema, onde eu passo o arquivo jasper do subReport ?
ele é passado por parametro ?
public String imprimirFatura(HttpServletRequest request, HttpServletResponse response, Fatura fatura)throws Exception {
Map params = new HashMap();
OutputStream ops = null;
String valorFinal = "";
String jasper = "";
boolean tipo = true;
Fatura dadosFatura = imprimirFaturaFacade.buscarDadosFatura(fatura);
ResultSet rs = imprimirFaturaFacade.gerarFatura(dadosFatura);
jasper = request.getContextPath() + "/reports/faturaSIAFInao.jasper";
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
String host = "http://" + request.getServerName() + ":"+ request.getServerPort();
URL jasperURL = new URL(host + jasper);
try {
/**
* Informo ao browser que a pagina que sera retornada e um arquivo
* pdf
*/
response.setContentType("application/pdf");
/**
* Gero o relatorio e armazeno o stream retornado num array de bytes
*/
byte[] bytes = JasperRunManager.runReportToPdf(jasperURL
.openStream(), params, jrRS);
/**
* Pego uma referencia do outputStream e gravo nele meu array de
* bytes
*/
if (bytes != null) {
ops = response.getOutputStream();
ops.write(bytes);
}
} catch (JRException ex) {
ex.printStackTrace();
} finally {
if (ops != null) {
ops.flush();
ops.close();
}
}
return "faturaPreenchida";
}
