//************************************************************************** /// <Description> /// This method uses to change up order of a row in sys_ReportPara /// </Description> /// <Inputs> /// ReportID, ParaName /// </Inputs> /// <Outputs> /// changes /// </Outputs> /// <Returns> /// bool /// </Returns> /// <Authors> /// DungLA /// </Authors> /// <History> /// Created: 05-Jan-2005 /// </History> /// <Notes> /// </Notes> //************************************************************************** public bool MoveUp(string pstrReportID, string pstrParaName) { bool blnResult = false; sys_ReportParaDS dsReportPara = new sys_ReportParaDS(); sys_ReportParaVO voPreviousPara = new sys_ReportParaVO(); // get current para order sys_ReportParaVO voCurrentPara = (sys_ReportParaVO)dsReportPara.GetObjectVO(pstrReportID, pstrParaName); // if current parameter reached the top of order - 1, then cannot move if (voCurrentPara.ParaOrder <= 1) { blnResult = false; } else { // get next para order int intNextOrder = dsReportPara.GetNextOrder(pstrReportID, voCurrentPara.ParaOrder, MoveDirection.Up); // change order voPreviousPara.ParaOrder = voCurrentPara.ParaOrder; voCurrentPara.ParaOrder = intNextOrder; // update two rows in database dsReportPara.Update(voPreviousPara); dsReportPara.Update(voCurrentPara); // return value blnResult = true; } return(blnResult); }
//************************************************************************** /// <Description> /// This method uses to change down order of a row in sys_ReportPara /// </Description> /// <Inputs> /// ReportID, ParaName /// </Inputs> /// <Outputs> /// changes /// </Outputs> /// <Returns> /// bool /// </Returns> /// <Authors> /// DungLA /// </Authors> /// <History> /// Created: 05-Jan-2005 /// </History> /// <Notes> /// </Notes> //************************************************************************** public bool MoveDown(string pstrReportID, string pstrParaName) { bool blnResult = false; sys_ReportParaDS dsReportPara = new sys_ReportParaDS(); sys_ReportParaVO voNextPara = new sys_ReportParaVO(); // get current para order sys_ReportParaVO voCurrentPara = (sys_ReportParaVO)dsReportPara.GetObjectVO(pstrReportID, pstrParaName); // get max order int intMaxOrder = dsReportPara.GetMaxOrder(pstrReportID); // if current parameter reached the bottom, then cannot move down if (voCurrentPara.ParaOrder == intMaxOrder) { blnResult = false; } else { // get next para order int intNextOrder = dsReportPara.GetNextOrder(pstrReportID, voCurrentPara.ParaOrder, MoveDirection.Down); // change order voNextPara.ParaOrder = voCurrentPara.ParaOrder; voCurrentPara.ParaOrder = intNextOrder; // update two rows in database dsReportPara.Update(voNextPara); dsReportPara.Update(voCurrentPara); // return value blnResult = true; } return(blnResult); }
/// <summary> /// Switch two params order /// </summary> /// <param name="pobjSourceParameter">Source Parameter</param> /// <param name="pobjDestParameter">Destination Parameter</param> public void SwitchParameters(object pobjSourceParameter, object pobjDestParameter) { sys_ReportParaDS dsReportParameter = new sys_ReportParaDS(); dsReportParameter.Update(pobjSourceParameter); dsReportParameter.Update(pobjDestParameter); }
//************************************************************************** /// <Description> /// This method not implements yet /// </Description> /// <Inputs> /// /// </Inputs> /// <Outputs> /// /// </Outputs> /// <Returns> /// /// </Returns> /// <Authors> /// DungLA /// </Authors> /// <History> /// Created: 28-Dec-2004 /// </History> /// <Notes> /// </Notes> //************************************************************************** public void Delete(object pObjectVO) { sys_ReportVO voReport = (sys_ReportVO)pObjectVO; sys_ReportAndGroupDS dsReportAndGroup = new sys_ReportAndGroupDS(); // delete data in sys_ReportAndGroup dsReportAndGroup.DeleteByReportID(voReport.ReportID); // delete data in sys_ReportDrillDown where master id is selected report id sys_ReportDrillDownDS dsDrillDown = new sys_ReportDrillDownDS(); dsDrillDown.Delete(voReport.ReportID); // delete data in sys_ReportFields sys_ReportFieldsDS dsReportFields = new sys_ReportFieldsDS(); dsReportFields.Delete(voReport.ReportID); // delete data in sys_ReportPara sys_ReportParaDS dsReportPara = new sys_ReportParaDS(); dsReportPara.Delete(voReport.ReportID); // retrieve history of this report sys_ReportHistoryVO voReportHistory = new sys_ReportHistoryVO(); sys_ReportHistoryDS dsReportHistory = new sys_ReportHistoryDS(); sys_ReportHistoryParaDS dsHistoryPara = new sys_ReportHistoryParaDS(); ArrayList arrHistory = new ArrayList(); arrHistory = dsReportHistory.ListByReport(voReport.ReportID); // delete all data in sys_ReportHistoryPara related to each history if (arrHistory.Count > 0) { for (int i = 0; i < arrHistory.Count - 1; i++) { voReportHistory = (sys_ReportHistoryVO)arrHistory[i]; dsHistoryPara.Delete(voReportHistory.HistoryID); } } // delete data in sys_ReportHistory dsReportHistory.DeleteByReportID(voReport.ReportID); // delete data in sys_Report sys_ReportDS dsReport = new sys_ReportDS(); dsReport.Delete(voReport.ReportID); }
//************************************************************************** /// <Description> /// This method checks business rule and call Add() method of DS class /// </Description> /// <Inputs> /// Value object /// </Inputs> /// <Outputs> /// N/A /// </Outputs> /// <Returns> /// void /// </Returns> /// <Authors> /// HungLa /// </Authors> /// <History> /// 13-Dec-2004 /// </History> /// <Notes> /// </Notes> //************************************************************************** public void Add(object pobjObjectVO) { sys_ReportParaDS templateDS = new sys_ReportParaDS(); templateDS.Add(pobjObjectVO); }
//************************************************************************** /// <Description> /// This method uses to get all para of specified report /// </Description> /// <Inputs> /// ReportID /// </Inputs> /// <Outputs> /// List of parameter /// </Outputs> /// <Returns> /// ArrayList /// </Returns> /// <Authors> /// DungLA /// </Authors> /// <History> /// 05-Jan-2005 /// </History> /// <Notes> /// </Notes> //************************************************************************** public ArrayList ListByReport(string pstrReportID) { sys_ReportParaDS dsReportPara = new sys_ReportParaDS(); return(dsReportPara.GetObjectVOs(pstrReportID)); }
//************************************************************************** /// <Description> /// This method uses to update a DataSet /// </Description> /// <Inputs> /// DataSet /// </Inputs> /// <Outputs> /// N/A /// </Outputs> /// <Returns> /// void /// </Returns> /// <Authors> /// HungLa /// </Authors> /// <History> /// 13-Dec-2004 /// </History> /// <Notes> /// </Notes> //************************************************************************** public void UpdateDataSet(DataSet pData) { sys_ReportParaDS templateDS = new sys_ReportParaDS(); templateDS.UpdateDataSet(pData); }
//************************************************************************** /// <Description> /// This method uses to get all data /// </Description> /// <Inputs> /// /// </Inputs> /// <Outputs> /// /// </Outputs> /// <Returns> /// DataSet /// </Returns> /// <Authors> /// HungLa /// </Authors> /// <History> /// /// </History> /// <Notes> /// </Notes> //************************************************************************** public DataSet List() { sys_ReportParaDS templateDS = new sys_ReportParaDS(); return(templateDS.List()); }
public DataSet ExecuteSqlClause(string pstrSqlClause, string pstrWhereClause) { sys_ReportParaDS dsReportPara = new sys_ReportParaDS(); return(dsReportPara.ExecuteSqlClause(pstrSqlClause, pstrWhereClause)); }
//************************************************************************** /// <Description> /// This method uses to update data /// </Description> /// <Inputs> /// pobjObjecVO /// </Inputs> /// <Outputs> /// /// </Outputs> /// <Returns> /// void /// </Returns> /// <Authors> /// HungLa /// </Authors> /// <History> /// 13-Dec-2004 /// </History> /// <Notes> /// </Notes> //************************************************************************** public void Update(object pobjObjecVO) { sys_ReportParaDS templateDS = new sys_ReportParaDS(); templateDS.Update(pobjObjecVO); }
//************************************************************************** /// <Description> /// This method uses to get data /// </Description> /// <Inputs> /// pintID /// </Inputs> /// <Outputs> /// Value object /// </Outputs> /// <Returns> /// object /// </Returns> /// <Authors> /// HungLa /// </Authors> /// <History> /// 13-Dec-2004 /// </History> /// <Notes> /// </Notes> //************************************************************************** public object GetObjectVO(string pstrReportID, string pstrParaName) { sys_ReportParaDS dsReportPara = new sys_ReportParaDS(); return(dsReportPara.GetObjectVO(pstrReportID, pstrParaName)); }
//************************************************************************** /// <Description> /// This method checks business rule and call Delete() method of DS class /// </Description> /// <Inputs> /// pintID /// </Inputs> /// <Outputs> /// Delete a record from Database /// </Outputs> /// <Returns> /// void /// </Returns> /// <Authors> /// HungLa /// </Authors> /// <History> /// 13-Dec-2004 /// </History> /// <Notes> /// </Notes> //************************************************************************** public void Delete(int pintID) { sys_ReportParaDS templateDS = new sys_ReportParaDS(); templateDS.Delete(pintID); }
//************************************************************************** /// <Description> /// This method not implements yet /// </Description> /// <Inputs> /// /// </Inputs> /// <Outputs> /// /// </Outputs> /// <Returns> /// /// </Returns> /// <Authors> /// HungLa /// </Authors> /// <History> /// 13-Dec-2004 /// </History> /// <Notes> /// </Notes> //************************************************************************** public void Delete(object pObjectVO) { sys_ReportParaDS templateDS = new sys_ReportParaDS(); templateDS.Delete(((sys_ReportParaVO)pObjectVO).ReportID, ((sys_ReportParaVO)pObjectVO).ParaName); }
//************************************************************************** /// <Description> /// This method uses to make a copy of specified report to another group, /// also copy all data relative to report (sys_ReportAndGroup, sys_ReportDrillDown, /// sys_ReportFields, sys_ReportPara). /// </Description> /// <Inputs> /// Source ReportID, Destination GroupID /// </Inputs> /// <Outputs> /// New report id /// </Outputs> /// <Returns> /// new report id /// </Returns> /// <Authors> /// DungLA /// </Authors> /// <History> /// 03-Jan-2005 /// 11-Jan-2005 /// </History> /// <Notes> /// Return newly report id /// </Notes> //************************************************************************** public object CopyReport(string pstrReportID, string pstrGroupID, out int ointReportOrder) { const string METHOD_NAME = THIS + ".CopyReport()"; const int REPORT_ID_MAX_LENGTH = 20; const string CODE_DATE_FORMAT = "yyyyMMddHHmmssfff"; UtilsBO boUtils = new UtilsBO(); sys_ReportDS dsReport = new sys_ReportDS(); sys_ReportVO voReport; // use to add new report to selected group sys_ReportAndGroupVO voReportAndGroup = new sys_ReportAndGroupVO(); sys_ReportAndGroupDS dsReportAndGroup = new sys_ReportAndGroupDS(); // use to copy report para sys_ReportParaDS dsReportPara = new sys_ReportParaDS(); // use to copy report fields sys_ReportFieldsDS dsReportFields = new sys_ReportFieldsDS(); // use to copy drill down report sys_ReportDrillDownDS dsReportDrillDown = new sys_ReportDrillDownDS(); // get the data of selected object voReport = (sys_ReportVO)(dsReport.GetObjectVO(pstrReportID)); #region Copy report // make a copy report sys_ReportVO voCopiedReport = new sys_ReportVO(); voCopiedReport = voReport; // get database server date time DateTime dtmDB = boUtils.GetDBDate(); // report ID = yyyyMMddHHmmssfff voCopiedReport.ReportID = dtmDB.ToString(CODE_DATE_FORMAT); if (voCopiedReport.ReportID.Length > REPORT_ID_MAX_LENGTH) { throw new PCSBOException(ErrorCode.MESSAGE_VALUE_TOO_LONG, METHOD_NAME, new Exception()); } voCopiedReport.ReportName = Constants.COPY_OF + voCopiedReport.ReportName; // save new report to database dsReport.Add(voCopiedReport); #endregion #region Add new report to group voReportAndGroup.GroupID = pstrGroupID; voReportAndGroup.ReportID = voCopiedReport.ReportID; // increase report order by one in group. voReportAndGroup.ReportOrder = dsReportAndGroup.GetMaxReportOrder(pstrGroupID) + 1; // save data dsReportAndGroup.Add(voReportAndGroup); ointReportOrder = voReportAndGroup.ReportOrder; #endregion #region Copy all data relative from old report to new report #region ReportPara // get all parameter(s) sys_ReportParaVO voReportPara; ArrayList arrParas = dsReportPara.GetObjectVOs(pstrReportID); // make a copy of each parameter if (arrParas.Count > 0) { for (int i = 0; i < arrParas.Count; i++) { voReportPara = (sys_ReportParaVO)(arrParas[i]); // assign new report id voReportPara.ReportID = voCopiedReport.ReportID; // save new para dsReportPara.Add(voReportPara); } } #endregion #region ReportFields // get all report fields sys_ReportFieldsVO voReportFields; ArrayList arrFields = dsReportFields.GetObjectVOs(pstrReportID); // make a copy of each field if (arrFields.Count > 0) { for (int i = 0; i < arrFields.Count; i++) { voReportFields = (sys_ReportFieldsVO)arrFields[i]; // assign new report id voReportFields.ReportID = voCopiedReport.ReportID; // save new field dsReportFields.Add(voReportFields); } } #endregion #region ReportDrillDown // get all drill down report sys_ReportDrillDownVO voReportDrillDown; ArrayList arrDrillDown = dsReportDrillDown.GetObjectVOs(pstrReportID); // make a copy each drill down report if (arrDrillDown.Count > 0) { for (int i = 0; i < arrDrillDown.Count; i++) { voReportDrillDown = (sys_ReportDrillDownVO)arrDrillDown[i]; // assign new report id voReportDrillDown.MasterReportID = voCopiedReport.ReportID; // save new drill down dsReportDrillDown.Add(voReportDrillDown); } } #endregion #endregion return(voCopiedReport); }
public DataSet GetDataFromTable(string pstrField, string pstrTableName, string[] pstrFilterFields) { sys_ReportParaDS dsReportPara = new sys_ReportParaDS(); return(dsReportPara.GetDataFromTable(pstrField, pstrTableName, pstrFilterFields)); }
//************************************************************************** /// <Description> /// This method uses to get max para order of specified report /// </Description> /// <Inputs> /// ReportID /// </Inputs> /// <Outputs> /// Max order /// </Outputs> /// <Returns> /// int /// </Returns> /// <Authors> /// DungLA /// </Authors> /// <History> /// Created: 09-Jan-2005 /// </History> /// <Notes> /// Change output from ArrayList to DataSet /// </Notes> //************************************************************************** public int GetMaxParaOrder(string pstrReportID) { sys_ReportParaDS dsReportPara = new sys_ReportParaDS(); return(dsReportPara.GetMaxOrder(pstrReportID)); }
//************************************************************************** /// <Description> /// This method uses to update data /// </Description> /// <Inputs> /// pobjObjecVO, Old para name /// </Inputs> /// <Outputs> /// /// </Outputs> /// <Returns> /// void /// </Returns> /// <Authors> /// DungLA /// </Authors> /// <History> /// 09-Jan-2005 /// </History> /// <Notes> /// </Notes> //************************************************************************** public void Update(object pobjObjecVO, string pstrParaName) { sys_ReportParaDS templateDS = new sys_ReportParaDS(); templateDS.Update(pobjObjecVO, pstrParaName); }
//************************************************************************** /// <Description> /// This method uses to get data for C1TrueDBGrid /// </Description> /// <Inputs> /// MasterID, DetailID /// </Inputs> /// <Outputs> /// DataTable /// </Outputs> /// <Returns> /// DataTable /// </Returns> /// <Authors> /// DungLA /// </Authors> /// <History> /// 06-Jan-2005 /// 12/Oct/2005 Thachnn: fix bug injection /// </History> /// <Notes> /// </Notes> //************************************************************************** public DataTable GetDataForTrueDBGrid(string pstrMasterID, string pstrDetailID, out bool oblnIsEdit) { const string METHOD_NAME = THIS + ".GetDataForTrueDBGrid()"; string strSql = string.Empty; // create new table with 4 columns to store data and return to caller DataTable dtblSource = new DataTable(sys_ReportDrillDownTable.TABLE_NAME); dtblSource.Columns.Add(sys_ReportDrillDownTable.MASTERPARA_FLD); dtblSource.Columns.Add(sys_ReportDrillDownTable.DETAILPARA_FLD); dtblSource.Columns.Add(sys_ReportParaTable.DATATYPE_FLD); dtblSource.Columns.Add(sys_ReportDrillDownTable.FROMCOLUMN_FLD); dtblSource.Columns.Add(sys_ReportDrillDownTable.PARAORDER_FLD); // set data type for FromColumn column dtblSource.Columns[sys_ReportDrillDownTable.FROMCOLUMN_FLD].DataType = typeof(bool); // set default value for FromColumn dtblSource.Columns[sys_ReportDrillDownTable.FROMCOLUMN_FLD].DefaultValue = false; DataSet dstSource = new DataSet(); OleDbConnection oconPCS = null; OleDbCommand ocmdPCS = null; #region Existed record in sys_ReportDrillDown table // first we check for existing record in sys_ReportDrillDown table strSql = "SELECT " + sys_ReportDrillDownTable.MASTERREPORTID_FLD + "," + sys_ReportDrillDownTable.DETAILREPORTID_FLD + "," + sys_ReportDrillDownTable.MASTERPARA_FLD + "," + sys_ReportDrillDownTable.DETAILPARA_FLD + "," + sys_ReportDrillDownTable.FROMCOLUMN_FLD + "," + sys_ReportDrillDownTable.PARAORDER_FLD + " FROM " + sys_ReportDrillDownTable.TABLE_NAME + " WHERE " + sys_ReportDrillDownTable.MASTERREPORTID_FLD + "= ? " //+ pstrMasterID + "'" + " AND " + sys_ReportDrillDownTable.DETAILREPORTID_FLD + "= ? "; // + pstrDetailID + "'"; try { // if already existed, then get current data Utils utils = new Utils(); oconPCS = new OleDbConnection(Utils.Instance.OleDbConnectionString); ocmdPCS = new OleDbCommand(strSql, oconPCS); ocmdPCS.Parameters.Add(new OleDbParameter(sys_ReportDrillDownTable.MASTERREPORTID_FLD, OleDbType.VarWChar)); ocmdPCS.Parameters[sys_ReportDrillDownTable.MASTERREPORTID_FLD].Value = pstrMasterID; ocmdPCS.Parameters.Add(new OleDbParameter(sys_ReportDrillDownTable.DETAILREPORTID_FLD, OleDbType.VarWChar)); ocmdPCS.Parameters[sys_ReportDrillDownTable.DETAILREPORTID_FLD].Value = pstrDetailID; ocmdPCS.Connection.Open(); OleDbDataReader odrdPCS = ocmdPCS.ExecuteReader(); if (odrdPCS.HasRows) { while (odrdPCS.Read()) { DataRow drow = dtblSource.NewRow(); drow[sys_ReportDrillDownTable.MASTERPARA_FLD] = odrdPCS[sys_ReportDrillDownTable.MASTERPARA_FLD]; drow[sys_ReportDrillDownTable.DETAILPARA_FLD] = odrdPCS[sys_ReportDrillDownTable.DETAILPARA_FLD]; drow[sys_ReportDrillDownTable.FROMCOLUMN_FLD] = odrdPCS[sys_ReportDrillDownTable.FROMCOLUMN_FLD]; drow[sys_ReportDrillDownTable.PARAORDER_FLD] = odrdPCS[sys_ReportDrillDownTable.PARAORDER_FLD]; dtblSource.Rows.Add(drow); } sys_ReportParaDS dsSysReportPara = new sys_ReportParaDS(); foreach (DataRow drow in dtblSource.Rows) { drow[sys_ReportParaTable.DATATYPE_FLD] = dsSysReportPara.GetDataType(pstrDetailID, drow[sys_ReportDrillDownTable.DETAILPARA_FLD].ToString().Trim()); } // return oblnIsEdit = true; return(dtblSource); } } catch (OleDbException ex) { throw new PCSDBException(ErrorCode.ERROR_DB, METHOD_NAME, ex); } catch (Exception ex) { throw new PCSDBException(ErrorCode.OTHER_ERROR, METHOD_NAME, ex); } finally { if (oconPCS != null) { if (oconPCS.State != ConnectionState.Closed) { oconPCS.Close(); } } } #endregion oblnIsEdit = false; #region Not existed, make new data and return to user /// TODO: Bro.DungLA. Thachnn says: I feel bug here, when creating strSql, but I don't know why and how to fix. /// The old code is really fusion with continuing plus and plus SQL string. /// Please comeback to this point when there are any errors. try { Utils utils = new Utils(); oconPCS.ConnectionString = Utils.Instance.OleDbConnectionString; string strSqlOrder = " ORDER BY " + sys_ReportParaTable.PARAORDER_FLD + " ASC"; string strSqlMaster = "SELECT " + sys_ReportParaTable.PARAORDER_FLD + "," + sys_ReportParaTable.PARANAME_FLD + "," + sys_ReportParaTable.DATATYPE_FLD + " FROM " + sys_ReportParaTable.TABLE_NAME + " WHERE " + sys_ReportParaTable.REPORTID_FLD + "= ? " + strSqlOrder; OleDbCommand ocmdMaster = new OleDbCommand(strSqlMaster, oconPCS); ocmdMaster.Parameters.Add(new OleDbParameter(sys_ReportParaTable.REPORTID_FLD, OleDbType.VarWChar)); ocmdMaster.Parameters[sys_ReportParaTable.REPORTID_FLD].Value = pstrMasterID; // fill master para into dataset with new table OleDbDataAdapter odadMaster = new OleDbDataAdapter(ocmdMaster); odadMaster.Fill(dstSource, sys_ReportDrillDownTable.MASTERPARA_FLD); string strSqlDetail = "SELECT " + sys_ReportParaTable.PARAORDER_FLD + "," + sys_ReportParaTable.PARANAME_FLD + "," + sys_ReportParaTable.DATATYPE_FLD + " FROM " + sys_ReportParaTable.TABLE_NAME + " WHERE " + sys_ReportParaTable.REPORTID_FLD + "= ? " + strSqlOrder; OleDbCommand ocmdDetail = new OleDbCommand(strSqlDetail, oconPCS); ocmdDetail.Parameters.Add(new OleDbParameter(sys_ReportParaTable.REPORTID_FLD, OleDbType.VarWChar)); ocmdDetail.Parameters[sys_ReportParaTable.REPORTID_FLD].Value = pstrDetailID; // fill detail para into dataset with new table OleDbDataAdapter odadDetail = new OleDbDataAdapter(ocmdDetail); odadDetail.Fill(dstSource, sys_ReportDrillDownTable.DETAILPARA_FLD); // get all rows DataRowCollection MasterRows = dstSource.Tables[sys_ReportDrillDownTable.MASTERPARA_FLD].Rows; DataRowCollection DetailRows = dstSource.Tables[sys_ReportDrillDownTable.DETAILPARA_FLD].Rows; // if number of master para is bigger than number of detail para // then the detail para is basic for filling parameter values if (MasterRows.Count > DetailRows.Count) { for (int i = 0; i < MasterRows.Count; i++) { DataRow drow = dtblSource.NewRow(); drow[sys_ReportDrillDownTable.MASTERPARA_FLD] = MasterRows[i][sys_ReportParaTable.PARANAME_FLD]; drow[sys_ReportDrillDownTable.PARAORDER_FLD] = i + 1; if (i < DetailRows.Count) { drow[sys_ReportDrillDownTable.DETAILPARA_FLD] = DetailRows[i][sys_ReportParaTable.PARANAME_FLD]; drow[sys_ReportParaTable.DATATYPE_FLD] = DetailRows[i][sys_ReportParaTable.DATATYPE_FLD]; } else { break; } dtblSource.Rows.Add(drow); } } // if number of detail para is bigger than number of master para // then the master para is basic for filling parameter values else { for (int i = 0; i < DetailRows.Count; i++) { DataRow drow = dtblSource.NewRow(); drow[sys_ReportDrillDownTable.DETAILPARA_FLD] = DetailRows[i][sys_ReportParaTable.PARANAME_FLD]; drow[sys_ReportDrillDownTable.PARAORDER_FLD] = i + 1; if (i < MasterRows.Count) { drow[sys_ReportDrillDownTable.MASTERPARA_FLD] = MasterRows[i][sys_ReportParaTable.PARANAME_FLD]; drow[sys_ReportParaTable.DATATYPE_FLD] = MasterRows[i][sys_ReportParaTable.DATATYPE_FLD]; } else { drow[sys_ReportDrillDownTable.MASTERPARA_FLD] = null; drow[sys_ReportParaTable.DATATYPE_FLD] = DetailRows[i][sys_ReportParaTable.DATATYPE_FLD]; } dtblSource.Rows.Add(drow); } } oblnIsEdit = true; return(dtblSource); } catch (OleDbException ex) { throw new PCSDBException(ErrorCode.ERROR_DB, METHOD_NAME, ex); } catch (Exception ex) { throw new PCSDBException(ErrorCode.OTHER_ERROR, METHOD_NAME, ex); } finally { if (oconPCS != null) { if (oconPCS.State != ConnectionState.Closed) { oconPCS.Close(); } } } #endregion }