diff options
author | talasila <talasila@research.att.com> | 2017-02-07 11:47:55 -0500 |
---|---|---|
committer | talasila <talasila@research.att.com> | 2017-02-07 12:51:32 -0500 |
commit | 1faf201e8608dfa4d7af3460fd3d1fc7ebec398b (patch) | |
tree | 2208f76271cc6b1a81dbfb9143cd7118b071a909 /ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/DbUtils.java | |
parent | ca23569858b8cc9f60010e193b7041feb2d3227b (diff) |
Initial OpenECOMP Portal SDK commit
Change-Id: I66a3491600a4b9ea241128dc29267eed6a78ed76
Signed-off-by: talasila <talasila@research.att.com>
Diffstat (limited to 'ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/DbUtils.java')
-rw-r--r-- | ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/DbUtils.java | 1298 |
1 files changed, 1298 insertions, 0 deletions
diff --git a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/DbUtils.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/DbUtils.java new file mode 100644 index 00000000..859931f9 --- /dev/null +++ b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/DbUtils.java @@ -0,0 +1,1298 @@ +/*- + * ================================================================================ + * eCOMP Portal SDK + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ================================================================================ + */ +package org.openecomp.portalsdk.analytics.system; + +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.sql.Types; + +import javax.sql.DataSource; + +import org.openecomp.portalsdk.analytics.error.RaptorException; +import org.openecomp.portalsdk.analytics.error.ReportSQLException; +import org.openecomp.portalsdk.analytics.model.runtime.ReportRuntime; +import org.openecomp.portalsdk.analytics.util.DataSet; +import org.openecomp.portalsdk.analytics.xmlobj.DataColumnType; +import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.openecomp.portalsdk.core.web.support.AppUtils; +import org.springframework.beans.factory.annotation.Autowired; + +public class DbUtils /* implements IDbUtils */{ + + static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(DbUtils.class); + + + + private static DataSource dataSource; + + + public DbUtils() { + } + + public static Connection getConnection() throws ReportSQLException { + try { + return AppUtils.getDatasource().getConnection(); + } catch(SQLException ex) { + ex.printStackTrace(); + } + return null; + //return Globals.getDbUtils().getConnection(); + } // getConnection + + public static void clearConnection(Connection con) throws ReportSQLException { + try { + if ((con != null) && !con.isClosed()) + Globals.getDbUtils().clearConnection(con); + } catch (SQLException ex) { + throw new ReportSQLException(ex.getMessage(), ex.getCause()); + } catch (Exception ex2 ) { + throw new ReportSQLException (ex2.getMessage(), ex2.getCause()); + } + } // clearConnection + + public static Connection startTransaction() throws ReportSQLException { + Connection con = null; + try { + con = getConnection(); + con.setAutoCommit(false); + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } catch (Exception ex2 ) { + throw new ReportSQLException (ex2.getMessage(), ex2.getCause()); + } + return con; + } // startTransaction + + public static void commitTransaction(Connection con) throws ReportSQLException { + try { + con.commit(); + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } catch (Exception ex2 ) { + throw new ReportSQLException (ex2.getMessage(), ex2.getCause()); + } + + //clearConnection(con); + } // commitTransaction + + public static void rollbackTransaction(Connection con) throws ReportSQLException { + try { + con.rollback(); + clearConnection(con); + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } catch (Exception ex2 ) { + throw new ReportSQLException (ex2.getMessage(), ex2.getCause()); + } + } // rollbackTransaction + + public static String executeCall(Connection con, String sql, boolean expectResult) + throws ReportSQLException { + String result = null; + + try { + if(con.isClosed()) con = getConnection(); + logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL Call] " + sql)); + CallableStatement stmt = con.prepareCall(sql); + if (expectResult) + stmt.registerOutParameter(1, Types.CHAR); + stmt.executeUpdate(); + if (expectResult) + result = stmt.getString(1); + stmt.close(); + con.commit(); + } catch (SQLException e) { + throw new ReportSQLException(e.getMessage(), sql); + } finally { + clearConnection(con); + } + + return result; + } // executeCall + + public static String executeCall(String sql, boolean expectResult) + throws RaptorException { + Connection con = null; + con = getConnection(); + String result = executeCall(con, sql, expectResult); + //con.commit(); + return result; + } // executeCall + + public static int executeUpdate(Connection con, String sql) throws ReportSQLException { + int rcode = -1; + try { + Statement stmt = con.createStatement(); + logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL Update] " + sql)); + rcode = stmt.executeUpdate(sql); + stmt.close(); + //con.commit(); + } catch (SQLException e) { + //e.printStackTrace(); + throw new ReportSQLException(e.getMessage(), sql); + } + return rcode; + } // executeUpdate + + /* public static int batchUpdate(Connection con, String sql) throws ReportSQLException, Exception { + int rcode = -1; + try { + Statement stmt = con.createStatement(); + debugLogger.debug("[SQL CALL FROM RAPTOR] [SQL Update] " + sql, 4); + rcode = stmt.executeUpdate(sql); + stmt.close(); + } catch (SQLException e) { + e.printStackTrace(); + throw new ReportSQLException(e.getMessage(), sql); + } + return rcode; + } // batchUpdate +*/ + + public static int executeUpdate(String sql) throws ReportSQLException { + Connection con = null; + try { + con = getConnection(); + int rcode = executeUpdate(con, sql); + if(Globals.getDBType().equals("oracle")) + con.commit(); + + return rcode; + } catch (SQLException e) { + throw new ReportSQLException(e.getMessage(), sql); + } finally { + clearConnection(con); + } + } // executeUpdate + + public static DataSet executeQuery(Connection con, String sql) throws ReportSQLException { + return executeQuery(con, sql, Integer.MAX_VALUE); + } // executeQuery + + public static DataSet executeQuery(Connection con, String sql, int maxRowLimit) + throws ReportSQLException { + try { + if(con.isClosed()) con = getConnection(); + //con. + Statement stmt = con.createStatement(); + + logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL] " + sql)); + ResultSet rs = stmt.executeQuery(sql); + DataSet ds = new DataSet(rs, maxRowLimit); + + if(rs!=null) + rs.close(); + if(stmt!=null) + stmt.close(); + + return ds; + } catch (SQLException e) { + throw new ReportSQLException(e.getMessage(), sql); + } + } // executeQuery + + public static DataSet executeQuery(String sql) throws ReportSQLException { + return executeQuery(sql, Integer.MAX_VALUE); + } // executeQuery + + public static DataSet executeQuery(String sql, int maxRowLimit) throws ReportSQLException { + Connection con = null; + try { + con = getConnection(); + return executeQuery(con, sql, maxRowLimit); + }catch (ReportSQLException ex) { + logger.error(EELFLoggerDelegate.debugLogger, ("Error " + sql)); + throw new ReportSQLException(ex.getMessage(), ex); + }catch(Exception ex1) { + throw new ReportSQLException(ex1.getMessage(), ex1.getCause()); + } finally { + clearConnection(con); + } + } // executeQuery + + //For ZK Support + + public static int executeQuery(ReportRuntime rr, int dateOption) { + Connection con = null; + int rowCount = 0; + try { + con = ConnectionUtils.getConnection(rr.getDBInfo()); + String wholeSql = rr.getWholeSQL(); + + DataColumnType dc = rr.getColumnWhichNeedEnhancedPagination(); + String date_ColId = dc.getColId(); + String dataFormat = dc.getColFormat(); + if(dataFormat!=null && dataFormat.length()>0) + date_ColId = "to_date("+date_ColId+", '"+ dataFormat +"')"; + String sql = ""; + if(dateOption == 1) + sql = "select count(distinct to_char("+date_ColId+", 'YYYY/MM')) from ("+wholeSql+")"; + else if (dateOption == 3) + sql = "select count(distinct to_char("+date_ColId+", 'YYYY/MM/DD')) from ("+wholeSql+")"; + else if (dateOption == 2) + sql = "select count(distinct to_char("+date_ColId+", 'YYYY')) from ("+wholeSql+")"; + DataSet ds = executeQuery(con, sql.toString()); + rowCount = ds.getInt(0,0); + } catch (ReportSQLException ex) { + ex.printStackTrace(); + }catch(Exception ex1) { + ex1.printStackTrace(); + } finally { + try { + clearConnection(con); + } catch (ReportSQLException ex2) { + ex2.printStackTrace(); + } + } + return rowCount; + } + +// public static List executeQuery(ReportRuntime rr, String filterClause, int itemStartNumber, int itemEndNumber, boolean topDown, String _orderBy, boolean asc, RaptorRunHandler raptorRunHandler) { +// Connection con = null; +// List rowList = new ArrayList(); +// String totalSql = raptorRunHandler.getTotalSql(); +// ReportData rd = null; +// boolean totalAvailable = false; +// if(nvls(totalSql).length()>0) totalAvailable = true; +// /*if(totalAvailable) { +// if(itemStartNumber > 0) itemStartNumber--; +// itemEndNumber--; +// //if(itemEndNumber > 2) itemEndNumber = itemEndNumber - 2; +// }*/ +// try { +// +// +// +// con = ConnectionUtils.getConnection(rr.getDBInfo()); +// //if client side sorting is needed we could disable the comment line below for quicker development +// // until we do it in "client" end. +// //StringBuffer sql = new StringBuffer(rr.getReportSQLWithRowNum()); +// StringBuffer sql = new StringBuffer(""); +// String dbType = raptorRunHandler.getDbType(); +// if(rr.getDateOption() == -1) { +// if (!dbType.equals("DAYTONA")) { +// sql = new StringBuffer(rr.getReportSQLWithRowNum(_orderBy, asc)); +// //if( /*itemEndNumber > 1 &&*/ itemEndNumber > itemStartNumber) +// if(topDown) { +// sql.append(")"+ (Globals.isPostgreSQL()?" AS ":"") +" y"); +// +// if(Globals.getDBType().equals("postgresql")) +// sql.append(" WHERE RNUM < " + (itemEndNumber)); +// else +// sql.append(" WHERE ROWNUM < " + (itemEndNumber)); +// } +// else { +// //sql.append(" WHERE ROWNUM <= " + (itemEndNumber)); +// String a_sql = Globals.getReportSqlOnlySecondPartA(); +// a_sql = a_sql.replace("[endRow]", String.valueOf(itemEndNumber)); +// String b_sql = Globals.getReportSqlOnlySecondPartBNoOrderBy(); +// b_sql = b_sql.replace("[startRow]", String.valueOf(itemStartNumber)); +// sql.append(") "+ (Globals.isPostgreSQL()?" AS ":"") +" a "); +// sql.append(a_sql); +// sql.append(b_sql); +// +// } +// // sql.append(" ) y WHERE rnum >= " + (topDown?itemStartNumber:(itemStartNumber+1))); +// if(nvls(_orderBy).length()>0) +// sql.append(" ORDER BY "+ _orderBy + " "+ (asc ? "ASC" : "DESC")); +// else +// sql.append(" ORDER BY rnum"); +// // sql = String.format(sql, _orderBy, asc ? "ASC" : "DESC"); +// } else { +// sql = new StringBuffer(rr.getWholeSQL()); +// if( sql.toString().trim().toUpperCase().startsWith("SELECT")) { +// sql.append(" LIMIT TO "+ (itemStartNumber+1)+"->"+itemEndNumber); +// } +// //return sql; +// } +// System.out.println("ZK RAPTOR RUN " + sql); +// } else { +// String wholeSql = rr.getWholeSQL(); +// DataColumnType dc = rr.getColumnWhichNeedEnhancedPagination(); +// String date_ColId = dc.getColId(); +// String dataFormat = dc.getColFormat(); +// if(dataFormat!=null && dataFormat.length()>0) +// date_ColId = "to_date("+date_ColId+", '"+ dataFormat +"')"; +// StringBuffer dateSql = new StringBuffer(" select y.rownum1, y.datetime from (select rownum rownum1, datetime from "); +// if(rr.getDateOption() == 1) { +// dateSql.append( "(select distinct to_char("+date_ColId+", 'YYYY/MM') datetime from ( " + wholeSql + ") order by 1 desc"); +// } else if (rr.getDateOption() == 2) { +// dateSql.append( "(select distinct to_char("+date_ColId+", 'YYYY') datetime from ( " + wholeSql + ") order by 1 desc"); +// } else if (rr.getDateOption() == 3) { +// dateSql.append( "(select distinct to_char("+date_ColId+", 'YYYY/MM/DD') datetime from ( " + wholeSql + ") order by 1 desc"); +// } +// dateSql.append(")) y where y.rownum1 = "+ (itemStartNumber+1)); +// DataSet ds = executeQuery(con, dateSql.toString()); +// String dateStr = ""; +// if(ds.getRowCount() > 0) +// dateStr = ds.getString(0,1); +// +// sql = new StringBuffer(rr.getReportSQLWithRowNum(_orderBy, asc)); +// if(rr.getDateOption() == 1) { +// sql.append(" WHERE to_char("+ date_ColId + ", 'YYYY/MM') = '"+ dateStr +"')"); +// } else if (rr.getDateOption() == 2) { +// sql.append(" WHERE to_char("+ date_ColId + ", 'YYYY') = '"+ dateStr +"')"); +// } else if (rr.getDateOption() == 3) { +// sql.append(" WHERE to_char("+ date_ColId + ", 'YYYY/MM/DD') = '"+ dateStr +"')"); +// } +// if(nvls(_orderBy).length()>0) +// sql.append(" ORDER BY "+ _orderBy + " "+ (asc ? "ASC" : "DESC")); +// else +// sql.append(" ORDER BY rnum"); +// System.out.println("ZK RAPTOR RUN MONTHLY " + sql); +// } +// +// debugLogger.error(" ************** just a test **************** "); +// debugLogger.error(" SQL " + sql); +// debugLogger.error(" ******************************************* "); +// +// DataSet ds = ConnectionUtils.getDataSet(sql.toString(), rr.getDBInfo()); +// DataSet ds1 = null; +// //DataSet ds = executeQuery(sql.toString()); +// List reportCols = rr.getAllColumns(); +// Vector formatProcessors = new Vector(reportCols.size()); +// +// String oldValue = ""; +// String value = ""; +// String groupByColValue = ""; +// int subTotalFlag = -1; +// //String newValue = ""; +// for (int r = 0; r < ds.getRowCount(); r++) { +// DataRow dr = new DataRow(); +// //rd.reportDataRows.addDataRow(dr); +// //rd = raptorRunHandler.getReportData(); +// //RowHeaderCol rhc = new RowHeaderCol(); +// //reportRowHeaderCols.addRowHeaderCol(0, rhc); +// //rhc.setColumnWidth("5%"); +// int formatCount = -1; //added for auxillary head check +// String drillDownURL = ""; +// +// int changedFlag = 0; +// for (int c = 0; c < reportCols.size(); c++) { +// if(reportCols.get(c)!=null) { +// DataColumnType dct = (DataColumnType) reportCols.get(c); +// if(dct.getLevel()!=null && dct.getLevel() > 0) continue; +// else formatCount++; +// // +// formatProcessors.add(formatCount,new FormatProcessor( +// rr.getSemaphoreById(dct.getSemaphoreId()), dct.getColType(), dct +// .getColFormat(), rr.getReportDefType().equals( +// AppConstants.RD_SQL_BASED))); +// // +// if(!(dct.getColName().startsWith("[") && dct.getDisplayName() == null)) { +// value = ""; +// +// if(ds.getColumnIndex(dct.getColId())!= -1) { +// value = ds.getString(r, dct.getColId()); +// if(dct.getGroupByPos()!=null && dct.getGroupByPos()>0) { +// groupByColValue = ds.getString(r, dct.getColId()); +// if(oldValue.length()> 0 && !oldValue.equals(groupByColValue)) { +// //newValue = value; +// if(subTotalFlag > 0) { +// changedFlag = -1; +// oldValue = groupByColValue; +// subTotalFlag = 0; +// } else { +// changedFlag = 1; +// //oldValue = groupByColValue; +// r--; +// } +// } else if (oldValue.length()<=0) { +// oldValue = groupByColValue; +// changedFlag = -1; +// } else if (oldValue.equals(groupByColValue)) { +// //oldValue = value; +// changedFlag = 0; +// } +// } +// } +// +// if(changedFlag > 0) { +// StringBuffer subTotalSql = new StringBuffer(" select "); +// StringBuffer whereClause = new StringBuffer(""); +// //get all colids +// for (int d = 0; d < reportCols.size(); d++) { +// if(reportCols.get(d)!=null) { +// DataColumnType dct1 = (DataColumnType) reportCols.get(d); +// if(dct1.getGroupByPos()!=null && dct1.getGroupByPos()>0){ +// subTotalSql.append(dct1.getColId() + " " ); +// whereClause.append(" where "+ dct1.getColId() + " = '" + oldValue + "' " + " group by "+ dct1.getColId() ); +// } +// if(dct1.getDisplayTotal()!=null && dct1.getDisplayTotal().length() > 0) { +// subTotalSql.append(", sum("+dct1.getColId()+")"); +// } +// } +// } +// +// subTotalSql.append(" from ("); +// subTotalSql.append(rr.getWholeSQL()); +// subTotalSql.append (")"); +// subTotalSql.append(whereClause); +// ds1 = ConnectionUtils.getDataSet(subTotalSql.toString(),rr.getDbInfo()); +// dr = new DataRow(); +// DataValue dv = new DataValue(); +// int count = 0; +// //dv.setColName("#"); +// for (int c1 = 0; c1 < reportCols.size(); c1++) { +// dct = (DataColumnType) reportCols.get(c1); +// if(dct.getLevel()!=null && dct.getLevel() > 0) continue; +// if ( dct != null && dct.isVisible()) { +// count++; +// +// dv = new DataValue(); +// //if(count==1) { +// if(dct.getGroupByPos()!=null && dct.getGroupByPos()>0) { +// dr.addDataValue(dv); +// if(AppUtils.nvl(dct.getSubTotalCustomText()).length()>0) { +// dv.setDisplayValue(dct.getSubTotalCustomText()); +// } else { +// dv.setDisplayValue("Sub Total"); +// } +// dv.setColName(dct.getColName()); +// dv.setDisplayName(dct.getDisplayName()); +// dv.setColId(dct.getColId()); +// dv.setBold(true); +// } else { +// if(dct.getDisplayTotal()!=null && dct.getDisplayTotal().length() > 0) { +// dr.addDataValue(dv); +// String subtotalValue = ""; +// if (ds1 != null) { +// subtotalValue = ds1.getString(0, "sum("+dct.getColId()+")"); +// dv.setDisplayValue(Utils.truncateTotalDecimals(subtotalValue)); +// } else { +// dv.setDisplayValue(""); +// } +// } else { +// if(dv.isVisible()) +// dr.addDataValue(dv); +// dv.setDisplayValue(""); +// } +// dv.setAlignment(dct.getDisplayAlignment()); +// dv.setColName(dct.getColName()); +// dv.setDisplayName(dct.getDisplayName()); +// dv.setColId(dct.getColId()); +// dv.setNowrap(nvl(dct.getNowrap(),"null").equals("false")?"null":nvl(dct.getNowrap(),"null")); +// dv.setIndentation(new Integer((dct.getIndentation()==null)?new Integer("0"):dct.getIndentation()).toString()); +// dv.setDisplayTotal(dct.getDisplayTotal()); +// dv.setBold(true); +// } +// } // dct check +// } // for +// //if(!topDown) { +// //rowList.add(dr); +// //} +// //oldValue = value; +// if(changedFlag == 1) changedFlag = 0; +// subTotalFlag = 1; +// } else { +// +// if(nvls(value).length()>0 && !nvls(value).equals("'")) { +// DataValue dv = new DataValue(); +// dr.addDataValue(dv); +// if(dct.getGroupByPos()!=null && dct.getGroupByPos()>0) { +// if(changedFlag == 0) { +// dv.setDisplayValue(""); +// } else { +// dv.setDisplayValue(nvls(value)); +// } +// } else { +// dv.setDisplayValue(nvls(value)); +// } +// dv.setColName(dct.getColName()); +// dv.setColId(dct.getColId()); +// if(dct.getColType().equals(AppConstants.CT_HYPERLINK)) { +// dv.setHyperlinkURL(dct.getHyperlinkURL()); +// dv.setDisplayType(dct.getHyperlinkType()); +// if(dct.getHyperlinkType().equals("IMAGE")) +// dv.setActionImg(dct.getActionImg()); +// } +// dv.setIndentation(new Integer((dct.getIndentation()==null)?new Integer("0"):dct.getIndentation()).toString()); +// //dv.setNowrap(nvl(dct.getNowrap(),"null").equals("false")?"null":nvl(dct.getNowrap(),"null")); +// if(dct.isVisible()) { +// +// dv.setVisible(true); +// dv.setAlignment(dct.getDisplayAlignment()); +// dv.setDisplayTotal(dct.getDisplayTotal()); +// dv.setDisplayName(dct.getDisplayName()); +// dv.setNowrap(nvl(dct.getNowrap(),"null").equals("false")?"null":nvl(dct.getNowrap(),"null")); +// //Add Drilldown URL to dv +// if (nvls(dct.getDrillDownURL()).length() > 0) { +// +// if(dv.getDisplayValue().length() > 0) { +// dv.setDrillDownURL(raptorRunHandler.parseDrillDownURL(r, /* c, */ds, dct,null)); +// dv.setDrillDowninPoPUp(dct.isDrillinPoPUp()!=null?dct.isDrillinPoPUp():false); +// } +// +// if (dv.getDisplayValue().length() == 0) { +// //dv.setDisplayValue("[NULL]"); +// dv.setDisplayValue(""); +// } +// } // if +// +// } else { +// dv.setVisible(false); +// dv.setHidden(true); +// } +// //System.out.println("in Linear report b4" + dr.getFormatId() + dr.getBgColorHtml() + dv.getDisplayValue()); +// +// /* if(dr.getFormatId()!=null) +// ((FormatProcessor) formatProcessors.get(formatCount)).setHtmlFormatters(dv, dr, true); +// else +// ((FormatProcessor) formatProcessors.get(formatCount)).setHtmlFormatters(dv, dr, false); +// */ +// +// //System.out.println("in Linear report After" + dr.getFormatId() + dr.getBgColorHtml() + dv.getDisplayValue()); +// +// if(topDown) { +// if(!dv.getColId().endsWith("_calc") && dv.isVisible()) +// rowList.add(dv); +// for (int cInner = 0; cInner < reportCols.size(); cInner++) { +// if(reportCols.get(cInner)!=null) { +// DataColumnType dctInner = (DataColumnType) reportCols.get(cInner); +// if((dv.getColId()+"_calc").equals(dctInner.getColId())) { +// /* DataValue dvInner = new DataValue(); +// dvInner.setDisplayValue(ds.getString(r, c)); +// dvInner.setColName(dct.getColName()); +// dvInner.setColId(dct.getColId()); +// rowList.add(dvInner); +// */ dv.setDisplayCalculatedValue(ds.getString(r, dctInner.getColId())); +// } +// } +// } +// } +// } else { //dv value check +// DataValue dv = new DataValue(); +// dr.addDataValue(dv); +// dv.setDisplayValue(nvls(value)); +// dv.setColName(dct.getColName()); +// dv.setColId(dct.getColId()); +// if(dct.isVisible()) +// dv.setVisible(true); +// else +// dv.setVisible(false); +// /* if(dr.getFormatId()!=null) +// ((FormatProcessor) formatProcessors.get(formatCount)).setHtmlFormatters(dv, dr, true); +// else +// ((FormatProcessor) formatProcessors.get(formatCount)).setHtmlFormatters(dv, dr, false); +// */ +// +// if(topDown) { +// if(!dv.getColId().endsWith("_calc") && dv.isVisible()) +// rowList.add(dv); +// for (int cInner = 0; cInner < reportCols.size(); cInner++) { +// if(reportCols.get(cInner)!=null) { +// DataColumnType dctInner = (DataColumnType) reportCols.get(cInner); +// if((dv.getColId()+"_calc").equals(dctInner.getColId())) { +// dv.setDisplayCalculatedValue(ds.getString(r, cInner)); +// } +// } +// } +// } +// } +// } //changedFlag > 1 +// } +// } // if reportCols +// +// +// } // for +// +// //format +// +// for (int c = 0; c < reportCols.size(); c++) { +// if(reportCols.get(c)!=null) { +// DataColumnType dct = (DataColumnType) reportCols.get(c); +// //Modified since ds is null. +// DataValue dv = new DataValue(); +// dv = dr.getDataValue(c); +// if(dr.getFormatId()!=null) +// ((FormatProcessor) formatProcessors.get(c)).setHtmlFormatters(dv, dr, true); +// else +// ((FormatProcessor) formatProcessors.get(c)).setHtmlFormatters(dv, dr, false); +// } +// } +// //add dr to rowList after all column is done. +// if(!topDown) { +// rowList.add(dr); +// } +// } // for +// +///* //rd.addRowNumbers(pageNo, getPageSize()); +// rd = raptorRunHandler.getReportData(); +// RowHeaderCol rhc = new RowHeaderCol(); +// rd.reportRowHeaderCols.addRowHeaderCol(0, rhc); +// rhc.setColumnWidth("5%"); +// rhc.add(new RowHeader(""#, "15")); +//*/ +// +// //String totalSql = raptorRunHandler.getTotalSql(); +// +// if(subTotalFlag >=0) { +// StringBuffer subTotalSql = new StringBuffer(" select "); +// StringBuffer whereClause = new StringBuffer(""); +// //get all colids +// for (int d = 0; d < reportCols.size(); d++) { +// if(reportCols.get(d)!=null) { +// DataColumnType dct1 = (DataColumnType) reportCols.get(d); +// if(dct1.getGroupByPos()!=null && dct1.getGroupByPos()>0){ +// subTotalSql.append(dct1.getColId() + " " ); +// whereClause.append(" where "+ dct1.getColId() + " = '" + oldValue + "' " + " group by "+ dct1.getColId() ); +// } +// if(dct1.getDisplayTotal()!=null && dct1.getDisplayTotal().length() > 0) { +// subTotalSql.append(", sum("+dct1.getColId()+")"); +// } +// } +// } +// +// subTotalSql.append(" from ("); +// subTotalSql.append(rr.getWholeSQL()); +// subTotalSql.append (")"); +// subTotalSql.append(whereClause); +// ds1 = ConnectionUtils.getDataSet(subTotalSql.toString(),rr.getDbInfo()); +// DataRow dr = new DataRow(); +// DataValue dv = new DataValue(); +// int count = 0; +// //dv.setColName("#"); +// DataColumnType dct = null; +// for (int c1 = 0; c1 < reportCols.size(); c1++) { +// dct = (DataColumnType) reportCols.get(c1); +// if(dct.getLevel()!=null && dct.getLevel() > 0) continue; +// if ( dct != null && dct.isVisible()) { +// count++; +// +// dv = new DataValue(); +// //if(count==1) { +// if(dct.getGroupByPos()!=null && dct.getGroupByPos()>0) { +// dr.addDataValue(dv); +// if(AppUtils.nvl(dct.getSubTotalCustomText()).length()>0) { +// dv.setDisplayValue(dct.getSubTotalCustomText()); +// } else { +// dv.setDisplayValue("Sub Total"); +// } +// dv.setColName(dct.getColName()); +// dv.setDisplayName(dct.getDisplayName()); +// dv.setColId(dct.getColId()); +// dv.setBold(true); +// } else { +// if(dct.getDisplayTotal()!=null && dct.getDisplayTotal().length() > 0) { +// dr.addDataValue(dv); +// String subtotalValue = ""; +// if (ds1 != null) { +// subtotalValue = ds1.getString(0, "sum("+dct.getColId()+")"); +// dv.setDisplayValue(Utils.truncateTotalDecimals(subtotalValue)); +// } else { +// dv.setDisplayValue(""); +// } +// } else { +// if(dv.isVisible()) +// dr.addDataValue(dv); +// dv.setDisplayValue(""); +// } +// dv.setAlignment(dct.getDisplayAlignment()); +// dv.setColName(dct.getColName()); +// dv.setDisplayName(dct.getDisplayName()); +// dv.setColId(dct.getColId()); +// dv.setNowrap(nvl(dct.getNowrap(),"null").equals("false")?"null":nvl(dct.getNowrap(),"null")); +// dv.setIndentation(new Integer((dct.getIndentation()==null)?new Integer("0"):dct.getIndentation()).toString()); +// dv.setDisplayTotal(dct.getDisplayTotal()); +// dv.setBold(true); +// } +// } // dct check +// } // for +// if(!topDown) { +// rowList.add(dr); +// } +// } +// if(nvls(totalSql).length()>0) { +// ds = ConnectionUtils.getDataSet(totalSql,rr.getDbInfo()); +// DataRow dr = new DataRow(); +// DataValue dv = new DataValue(); +// int count = 0; +// //dv.setColName("#"); +// for (int c = 0; c < reportCols.size(); c++) { +// DataColumnType dct = (DataColumnType) reportCols.get(c); +// if(dct.getLevel()!=null && dct.getLevel() > 0) continue; +// if ( dct != null && dct.isVisible()) { +// count++; +// +// dv = new DataValue(); +// if(count==1) { +// dr.addDataValue(dv); +// dv.setDisplayValue("Total (for all Records)"); +// dv.setColName(dct.getColName()); +// dv.setDisplayName(dct.getDisplayName()); +// dv.setColId(dct.getColId()); +// dv.setBold(true); +// } else { +// if(dv.isVisible()) +// dr.addDataValue(dv); +// +// String totalValue = ""; +// if (ds != null) +// totalValue = ds.getString(0, "TOTAL_"+dct.getColId()); +// if (nvls(dct.getDisplayTotal()).length() > 0 +// && (!dct.getDisplayTotal().equals(AppConstants.TOTAL_SUM_ID))) +// totalValue = nvls(AppConstants.TOTAL_FUNCTIONS.getNameById(dct +// .getDisplayTotal())) +// + ": " + totalValue; +// dv.setDisplayValue(Utils.truncateTotalDecimals(totalValue)); +// +// dv.setAlignment(dct.getDisplayAlignment()); +// dv.setColName(dct.getColName()); +// dv.setDisplayName(dct.getDisplayName()); +// dv.setColId(dct.getColId()); +// dv.setNowrap(nvl(dct.getNowrap(),"null").equals("false")?"null":nvl(dct.getNowrap(),"null")); +// /*StringBuffer indentation = new StringBuffer(""); +// if(dct.getIndentation()!=null && dct.getIndentation()>0) { +// for (int indent=0; indent< dct.getIndentation(); indent++) { +// indentation.append("\t"); +// } +// dv.setNowrap("true"); +// } +// dv.setIndentation(indentation.toString());*/ +// dv.setIndentation(new Integer((dct.getIndentation()==null)?new Integer("0"):dct.getIndentation()).toString()); +// dv.setDisplayTotal(dct.getDisplayTotal()); +// dv.setBold(true); +// } +// } // dct check +// } // for +// if(!topDown) { +// rowList.add(dr); +// } +// +// } +// +// +// +// } catch (ReportSQLException ex) { +// ex.printStackTrace(); +// }catch(Exception ex1) { +// ex1.printStackTrace(); +// } finally { +// try { +// clearConnection(con); +// } catch (ReportSQLException ex2) { +// ex2.printStackTrace(); +// } +// } +// return rowList; +// } + + + //For ZK Support + +// public static List executeQuery(ReportRuntime rr, String filterClause, int itemStartNumber, int itemEndNumber, boolean topDown, String _orderBy, boolean asc, DashboardReportRunHandler dashboardReportRunHandler) { +// Connection con = null; +// List rowList = new ArrayList(); +// String totalSql = rr.getTotalSql(); +// boolean totalAvailable = false; +// if(nvls(totalSql).length()>0) totalAvailable = true; +// if(totalAvailable) { +// itemStartNumber--; +// itemEndNumber--; +// } +// try { +// con = ConnectionUtils.getConnection(rr.getDBInfo()); +// //if client side sorting is needed we could disable the comment line below for quicker development +// // until we do it in "client" end. +// //StringBuffer sql = new StringBuffer(rr.getReportSQLWithRowNum()); +// StringBuffer sql = new StringBuffer(""); +// if (!rr.getReportType().equals(AppConstants.RT_HIVE)) { +// sql = new StringBuffer(rr.getReportSQLWithRowNum(_orderBy, asc)); +// //if( /*itemEndNumber > 1 &&*/ itemEndNumber > itemStartNumber) +// +// if(topDown) { +// sql.append(") "+ (Globals.isPostgreSQL()?" AS ":"") +" y"); +// if(Globals.getDBType().equals("postgresql")) +// sql.append(" WHERE RNUM < " + (itemEndNumber)); +// else +// sql.append(" WHERE ROWNUM < " + (itemEndNumber)); +// } +// else { +// //sql.append(" WHERE ROWNUM <= " + (itemEndNumber)); +// String a_sql = Globals.getReportSqlOnlySecondPartA(); +// a_sql = a_sql.replace("[endRow]", String.valueOf(itemEndNumber)); +// String b_sql = Globals.getReportSqlOnlySecondPartBNoOrderBy(); +// b_sql = b_sql.replace("[startRow]", String.valueOf(itemStartNumber)); +// sql.append(") "+ (Globals.isPostgreSQL()?" AS ":"") +" a "); +// sql.append(a_sql); +// sql.append(b_sql); +// } +// +// // sql.append(" ) y WHERE rnum >= " + (topDown?itemStartNumber:(itemStartNumber+1))); +// if(nvls(_orderBy).length()>0) +// sql.append(" ORDER BY "+ _orderBy + " "+ (asc ? "ASC" : "DESC")); +// else +// sql.append(" ORDER BY rnum"); +// // sql = String.format(sql, _orderBy, asc ? "ASC" : "DESC"); +// +// /*//sql.append(" WHERE ROWNUM <= " + (topDown?itemEndNumber:(itemEndNumber))); +// sql.append(" ) y WHERE rnum >= " + (topDown?itemStartNumber:(itemStartNumber+1))); +// if(nvls(_orderBy).length()>0) +// sql.append(" ORDER BY "+ _orderBy + " "+ (asc ? "ASC" : "DESC")); +// else +// sql.append(" ORDER BY rnum"); +// // sql = String.format(sql, _orderBy, asc ? "ASC" : "DESC");*/ +// itemStartNumber = 0; +// } else { +// sql.append(rr.getWholeSQL()); +// int count = rr.getReportDataSize(); +// System.out.println("Count "+ count+ " " + itemEndNumber); +// if(count < itemEndNumber) +// sql.append(" " + "limit "+ count); +// else +// sql.append(" " + "limit "+ itemEndNumber); +// } +// System.out.println("ZK RAPTOR RUN " + sql); +// DataSet ds = null; +// if (!rr.getReportType().equals(AppConstants.RT_HIVE)) { +// ds = executeQuery(con, sql.toString()); +// } else { +// String dbInfo = rr.getDBInfo(); +// ds = ConnectionUtils.getDataSet(sql.toString(), dbInfo); +// } +// List reportCols = rr.getAllColumns(); +// Vector formatProcessors = new Vector(reportCols.size()); +// +// for (int r = itemStartNumber; r < ds.getRowCount(); r++) { +// DataRow dr = new DataRow(); +// //rd.reportDataRows.addDataRow(dr); +// +// int formatCount = -1; //added for auxillary head check +// for (int c = 0; c < reportCols.size(); c++) { +// if(reportCols.get(c)!=null) { +// DataColumnType dct = (DataColumnType) reportCols.get(c); +// if(dct.getLevel()!=null && dct.getLevel() > 0) continue; +// else formatCount++; +// // +// formatProcessors.add(formatCount,new FormatProcessor( +// rr.getSemaphoreById(dct.getSemaphoreId()), dct.getColType(), dct +// .getColFormat(), rr.getReportDefType().equals( +// AppConstants.RD_SQL_BASED))); +// // +// if(!(dct.getColName().startsWith("[") && dct.getDisplayName() == null)) { +// String value = ""; +// if(ds.getColumnIndex(dct.getColId())!= -1) { +// value = ds.getString(r, dct.getColId()); +// } +// if(nvls(value).length()>0 && !nvls(value).equals("'")) { +// DataValue dv = new DataValue(); +// dr.addDataValue(dv); +// dv.setDisplayValue(nvls(value)); +// dv.setColName(dct.getColName()); +// dv.setColId(dct.getColId()); +// if(dct.getColType().equals(AppConstants.CT_HYPERLINK)) { +// dv.setHyperlinkURL(dct.getHyperlinkURL()); +// dv.setDisplayType(dct.getHyperlinkType()); +// if(dct.getHyperlinkType().equals("IMAGE")) +// dv.setActionImg(dct.getActionImg()); +// } +// dv.setIndentation(new Integer((dct.getIndentation()==null)?new Integer("0"):dct.getIndentation()).toString()); +// //dv.setNowrap(nvl(dct.getNowrap(),"null").equals("false")?"null":nvl(dct.getNowrap(),"null")); +// if(dct.isVisible()) { +// +// dv.setVisible(true); +// dv.setAlignment(dct.getDisplayAlignment()); +// dv.setDisplayTotal(dct.getDisplayTotal()); +// dv.setDisplayName(dct.getDisplayName()); +// +// //Add Drilldown URL to dv +// if (nvls(dct.getDrillDownURL()).length() > 0) { +// +// if(dv.getDisplayValue().length() > 0) { +// dv.setDrillDownURL(dashboardReportRunHandler.parseDrillDownURL(r, /* c, */ds, dct,null,rr)); +// dv.setDrillDowninPoPUp(dct.isDrillinPoPUp()!=null?dct.isDrillinPoPUp():false); +// } +// +// if (dv.getDisplayValue().length() == 0) { +// //dv.setDisplayValue("[NULL]"); +// dv.setDisplayValue(""); +// } +// } // if +// +// } else { +// dv.setVisible(false); +// dv.setHidden(true); +// } +// //System.out.println("in Linear report b4" + dr.getFormatId() + dr.getBgColorHtml() + dv.getDisplayValue()); +// +// /* if(dr.getFormatId()!=null) +// ((FormatProcessor) formatProcessors.get(formatCount)).setHtmlFormatters(dv, dr, true); +// else +// ((FormatProcessor) formatProcessors.get(formatCount)).setHtmlFormatters(dv, dr, false);*/ +// +// //System.out.println("in Linear report After" + dr.getFormatId() + dr.getBgColorHtml() + dv.getDisplayValue()); +// +// if(topDown) { +// if(!dv.getColId().endsWith("_calc") && dv.isVisible()) +// rowList.add(dv); +// for (int cInner = 0; cInner < reportCols.size(); cInner++) { +// if(reportCols.get(cInner)!=null) { +// DataColumnType dctInner = (DataColumnType) reportCols.get(cInner); +// if((dv.getColId()+"_calc").equals(dctInner.getColId())) { +// /* DataValue dvInner = new DataValue(); +// dvInner.setDisplayValue(ds.getString(r, c)); +// dvInner.setColName(dct.getColName()); +// dvInner.setColId(dct.getColId()); +// rowList.add(dvInner); +// */ dv.setDisplayCalculatedValue(ds.getString(r, dctInner.getColId())); +// } +// } +// } +// } +// } else { //dv value check +// DataValue dv = new DataValue(); +// dr.addDataValue(dv); +// dv.setDisplayValue(nvls(value)); +// dv.setColName(dct.getColName()); +// dv.setColId(dct.getColId()); +// if(dct.isVisible()) +// dv.setVisible(true); +// else +// dv.setVisible(false); +// /*if(dr.getFormatId()!=null) +// ((FormatProcessor) formatProcessors.get(formatCount)).setHtmlFormatters(dv, dr, true); +// else +// ((FormatProcessor) formatProcessors.get(formatCount)).setHtmlFormatters(dv, dr, false);*/ +// +// if(topDown) { +// if(!dv.getColId().endsWith("_calc") && dv.isVisible()) +// rowList.add(dv); +// for (int cInner = 0; cInner < reportCols.size(); cInner++) { +// if(reportCols.get(cInner)!=null) { +// DataColumnType dctInner = (DataColumnType) reportCols.get(cInner); +// if((dv.getColId()+"_calc").equals(dctInner.getColId())) { +// dv.setDisplayCalculatedValue(ds.getString(r, dctInner.getColId())); +// } +// } +// } +// } +// } +// } +// } // if reportCols +// +// +// } // for +// for (int c = 0; c < reportCols.size(); c++) { +// if(reportCols.get(c)!=null) { +// DataColumnType dct = (DataColumnType) reportCols.get(c); +// //Modified since ds is null. +// DataValue dv = new DataValue(); +// dv = dr.getDataValue(c); +// if(dr.getFormatId()!=null) +// ((FormatProcessor) formatProcessors.get(c)).setHtmlFormatters(dv, dr, true); +// else +// ((FormatProcessor) formatProcessors.get(c)).setHtmlFormatters(dv, dr, false); +// } +// } +// //add dr to rowList after all column is done. +// if(!topDown) { +// rowList.add(dr); +// } +// } // for +// +// //String totalSql = raptorRunHandler.getTotalSql(); +// if(nvls(totalSql).length()>0) { +// ds = ConnectionUtils.getDataSet(totalSql,rr.getDbInfo()); +// DataRow dr = new DataRow(); +// DataValue dv = new DataValue(); +// +// //dv.setColName("#"); +// int count = 0; +// for (int c = 0; c < reportCols.size(); c++) { +// DataColumnType dct = (DataColumnType) reportCols.get(c); +// if(dct.getLevel()!=null && dct.getLevel() > 0) continue; +// if ( dct != null && dct.isVisible()) { +// count++; +// +// dv = new DataValue(); +// dv.setVisible(dct.isVisible()); +// +// if(count==1) { +// dr.addDataValue(dv); +// dv.setDisplayValue("Total (for all Records)"); +// dv.setColName(dct.getColName()); +// dv.setDisplayName(dct.getDisplayName()); +// dv.setColId(dct.getColId()); +// dv.setBold(true); +// } else { +// if(dv.isVisible()) +// dr.addDataValue(dv); +// +// String totalValue = ""; +// if (ds != null) +// totalValue = ds.getString(0, "TOTAL_"+dct.getColId()); +// if (nvls(dct.getDisplayTotal()).length() > 0 +// && (!dct.getDisplayTotal().equals(AppConstants.TOTAL_SUM_ID))) +// totalValue = nvls(AppConstants.TOTAL_FUNCTIONS.getNameById(dct +// .getDisplayTotal())) +// + ": " + totalValue; +// dv.setDisplayValue(Utils.truncateTotalDecimals(totalValue)); +// +// dv.setAlignment(dct.getDisplayAlignment()); +// dv.setColName(dct.getColName()); +// dv.setDisplayName(dct.getDisplayName()); +// dv.setColId(dct.getColId()); +// dv.setNowrap(nvl(dct.getNowrap(),"null").equals("false")?"null":nvl(dct.getNowrap(),"null")); +// /*StringBuffer indentation = new StringBuffer(""); +// if(dct.getIndentation()!=null && dct.getIndentation()>0) { +// for (int indent=0; indent< dct.getIndentation(); indent++) { +// indentation.append("\t"); +// } +// dv.setNowrap("true"); +// } +// dv.setIndentation(indentation.toString());*/ +// dv.setIndentation(new Integer((dct.getIndentation()==null)?new Integer("0"):dct.getIndentation()).toString()); +// dv.setDisplayTotal(dct.getDisplayTotal()); +// dv.setBold(true) ; +// } +// } // dct check +// } // for +// if(!topDown) { +// rowList.add(dr); +// } +// +// } +// +// +// } catch (ReportSQLException ex) { +// ex.printStackTrace(); +// }catch(Exception ex1) { +// ex1.printStackTrace(); +// } finally { +// try { +// clearConnection(con); +// } catch (ReportSQLException ex2) { +// ex2.printStackTrace(); +// } +// } +// return rowList; +// } + + public String nvl(String s) { + return (s == null) ? "" : s; + } + + public static String nvls(String s) { + return (s == null) ? "" : s; + } + + public static String nvl(String s, String sDefault) { + return nvls(s).equals("") ? sDefault : s; + } + + + + public static DataSource getDataSource() { + return dataSource; + } + + @Autowired + public void setDataSource(DataSource dataSource) { + dataSource = dataSource; + } + + +// public static List executeQuery(ReportRuntime rr, String filterClause, int itemStartNumber, int itemEndNumber, boolean topDown, String _orderBy, boolean asc, RaptorHiveRunHandler raptorHiveRunHandler) { +// Connection con = null; +// List rowList = new ArrayList(); +// ReportData rd = null; +// +// try { +// +// +// +// con = ConnectionUtils.getConnection(rr.getDBInfo()); +// //if client side sorting is needed we could disable the comment line below for quicker development +// // until we do it in "client" end. +// //StringBuffer sql = new StringBuffer(rr.getReportSQLWithRowNum()); +// StringBuffer sql = new StringBuffer(""); +// sql.append(rr.getWholeSQL()); +// int count = rr.getReportDataSize(); +// System.out.println("Count "+ count+ " " + itemEndNumber); +// if(count < itemEndNumber) +// sql.append(" " + "limit "+ count); +// else +// sql.append(" " + "limit "+ itemEndNumber); +// //sql = new StringBuffer(raptorHiveRunHandler.getReportSQLWithRowNum(_orderBy, asc)); +// //if( /*itemEndNumber > 1 &&*/ itemEndNumber > itemStartNumber) +// //sql.append(" WHERE ROWNUM <= " + (topDown?itemEndNumber:(itemEndNumber+1))); +// //sql.append(" ) y WHERE rnum >= " + (topDown?itemStartNumber:(itemStartNumber+1))); +// //if(nvls(_orderBy).length()>0) +// //sql.append(" ORDER BY "+ _orderBy + " "+ (asc ? "ASC" : "DESC")); +// //else +// //sql.append(" ORDER BY rnum"); +// // sql = String.format(sql, _orderBy, asc ? "ASC" : "DESC"); +// +// System.out.println("ZK RAPTOR RUN " + sql); +// +// String dbInfo = rr.getDBInfo(); +// DataSet ds = null; +// ds = ConnectionUtils.getDataSet(sql.toString(), dbInfo); +// List reportCols = rr.getAllColumns(); +// Vector formatProcessors = new Vector(reportCols.size()); +// +// for (int r = itemStartNumber; r < ds.getRowCount(); r++) { +// DataRow dr = new DataRow(); +// //rd.reportDataRows.addDataRow(dr); +// //rd = raptorRunHandler.getReportData(); +// //RowHeaderCol rhc = new RowHeaderCol(); +// //reportRowHeaderCols.addRowHeaderCol(0, rhc); +// //rhc.setColumnWidth("5%"); +// +// int formatCount = -1; //added for auxillary head check +// for (int c = 0; c < reportCols.size(); c++) { +// if(reportCols.get(c)!=null) { +// DataColumnType dct = (DataColumnType) reportCols.get(c); +// if(dct.getLevel()!=null && dct.getLevel() > 0) continue; +// else formatCount++; +// // +// formatProcessors.add(formatCount,new FormatProcessor( +// rr.getSemaphoreById(dct.getSemaphoreId()), dct.getColType(), dct +// .getColFormat(), rr.getReportDefType().equals( +// AppConstants.RD_SQL_BASED))); +// // +// if(!(dct.getColName().startsWith("[") && dct.getDisplayName() == null)) { +// String value = ""; +// if(ds.getColumnIndex(dct.getColId())!= -1) { +// value = ds.getString(r, dct.getColId()); +// } +// if(nvls(value).length()>0 && !nvls(value).equals("'")) { +// DataValue dv = new DataValue(); +// dr.addDataValue(dv); +// dv.setDisplayValue(nvls(value)); +// dv.setColName(dct.getColName()); +// dv.setColId(dct.getColId()); +// if(dct.getColType().equals(AppConstants.CT_HYPERLINK)) { +// dv.setHyperlinkURL(dct.getHyperlinkURL()); +// dv.setDisplayType(dct.getHyperlinkType()); +// if(dct.getHyperlinkType().equals("IMAGE")) +// dv.setActionImg(dct.getActionImg()); +// } +// dv.setIndentation(new Integer((dct.getIndentation()==null)?new Integer("0"):dct.getIndentation()).toString()); +// //dv.setNowrap(nvl(dct.getNowrap(),"null").equals("false")?"null":nvl(dct.getNowrap(),"null")); +// if(dct.isVisible()) { +// +// dv.setVisible(true); +// dv.setAlignment(dct.getDisplayAlignment()); +// dv.setDisplayTotal(dct.getDisplayTotal()); +// dv.setDisplayName(dct.getDisplayName()); +// +// //Add Drilldown URL to dv +// if (nvls(dct.getDrillDownURL()).length() > 0) { +// +// if(dv.getDisplayValue().length() > 0) { +// dv.setDrillDownURL(raptorHiveRunHandler.parseDrillDownURL(r, /* c, */ds, dct,null)); +// dv.setDrillDowninPoPUp(dct.isDrillinPoPUp()!=null?dct.isDrillinPoPUp():false); +// } +// +// if (dv.getDisplayValue().length() == 0) { +// //dv.setDisplayValue("[NULL]"); +// dv.setDisplayValue(""); +// } +// } // if +// +// } else { +// dv.setVisible(false); +// dv.setHidden(true); +// } +// //System.out.println("in Linear report b4" + dr.getFormatId() + dr.getBgColorHtml() + dv.getDisplayValue()); +// +// if(dr.getFormatId()!=null) +// ((FormatProcessor) formatProcessors.get(formatCount)).setHtmlFormatters(dv, dr, true); +// else +// ((FormatProcessor) formatProcessors.get(formatCount)).setHtmlFormatters(dv, dr, false); +// +// //System.out.println("in Linear report After" + dr.getFormatId() + dr.getBgColorHtml() + dv.getDisplayValue()); +// +// if(topDown) { +// if(!dv.getColId().endsWith("_calc") && dv.isVisible()) +// rowList.add(dv); +// for (int cInner = 0; cInner < reportCols.size(); cInner++) { +// if(reportCols.get(cInner)!=null) { +// DataColumnType dctInner = (DataColumnType) reportCols.get(cInner); +// if((dv.getColId()+"_calc").equals(dctInner.getColId())) { +// /* DataValue dvInner = new DataValue(); +// dvInner.setDisplayValue(ds.getString(r, c)); +// dvInner.setColName(dct.getColName()); +// dvInner.setColId(dct.getColId()); +// rowList.add(dvInner); +// */ dv.setDisplayCalculatedValue(ds.getString(r, dctInner.getColId())); +// } +// } +// } +// } +// } else { //dv value check +// DataValue dv = new DataValue(); +// dr.addDataValue(dv); +// dv.setDisplayValue(nvls(value)); +// dv.setColName(dct.getColName()); +// dv.setColId(dct.getColId()); +// if(dct.isVisible()) +// dv.setVisible(true); +// else +// dv.setVisible(false); +// if(dr.getFormatId()!=null) +// ((FormatProcessor) formatProcessors.get(formatCount)).setHtmlFormatters(dv, dr, true); +// else +// ((FormatProcessor) formatProcessors.get(formatCount)).setHtmlFormatters(dv, dr, false); +// +// if(topDown) { +// if(!dv.getColId().endsWith("_calc") && dv.isVisible()) +// rowList.add(dv); +// for (int cInner = 0; cInner < reportCols.size(); cInner++) { +// if(reportCols.get(cInner)!=null) { +// DataColumnType dctInner = (DataColumnType) reportCols.get(cInner); +// if((dv.getColId()+"_calc").equals(dctInner.getColId())) { +// dv.setDisplayCalculatedValue(ds.getString(r, cInner)); +// } +// } +// } +// } +// } +// } +// } // if reportCols +// +// +// } // for +// //add dr to rowList after all column is done. +// if(!topDown) { +// rowList.add(dr); +// } +// } // for +// } catch (ReportSQLException ex) { +// ex.printStackTrace(); +// }catch(Exception ex1) { +// ex1.printStackTrace(); +// } finally { +// try { +// clearConnection(con); +// } catch (ReportSQLException ex2) { +// ex2.printStackTrace(); +// } +// } +// return rowList; +// } + + +} // DbUtils + |