format changes

This commit is contained in:
Keith Woodlock
2012-11-30 12:58:51 +00:00
parent 48b3693944
commit d2c751f2eb
3 changed files with 79 additions and 114 deletions
@@ -55,19 +55,11 @@ public class ReportsApiResource {
boolean exportPdf = ApiParameterHelper.exportPdf(uriInfo.getQueryParameters()); boolean exportPdf = ApiParameterHelper.exportPdf(uriInfo.getQueryParameters());
if(exportPdf) if (exportPdf)
{
{ String result = this.readExtraDataAndReportingService.retrieveReportPDF(".", ".", extractedQueryParams);
String result = this.readExtraDataAndReportingService return Response.ok().entity(result).header("Content-Disposition", "attachment;filename=ReportList.pdf").build();
.retrieveReportPDF(".", ".", extractedQueryParams); }
return Response
.ok()
.entity(result)
.header("Content-Disposition",
"attachment;filename=ReportList.pdf").build();
}
if (!exportCsv) { if (!exportCsv) {
GenericResultsetData result = this.readExtraDataAndReportingService.retrieveGenericResultset(".", ".", extractedQueryParams); GenericResultsetData result = this.readExtraDataAndReportingService.retrieveGenericResultset(".", ".", extractedQueryParams);
@@ -109,30 +101,23 @@ public class ReportsApiResource {
parameterTypeValue = "parameter"; parameterTypeValue = "parameter";
} }
// PDF format
// PDF format if (exportPdf) {
Map<String, String> reportParams = getReportParams(queryParams, false);
String pdfFileName = this.readExtraDataAndReportingService.retrieveReportPDF(reportName, parameterTypeValue, reportParams);
if(exportPdf) File file = new File(pdfFileName);
{
Map<String, String> reportParams = getReportParams(queryParams, false); ResponseBuilder response = Response.ok(file);
String pdfFileName = this.readExtraDataAndReportingService response.header("Content-Disposition", "attachment; filename=\"" + pdfFileName + "\"");
.retrieveReportPDF(reportName, parameterTypeValue, reportParams); response.header("content-Type", "application/pdf");
File file=new File(pdfFileName); return response.build();
ResponseBuilder response=Response.ok(file); }
response.header("Content-Disposition",
"attachment; filename=\""
+pdfFileName+"\"");
response.header("content-Type","application/pdf");
return response.build();
}
if (!exportCsv) { if (!exportCsv) {
Map<String, String> reportParams = getReportParams(queryParams, false); Map<String, String> reportParams = getReportParams(queryParams, false);
GenericResultsetData result = this.readExtraDataAndReportingService.retrieveGenericResultset(reportName, parameterTypeValue, GenericResultsetData result = this.readExtraDataAndReportingService.retrieveGenericResultset(reportName, parameterTypeValue,
@@ -187,5 +172,4 @@ public class ReportsApiResource {
} }
return reportParams; return reportParams;
} }
} }
@@ -15,8 +15,7 @@ public interface ReadReportingService {
Response processPentahoRequest(String reportName, String outputType, Map<String, String> queryParams); Response processPentahoRequest(String reportName, String outputType, Map<String, String> queryParams);
String retrieveReportPDF(String name, String type,Map<String, String> extractedQueryParams); String retrieveReportPDF(String name, String type, Map<String, String> extractedQueryParams);
String getReportType(String reportName); String getReportType(String reportName);
} }
@@ -143,8 +143,6 @@ public class ReadReportingServiceImpl implements ReadReportingService {
return writer; return writer;
} }
@Override @Override
public GenericResultsetData retrieveGenericResultset(final String name, final String type, final Map<String, String> queryParams) { public GenericResultsetData retrieveGenericResultset(final String name, final String type, final Map<String, String> queryParams) {
@@ -342,85 +340,69 @@ public class ReadReportingServiceImpl implements ReadReportingService {
} }
} }
@Override @Override
public String retrieveReportPDF(final String reportName,final String type, final Map<String, String> queryParams) { public String retrieveReportPDF(final String reportName, final String type, final Map<String, String> queryParams) {
String fileLocation=FileUtils.MIFOSX_BASE_DIR+File.separator+""; String fileLocation = FileUtils.MIFOSX_BASE_DIR + File.separator + "";
if(!new File(fileLocation).isDirectory()) if (!new File(fileLocation).isDirectory()) {
{ new File(fileLocation).mkdirs();
new File(fileLocation).mkdirs(); }
}
String genaratePdf=fileLocation+File.separator+reportName+".pdf"; String genaratePdf = fileLocation + File.separator + reportName + ".pdf";
try {
GenericResultsetData result = retrieveGenericResultset(reportName, type, queryParams);
try List<ResultsetColumnHeader> columnHeaders = result.getColumnHeaders();
{ List<ResultsetDataRow> data = result.getData();
GenericResultsetData result = retrieveGenericResultset( List<String> row;
reportName, type, queryParams);
logger.info("NO. of Columns: " + columnHeaders.size());
Integer chSize = columnHeaders.size();
List<ResultsetColumnHeader> columnHeaders = result.getColumnHeaders(); Document document = new Document(PageSize.B0.rotate());
List<ResultsetDataRow> data = result.getData();
List<String> row;
logger.info("NO. of Columns: " + columnHeaders.size()); PdfWriter.getInstance(document, new FileOutputStream(new File(fileLocation + reportName + ".pdf")));
Integer chSize = columnHeaders.size(); document.open();
Document document = new Document(PageSize.B0.rotate()); PdfPTable table = new PdfPTable(chSize);
table.setWidthPercentage(100);
PdfWriter.getInstance(document, for (int i = 0; i < chSize; i++) {
new FileOutputStream(new File(fileLocation+reportName+".pdf")));
document.open();
PdfPTable table = new PdfPTable(chSize); table.addCell(columnHeaders.get(i).getColumnName());
table.setWidthPercentage(100);
for (int i = 0; i < chSize; i++) { }
table.completeRow();
table.addCell(columnHeaders.get(i).getColumnName()); Integer rSize;
String currColType;
} String currVal;
table.completeRow(); logger.info("NO. of Rows: " + data.size());
for (int i = 0; i < data.size(); i++) {
Integer rSize; row = data.get(i).getRow();
String currColType; rSize = row.size();
String currVal; for (int j = 0; j < rSize; j++) {
logger.info("NO. of Rows: " + data.size()); currColType = columnHeaders.get(j).getColumnType();
for (int i = 0; i < data.size(); i++) { currVal = row.get(j);
row = data.get(i).getRow(); if (currVal != null) {
rSize = row.size(); if (currColType.equals("DECIMAL") || currColType.equals("DOUBLE") || currColType.equals("BIGINT")
for (int j = 0; j < rSize; j++) { || currColType.equals("SMALLINT") || currColType.equals("INT")) {
currColType = columnHeaders.get(j).getColumnType();
currVal = row.get(j);
if (currVal != null) {
if (currColType.equals("DECIMAL")
|| currColType.equals("DOUBLE")
|| currColType.equals("BIGINT")
|| currColType.equals("SMALLINT")
|| currColType.equals("INT"))
{
table.addCell(currVal.toString());
}
else
{
table.addCell(currVal.toString());
}
}
}
}
table.completeRow();
document.add(table);
document.close();
return genaratePdf;
}
catch (Exception e) {
throw new PlatformDataIntegrityException(
"error.msg.exception.error", e.getMessage());
}
}
}
table.addCell(currVal.toString());
} else {
table.addCell(currVal.toString());
}
}
}
}
table.completeRow();
document.add(table);
document.close();
return genaratePdf;
}
catch (Exception e) {
throw new PlatformDataIntegrityException("error.msg.exception.error", e.getMessage());
}
}
}