summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportRuntime.java
diff options
context:
space:
mode:
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.java433
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();