dynaProperties[i].getType().getName());
}
rs.close();
QueryEngineOutput output = new QueryEngineOutput();
if (input.getExportType() == null)
{
output.setResults(results);
output.setProperties(properties);
}
else
{
// Use DisplayTag to generate scheduled QueryReports
MockDisplayTablePageContext pageContext = null;
if (input.getExportType() == ExportType.CSV)
{
pageContext = new MockDisplayTablePageContext(MockDisplayTablePageContext.EXPORT_TYPE_CSV, applicationContext);
output.setContentType(ReportEngineOutput.CONTENT_TYPE_CSV);
}
else if (input.getExportType() == ExportType.XLS)
{
pageContext = new MockDisplayTablePageContext(MockDisplayTablePageContext.EXPORT_TYPE_XLS, applicationContext);
output.setContentType(ReportEngineOutput.CONTENT_TYPE_XLS);
}
else
{
pageContext = new MockDisplayTablePageContext(MockDisplayTablePageContext.EXPORT_TYPE_PDF, applicationContext);
output.setContentType(ReportEngineOutput.CONTENT_TYPE_PDF);
}
// create tag
MockDisplayTableTag displayTag = new MockDisplayTableTag();
displayTag.setPageContext(pageContext);
displayTag.setName(results);
displayTag.doStartTag();
// add columns
for (int i = 0; i < properties.length; i++)
{
ColumnTag column = new ColumnTag();
column.setParent(displayTag);
column.setProperty(properties[i].getName());
column.setTitle(properties[i].getDisplayName());
column.setDecorator(properties[i].getDecorator());
column.setPageContext(pageContext);
column.doStartTag();
column.doEndTag();
}
// call doAfterBody for each row in the results
for (int i= 0; i < results.size(); i++)
{
displayTag.doAfterBody();
}
// call doEndTag to perform the export
displayTag.doEndTag();
HashMap<?,?> map = (HashMap<?,?>) pageContext.getRequest().getAttribute(TableTag.FILTER_CONTENT_OVERRIDE_BODY);
Object content = map.get(TableTagParameters.BEAN_BODY);
if (content instanceof String)
{
output.setContent(((String)content).getBytes());
}
else
{
output.setContent((byte[])content);
}
}
return output;
}