use of org.mifos.reports.business.ReportsParamsMap in project head by mifos.
the class ReportsBusinessService method runReport.
public String runReport(int reportId, HttpServletRequest request, String applPath, String exportType) throws ServiceException, PersistenceException {
String exportFileName = "";
String error = "";
Connection conn = null;
List<ReportsJasperMap> reportJasperMap = reportsPersistence.findJasperOfReportId(reportId);
ReportsJasperMap rjm = null;
Object[] obj = reportJasperMap.toArray();
if (obj != null && obj.length > 0) {
rjm = (ReportsJasperMap) obj[0];
}
List<ReportsParamsMap> reportParams = (List) request.getSession().getAttribute("listOfAllParametersForReportId");
obj = reportParams.toArray();
Map parameters = new HashMap();
if (obj != null && obj.length > 0) {
for (Object element : obj) {
ReportsParamsMap rp = (ReportsParamsMap) element;
String paramname = rp.getReportsParams().getName();
int para = 0;
double dblpara = 0;
String paramvalue = request.getParameter(paramname) == null ? "" : request.getParameter(paramname);
String type = rp.getReportsParams().getClassname();
if (type.equalsIgnoreCase("java.lang.Integer")) {
paramvalue = paramvalue.equals("") ? "0" : paramvalue;
try {
para = Integer.parseInt(paramvalue);
parameters.put(paramname, para);
} catch (Exception e) {
error = "Not a valid Integer";
}
} else if (type.equalsIgnoreCase("java.lang.Double")) {
paramvalue = paramvalue.equals("") ? "0" : paramvalue;
try {
dblpara = Double.parseDouble(paramvalue);
parameters.put(paramname, dblpara);
} catch (Exception e) {
error = "Not a Valid Double";
}
} else {
parameters.put(paramname, paramvalue);
}
}
request.getSession().setAttribute("paramerror", error);
if (error.equals("")) {
try {
String jaspername = "";
if (rjm != null) {
jaspername = rjm.getReportJasper() == null ? "" : rjm.getReportJasper();
}
jaspername = jaspername.replaceAll(".jasper", ".jrxml");
conn = reportsPersistence.getJasperConnection();
String fullpath = applPath + jaspername;
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
try {
// FIXME: why is this commented out? Looks like a
// potential connection leak.
/*
* if(conn!=null) conn.close();
*/
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
} else {
try {
String jaspername = "";
if (rjm != null) {
jaspername = rjm.getReportJasper() == null ? "" : rjm.getReportJasper();
}
jaspername = jaspername.replaceAll(".jasper", ".jrxml");
conn = reportsPersistence.getJasperConnection();
String fullpath = applPath + jaspername;
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
try {
/*
* if(conn!=null) conn.close();
*/
} catch (Exception se) {
throw new RuntimeException(se);
}
}
}
return exportFileName;
}
use of org.mifos.reports.business.ReportsParamsMap in project head by mifos.
the class ReportsUserParamsAction method loadAddList.
/**
* Loads the Parameter Add page
*/
@SuppressWarnings("unchecked")
public ActionForward loadAddList(ActionMapping mapping, ActionForm form, HttpServletRequest request, @SuppressWarnings("unused") HttpServletResponse response) throws Exception {
logger.debug("In ReportsUserParamsAction:load Method: ");
request.getSession().setAttribute("listOfAllParameters", new ReportsPersistence().getAllReportParams());
ReportsParamQueryDAO paramDAO = new ReportsParamQueryDAO();
ReportsUserParamsActionForm actionForm = (ReportsUserParamsActionForm) form;
String strReportId = request.getParameter("reportId");
if (strReportId == null) {
strReportId = actionForm.getReportId() + "";
}
if (strReportId.equals("")) {
strReportId = "0";
}
int reportId = Integer.parseInt(strReportId);
String reportName = reportsPersistence.getReport((short) reportId).getReportName();
List<ReportsJasperMap> reports = reportsPersistence.findJasperOfReportId(reportId);
if (reports.size() > 0) {
ReportsJasperMap reportFile = reports.get(0);
String filename = reportFile.getReportJasper();
File file = new File(BirtReportsUploadAction.getCustomReportStorageDirectory(), filename);
if (file.exists()) {
filename = file.getAbsolutePath();
} else {
filename = "report/" + filename;
}
if (filename.endsWith(".rptdesign")) {
request.setAttribute("reportFile", filename);
request.setAttribute("reportName", reportName);
return mapping.findForward(ReportsConstants.BIRTREPORTPATH);
}
}
actionForm.setReportId(reportId);
request.getSession().setAttribute("listOfAllParametersForReportId", reportsPersistence.findParamsOfReportId(reportId));
request.getSession().setAttribute("listOfReportJasper", reportsPersistence.findJasperOfReportId(reportId));
List<ReportsParamsMap> reportParams = (List) request.getSession().getAttribute("listOfAllParametersForReportId");
Object[] obj = reportParams.toArray();
if (obj != null && obj.length > 0) {
for (int i = 0; i < obj.length; i++) {
ReportsParamsMap rp = (ReportsParamsMap) obj[i];
if (rp.getReportsParams().getType().equalsIgnoreCase("Query")) {
request.getSession().setAttribute("para" + (i + 1), paramDAO.listValuesOfParameters(rp.getReportsParams()));
}
}
}
return mapping.findForward(ReportsConstants.ADDLISTREPORTSUSERPARAMS);
}
Aggregations