diff options
Diffstat (limited to 'ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportRuntime.java')
-rw-r--r-- | ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportRuntime.java | 433 |
1 files changed, 431 insertions, 2 deletions
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportRuntime.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportRuntime.java index 1afd629c..9e228244 100644 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportRuntime.java +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportRuntime.java @@ -37,13 +37,16 @@ */ package org.onap.portalsdk.analytics.model.runtime; +import java.io.IOException; import java.io.Serializable; import java.sql.Connection; +import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.Enumeration; +import java.util.GregorianCalendar; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -53,11 +56,16 @@ import java.util.Vector; import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import javax.xml.datatype.XMLGregorianCalendar; + import org.apache.commons.lang.StringUtils; -import org.apache.jcs.engine.CacheUtils; +import org.json.JSONObject; import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.error.ReportSQLException; import org.onap.portalsdk.analytics.model.DataCache; import org.onap.portalsdk.analytics.model.ReportHandler; import org.onap.portalsdk.analytics.model.ReportLoader; @@ -66,6 +74,9 @@ import org.onap.portalsdk.analytics.model.base.IdNameSql; import org.onap.portalsdk.analytics.model.base.IdNameValue; import org.onap.portalsdk.analytics.model.base.ReportWrapper; import org.onap.portalsdk.analytics.model.definition.Marker; +import org.onap.portalsdk.analytics.model.definition.ReportDefinition; +import org.onap.portalsdk.analytics.model.definition.wizard.QueryResultJSON; +import org.onap.portalsdk.analytics.model.definition.wizard.RaptorResponse; import org.onap.portalsdk.analytics.system.AppUtils; import org.onap.portalsdk.analytics.system.ConnectionUtils; import org.onap.portalsdk.analytics.system.DbUtils; @@ -73,9 +84,12 @@ import org.onap.portalsdk.analytics.system.Globals; import org.onap.portalsdk.analytics.util.AppConstants; import org.onap.portalsdk.analytics.util.CachingUtils; import org.onap.portalsdk.analytics.util.DataSet; +import org.onap.portalsdk.analytics.util.RemDbInfo; import org.onap.portalsdk.analytics.util.Utils; +import org.onap.portalsdk.analytics.util.XSSFilter; import org.onap.portalsdk.analytics.view.ColumnHeader; import org.onap.portalsdk.analytics.view.ColumnHeaderRow; +import org.onap.portalsdk.analytics.view.ColumnVisual; import org.onap.portalsdk.analytics.view.CrossTabOrderManager; import org.onap.portalsdk.analytics.view.CrossTabTotalValue; import org.onap.portalsdk.analytics.view.DataRow; @@ -87,10 +101,17 @@ import org.onap.portalsdk.analytics.xmlobj.DataColumnType; import org.onap.portalsdk.analytics.xmlobj.FormFieldType; import org.onap.portalsdk.analytics.xmlobj.ObjectFactory; import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.objectcache.jcs.JCSCacheManager; import org.onap.portalsdk.core.util.SecurityCodecUtil; import org.owasp.esapi.ESAPI; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; /**<HR/> @@ -667,6 +688,8 @@ public class ReportRuntime extends ReportWrapper implements Cloneable, Serializa setWholeSQL(reportSQL); cachedSQL = reportSQL; wholeSQL = reportSQL; + String pagedSQL = ""; + pagedSQL = generatePagedSQL(pageNo, userId, request, false, null); List reportCols = getAllColumns(); DataColumnType dataColumnRequest = getCrossTabValueColumn(); reportSQL = parseReportSQLForDrillDownParams(reportSQL, dataColumnRequest, request); @@ -751,7 +774,7 @@ public class ReportRuntime extends ReportWrapper implements Cloneable, Serializa DataColumnType dct = (DataColumnType) iter.next(); if (nvl(dct.getDrillDownURL()).length() > 0) { - childReportFormFields = getChildReportFormFields(request,dct.getDrillDownURL()); + childReportFormFields = getChildReportFormFields(request,AppUtils.getDrillActionURL()+""+dct.getDrillDownURL()); } if (nvl(dct.getCrossTabValue()).equals(AppConstants.CV_ROW)) { @@ -897,6 +920,8 @@ public class ReportRuntime extends ReportWrapper implements Cloneable, Serializa v1 = drInFor1.getRowValues(); if(i<dataList.size()-1) { v2 = ((DataRow)dataList.get(i+1)).getRowValues(); + } else { + v2 = null; } for (int j = 0; j < v1.size(); j++) { if(j==0) { @@ -2466,6 +2491,164 @@ public List getMapMarkers(ReportData rd, org.onap.portalsdk.analytics.xmlobj.Rep } return allowEdit; } + + public String convertToDate(XMLGregorianCalendar xc) { + DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); + GregorianCalendar gCalendar = xc.toGregorianCalendar(); + //Converted to date object + Date date = gCalendar.getTime(); + //Formatted to String value + String dateString = df.format(date); + return dateString; + } + + public String convertCalendarToDate(Date xc) { + DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); + String dateString = df.format(xc); + return dateString; + } + + + + public RaptorResponse retrieveDataForGivenQuery( String reQsql, HttpServletRequest request, FormField ff) + throws RaptorException { + RaptorResponse raptorResponse = new RaptorResponse(); + String sql = reQsql; + String jsonInString = ""; + + ServletContext servletContext = request.getSession().getServletContext(); + if (!Globals.isSystemInitialized()) { + Globals.initializeSystem(servletContext); + } + + + if (!sql.trim().toUpperCase().startsWith("SELECT")) { + ErrorJSONRuntime errorJSONRuntime = new ErrorJSONRuntime(); + errorJSONRuntime.setErrormessage("Invalid statement - the SQL must start with the keyword SELECT"); + errorJSONRuntime.setStacktrace("SQL Error"); + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + + try { + jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(errorJSONRuntime); + raptorResponse.data().put("elements", jsonInString); + return raptorResponse; + + } catch (Exception ex) { + logger.error(EELFLoggerDelegate.errorLogger, + "[Controller.processRequest]Invalid raptor action [retrieveDataForGivenQuery].", ex); + } + } else { + DataSet ds = null; + + String userId = AppUtils.getUserID(request); + + sql = Utils.replaceInString(sql, "[LOGGED_USERID]", userId); + sql = Utils.replaceInString(sql, "[USERID]", userId); + String[] reqParameters = Globals.getRequestParams().split(","); + String[] sessionParameters = Globals.getSessionParams().split(","); + javax.servlet.http.HttpSession session = request.getSession(); + logger.debug(EELFLoggerDelegate.debugLogger, ("B4 testRunSQL " + sql)); + if (request != null) { + for (int i = 0; i < reqParameters.length; i++) { + if (!reqParameters[i].startsWith("ff")) + sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase() + "]", + ESAPI.encoder().encodeForSQL( SecurityCodecUtil.getCodec(),request.getParameter(reqParameters[i].toUpperCase()))); + else + sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase() + "]", + ESAPI.encoder().encodeForSQL( SecurityCodecUtil.getCodec(),request.getParameter(reqParameters[i]))); + } + } + if (session != null) { + for (int i = 0; i < sessionParameters.length; i++) { + logger.debug(EELFLoggerDelegate.debugLogger, (" Session " + " sessionParameters[i] " + + sessionParameters[i] + " " + (String) session.getAttribute(sessionParameters[i]))); + sql = Utils.replaceInString(sql, "[" + sessionParameters[i].toUpperCase() + "]", + (String) session.getAttribute(sessionParameters[i])); + } + } + logger.debug(EELFLoggerDelegate.debugLogger, ("After testRunSQL " + sql)); + try { + + ds = ConnectionUtils.getDataSet(sql, ff.getDbInfo(), true); + + QueryResultJSON queryResultJSON = new QueryResultJSON(); + queryResultJSON.setTotalRows(ds.getRowCount()); + + Map<String, String> dvJSON; + ArrayList<String> colList = new ArrayList<>(); + ArrayList<Map<String, String>> reportDataRows = new ArrayList<>(); + if (!ds.isEmpty()) { + + for (int i = 0; i < ds.getColumnCount(); i++) { + colList.add(ds.getColumnName(i)); + } + queryResultJSON.setReportDataColumns(colList); + if (queryResultJSON.getTotalRows() > 0) { + for (int r = 0; r < Math.min(ds.getRowCount(), 100); r++) { + dvJSON = new HashMap<>(); + for (int c = 0; c < ds.getColumnCount(); c++) { + try { + dvJSON.put(ds.getColumnName(c), ds.getString(r, c)); + } catch (Exception ex) { + logger.error(EELFLoggerDelegate.errorLogger, + "[Controller.processRequest]Invalid raptor action [retrieveDataForGivenQuery].", + ex); + } + } + reportDataRows.add(dvJSON); + + } + } + + } + queryResultJSON.setReportDataRows(reportDataRows); + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + + try { + jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(queryResultJSON); + raptorResponse.data().put("elements", jsonInString); + return raptorResponse; + + } catch (Exception ex) { + logger.error(EELFLoggerDelegate.errorLogger, + "[Controller.processRequest]Invalid raptor action [retrieveDataForGivenQuery]. RaptorException: ", + ex); + } + } catch (ReportSQLException ex) { + ErrorJSONRuntime errorJSONRuntime = new ErrorJSONRuntime(); + if (sql.contains("[")) { + errorJSONRuntime.setErrormessage( + "Formfield information is present in the query, hence couldn't execute"); + errorJSONRuntime + .setStacktrace("Formfield information is present in the query, hence couldn't execute"); + + + } else { + errorJSONRuntime.setErrormessage(ex.getMessage()); + } + ObjectMapper mapper = new ObjectMapper(); + + try { + jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(errorJSONRuntime); + raptorResponse.data().put("elements", jsonInString); + return raptorResponse; + + } catch (Exception ex1) { + logger.error(EELFLoggerDelegate.errorLogger, + "[Controller.processRequest]Invalid raptor action [retrieveDataForGivenQuery].", ex1); + } + } + + } + + raptorResponse.data().put("elements", jsonInString); + return raptorResponse; + } + public ReportJSONRuntime createReportJSONRuntime(HttpServletRequest request, ReportData rd) { String userId = AppUtils.getUserID(request); ObjectMapper mapper = new ObjectMapper(); @@ -2479,6 +2662,8 @@ public List getMapMarkers(ReportData rd, org.onap.portalsdk.analytics.xmlobj.Rep reportJSONRuntime.setAllowEdit(isAllowEdit(request)); reportJSONRuntime.setColIdxTobeFreezed(getFrozenColumnId()); reportJSONRuntime.setNumFormCols(getNumFormColsAsInt()); + reportJSONRuntime.setReportHeader(getReportHeader()); + reportJSONRuntime.setReportFooter(getReportFooter()); reportJSONRuntime.setBackBtnURL(""); String chartType = getChartType(); boolean displayChart = (nvl(chartType).length()>0)&&getDisplayChart(); @@ -2505,6 +2690,50 @@ public List getMapMarkers(ReportData rd, org.onap.portalsdk.analytics.xmlobj.Rep ffJSON.setHelpText(ff.getHelpText()); ffJSON.setValidationType(ff.getValidationType()); ffJSON.setVisible(ff.isVisible()); + ffJSON.setSetOrderBySeq(ff.getOrderBySeq()); + if (ff.getRangeStartDate() != null) + ffJSON.setRangeStartDate(convertCalendarToDate(ff.getRangeStartDate().getTime())); + if (ff.getRangeEndDate() != null) + ffJSON.setRangeEndDate(convertCalendarToDate(ff.getRangeEndDate().getTime())); + if (ff.getRangeStartDateSQL() != null) { + try { + RaptorResponse re = retrieveDataForGivenQuery(ff.getRangeStartDateSQL(), request, ff); + QueryResultJSON queryResultJSON = new QueryResultJSON(); + String resultDate = ""; + try { + JSONObject jsonObj = new JSONObject(re.getData()); + queryResultJSON = mapper.readValue(jsonObj.getString("elements"), QueryResultJSON.class); + resultDate = queryResultJSON.getReportDataRows().get(0).get("ID"); + + } catch (Exception e) { + resultDate = ""; + e.printStackTrace(); + } + ffJSON.setRangeStartDateSQL(resultDate); + } catch (RaptorException e) { + e.printStackTrace(); + } + } + + if (ff.getRangeEndDateSQL() != null) { + try { + RaptorResponse re = retrieveDataForGivenQuery(ff.getRangeEndDateSQL(), request, ff); + QueryResultJSON queryResultJSON = new QueryResultJSON(); + String resultDate = ""; + try { + JSONObject jsonObj = new JSONObject(re.getData()); + queryResultJSON = mapper.readValue(jsonObj.getString("elements"), QueryResultJSON.class); + resultDate = queryResultJSON.getReportDataRows().get(0).get("ID"); + + } catch (Exception e) { + resultDate = ""; + e.printStackTrace(); + } + ffJSON.setRangeEndDateSQL(resultDate); + } catch (RaptorException e) { + e.printStackTrace(); + } + } IdNameList lookup = null; lookup = ff.getLookupList(); String selectedValue = ""; @@ -2654,6 +2883,206 @@ public List getMapMarkers(ReportData rd, org.onap.portalsdk.analytics.xmlobj.Rep } + public ReportJSONRuntime createCrossTabReportJSONRuntime(HttpServletRequest request, ReportData rd) { + String userId = AppUtils.getUserID(request); + ObjectMapper mapper = new ObjectMapper(); + ReportJSONRuntime reportJSONRuntime = new ReportJSONRuntime(); + reportJSONRuntime.setReportTitle(getReportTitle()); + reportJSONRuntime.setReportID(getReportID()); + reportJSONRuntime.setReportDescr(getReportDescr()); + reportJSONRuntime.setReportName(getReportName()); + reportJSONRuntime.setReportSubTitle(getReportSubTitle()); + reportJSONRuntime.setAllowSchedule(isAllowSchedule()); + reportJSONRuntime.setAllowEdit(isAllowEdit(request)); + reportJSONRuntime.setColIdxTobeFreezed(getFrozenColumnId()); + reportJSONRuntime.setNumFormCols(getNumFormColsAsInt()); + reportJSONRuntime.setBackBtnURL(""); + reportJSONRuntime.setReportHeader(getReportHeader()); + reportJSONRuntime.setReportFooter(getReportFooter()); + String chartType = getChartType(); + boolean displayChart = (nvl(chartType).length()>0)&&getDisplayChart(); + boolean displayChartWizard = getDisplayChart(); + reportJSONRuntime.setChartAvailable(displayChart); + reportJSONRuntime.setChartWizardAvailable(displayChartWizard); + reportJSONRuntime.setDisplayData(!isDisplayOptionHideData()); + reportJSONRuntime.setDisplayForm(!isDisplayOptionHideForm()); + reportJSONRuntime.setHideFormFieldsAfterRun(isHideFormFieldAfterRun()); + reportJSONRuntime.setDisplayExcel(!isDisplayOptionHideExcelIcons()); + reportJSONRuntime.setDisplayPDF(!isDisplayOptionHidePDFIcons()); + reportJSONRuntime.setPageSize(getPageSize()); + + ArrayList<ColumnHeader> colList = new ArrayList<ColumnHeader>(); + ArrayList<Map<String,Object>> reportDataRows = new ArrayList<Map<String,Object>>(); + ArrayList<Map<String,Object>> reportTotalDataRows = new ArrayList<Map<String,Object>>(); + if(rd != null) { + reportJSONRuntime.setTotalRows(getReportDataSize()); + + Map<String, Object> dvJSON = null; + int commonRowCount = 0; + if (rd.getReportDataList().size() > 0) { + List reportCols = getAllColumns(); + List<DataColumnType> listofReportCols = new ArrayList<>(); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + listofReportCols.add(dc); + } + DataRow drows = (DataRow) rd.getReportDataList().get(0); + for (int j = 0; j < drows.getRowValues().size(); j++) { + DataValue dVal = drows.getRowValues().get(j); + ColumnHeader colHeader = new ColumnHeader(); + colHeader.setColId(dVal.getColId()); + colHeader.setColumnTitle(dVal.getDisplayName()); + DataColumnType matchingObject = listofReportCols.stream() + .filter(p -> p.getColId().equals(colHeader.getColId())).findAny().orElse(null); + + if (matchingObject != null) + colHeader.setVisible(matchingObject.isVisible()); + colList.add(colHeader); + commonRowCount++; + } + } + /* + * System.out.println("commonRowCount: "+commonRowCount); if(getReportDataSize() + * > 0) { int count = 0; for(int i =0 ; i < rd.getReportDataList().size() ; i++) + * { dvJSON = new HashMap<String,Object>(); DataRow drow = (DataRow) + * rd.getReportDataList().get(i); for(int j = 0 ; j<drow.getRowValues().size(); + * j++) { DataValue dVal = (DataValue) drow.getRowValues().get(j); + * dVal.setColId(colList.get(j).getColId()); + * dvJSON.put(colList.get(j).getColId(), dVal); + * System.out.println(dVal.toString()); } reportDataRows.add(dvJSON); } } + */ + + for (int i = 0; i < rd.getColumnVisuals().size(); i++) { + ColumnVisual col = (ColumnVisual) rd.getColumnVisuals().get(i); + ColumnHeader colHeader = new ColumnHeader(); + colHeader.setColId(col.getColId()); + colHeader.setColumnTitle(col.getColDisplay()); + colList.add(colHeader); + } + if(getReportDataSize() > 0) { + int count = 0; + for(int i =0 ; i < rd.getReportDataList().size() ; i++) { + dvJSON = new HashMap<String,Object>(); + DataRow drow = (DataRow) rd.getReportDataList().get(i); + for(int j = 0 ; j<drow.getDataValueList().size(); j++) { + DataValue dVal = (DataValue) drow.getDataValueList().get(j); + dVal.setColId(colList.get(j+commonRowCount).getColId()); + dvJSON.put(colList.get(j+commonRowCount).getColId(), dVal); + System.out.println(dVal.toString()); + } + for(int j = 0 ; j<drow.getRowValues().size(); j++) { + DataValue dVal = (DataValue) drow.getRowValues().get(j); + dVal.setColId(colList.get(j).getColId()); + dvJSON.put(colList.get(j).getColId(), dVal); + System.out.println(dVal.toString()); + } + reportDataRows.add(dvJSON); + } + } + } + reportJSONRuntime.setReportDataColumns(colList); + reportJSONRuntime.setReportDataRows(reportDataRows); + ArrayList<FormFieldJSON> formFieldJSONList = new ArrayList<FormFieldJSON>(); + ArrayList<IdNameValue> formFieldValues = new ArrayList<IdNameValue>(); + + if(getReportFormFields()!=null) { + formFieldJSONList = new ArrayList<FormFieldJSON>(getReportFormFields().size()); + for (Iterator iter = getReportFormFields().iterator(); iter.hasNext();) { + formFieldValues = new ArrayList<IdNameValue>(); + FormField ff = (FormField) iter.next(); + ff.setDbInfo(getDbInfo()); + FormFieldJSON ffJSON = new FormFieldJSON(); + ffJSON.setFieldId(ff.getFieldName()); + ffJSON.setFieldType(ff.getFieldType()); + ffJSON.setFieldDisplayName(ff.getFieldDisplayName()); + ffJSON.setHelpText(ff.getHelpText()); + ffJSON.setValidationType(ff.getValidationType()); + ffJSON.setVisible(ff.isVisible()); + IdNameList lookup = null; + lookup = ff.getLookupList(); + String selectedValue = ""; + String oldSQL = ""; + IdNameList lookupList = null; + boolean readOnly = false; + if(lookup!=null && rd == null) { + if(!ff.hasPredefinedList) { + IdNameSql lu = (IdNameSql) lookup; + String SQL = lu.getSql(); + oldSQL = lu.getSql(); + setTriggerFormFieldCheck( getReportFormFields(), ff); + ffJSON.setTriggerOtherFormFields(ff.isTriggerOtherFormFields()); + SQL = parseAndFillReq_Session_UserValues(request, SQL, userId); + SQL = parseAndFillWithCurrentValues(request, SQL, ff); + String defaultSQL = lu.getDefaultSQL(); + defaultSQL = parseAndFillReq_Session_UserValues(request, defaultSQL, userId); + defaultSQL = parseAndFillWithCurrentValues(request, defaultSQL, ff); + lookup = new IdNameSql(-1,SQL,defaultSQL); + + lookupList = lookup; + try { + lookup.loadUserData(0, "", ff.getDbInfo(), ff.getUserId()); + } catch (Exception e ){ e.printStackTrace(); + } + } + lookup.trimToSize(); + + String[] requestValue = request.getParameterValues(ff.getFieldName()); + + if(lookup != null && lookup.size() > 0) { + for (lookup.resetNext(); lookup.hasNext();) { + IdNameValue value = lookup.getNext(); + readOnly = value.isReadOnly(); + if(requestValue != null && Arrays.asList(requestValue).contains(value.getId())) { + value.setDefaultValue(true); + } else if (AppUtils.nvl(ff.getDefaultValue()).length()>0) { + if(ff.getDefaultValue().equals(value.getId())) { + value.setDefaultValue(true); + } + } + if(!(ff.getFieldType().equals(FormField.FFT_CHECK_BOX) || ff.getFieldType().equals(FormField.FFT_COMBO_BOX) || ff.getFieldType().equals(FormField.FFT_LIST_BOX) + || ff.getFieldType().equals(FormField.FFT_LIST_MULTI)) && value.isDefaultValue()) + formFieldValues.add(value); + else if(ff.getFieldType().equals(FormField.FFT_CHECK_BOX) || ff.getFieldType().equals(FormField.FFT_COMBO_BOX) || ff.getFieldType().equals(FormField.FFT_LIST_BOX) + || ff.getFieldType().equals(FormField.FFT_LIST_MULTI)) { + formFieldValues.add(value); + } + + } + } else { + if(requestValue!=null && requestValue.length>0) { + IdNameValue value = new IdNameValue(requestValue[0], requestValue[0], true, false); + formFieldValues.add(value); + } + } + + } else { + setTriggerFormFieldCheck( getReportFormFields(), ff); + ffJSON.setTriggerOtherFormFields(ff.isTriggerOtherFormFields()); + String[] requestValue = request.getParameterValues(ff.getFieldName()); + if(requestValue!=null && requestValue.length>0) { + IdNameValue value = new IdNameValue(requestValue[0], requestValue[0], true, false); + formFieldValues.add(value); + } else if (AppUtils.nvl(ff.getDefaultValue()).length()>0) { + IdNameValue value = new IdNameValue(ff.getDefaultValue(), ff.getDefaultValue(), true, false); + formFieldValues.add(value); + } + } + if(!ff.hasPredefinedList) { + if(oldSQL != null && !oldSQL.equals("") && lookup!=null) { + ((IdNameSql)lookup).setSQL(oldSQL); + } + } + ffJSON.setFormFieldValues(formFieldValues); + formFieldJSONList.add(ffJSON); + } // for + } + + + reportJSONRuntime.setFormFieldList(formFieldJSONList); + return reportJSONRuntime; + + } + public ReportJSONRuntime createFormFieldJSONRuntime(HttpServletRequest request) { String userId = AppUtils.getUserID(request); ObjectMapper mapper = new ObjectMapper(); |