1
« en: Jueves 8 de Mayo de 2008, 20:31 »
Hola,
He creado varios reportes utilizando el API de CrystalReports para que sean ejecutados y exportados a PDF desde una aplicacion web en Java. No habia tenido ningun problema hasta que lo hice con un reporte que contenia subreportes de la siguiente forma:
ResultSet rs = sql.getResultSet(query);
String tableAlias = reportClientDoc.getDatabaseController().getDatabase().getTables().getTable(0).getAlias();
reportClientDoc.getDatabaseController().setDataSource(rs, tableAlias , "resultsetTable");
System.out.println("Es simple: "+simple);
// si tiene subreportes realiza esta parte
if (!simple){
//get the subreport
for (int i=1; i<rpts.size(); i++){
ISubreportClientDocument subRep = reportClientDoc.getSubreportController().getSubreport(rpts.get(i).toString());
ResultSet resultSet1 = sql.getResultSet(querys.get(i).toString());
String table1 = subRep.getDatabaseController().getDatabase().getTables().getTable(0).getName();
//Push the Java Resultset into the report. This will then become the datasource of the report when the report itself is generated.
subRep.getDatabaseController().setDataSource(resultSet1, table1 , "resultTbl"+i);
}
}
session.setAttribute("reportSource", reportClientDoc.getReportSource());
response.sendRedirect("VisorReportes.jsp");
El visor de reportes visualiza el reporte en una nueva pagina, luego de ser exportado a PDF como se muestra a continuacion:
ReportExportControl control = new ReportExportControl();
ExportOptions exportOptions = new ExportOptions();
IPDFExportFormatOptions opts = new PDFExportFormatOptions();
exportOptions.setExportFormatType(ReportExportFormat.PDF);
opts.setStartPageNumber(1);
opts.setEndPageNumber(10000);
exportOptions.setFormatOptions(opts);
Object reportSource = session.getAttribute("reportSource");
control.setExportOptions(exportOptions);
control.setReportSource(reportSource);
control.setEnableParameterPrompt(false);
control.refresh();
System.out.println("*****isOwnPage: "+control.isOwnPage());
control.processHttpRequest(request, response, application, pageContext.getOut());
El error me da en el processHttpRequest me dice:
Exception while processing export request: No se pudo crear el controlador
Alguien podria darme una idea de que podria ser?
Gracias,