private void ClickButtonChartView() { ArrayList alCheckRowIndex = _bSpreadUtil.GetCheckedRowIndex(this.bsprData, (int)enum_ProcessCapability.SPC_V_SELECT); if (alCheckRowIndex.Count < 1 || alCheckRowIndex.Count > 1) { MSGHandler.DisplayMessage(MSGType.Information, MSGHandler.GetMessage("FDC_ALLOW_SINGLE_SELECTED_ROW")); return; } int iRowIndex = (int)alCheckRowIndex[0]; string strSPCModeName = this.bsprData.ActiveSheet.Cells[iRowIndex, (int)enum_PpkUC.PARAM_ALIAS].Text; string strModelConfigRawID = this.bsprData.ActiveSheet.Cells[iRowIndex, (int)enum_PpkUC.MODEL_CONFIG_RAWID].Text; string strDefaultChart = this.bsprData.ActiveSheet.Cells[iRowIndex, (int)enum_PpkUC.DEFAULT_CHART_LIST].Text; string strComplex_yn = this.bsprData.ActiveSheet.Cells[iRowIndex, (int)enum_PpkUC.COMPLEX_YN].Text; string strParamAlias = this.bsprData.ActiveSheet.Cells[iRowIndex, (int)enum_PpkUC.PARAM_ALIAS].Text; string strArea = this.bsprData.ActiveSheet.Cells[iRowIndex, (int)enum_PpkUC.AREA].Text; string strOperation = this.bsprData.ActiveSheet.Cells[iRowIndex, (int)enum_PpkUC.OPERATION_ID].Text; if (string.IsNullOrEmpty(strDefaultChart)) { MSGHandler.DisplayMessage(MSGType.Information, string.Format(MSGHandler.GetMessage("GENERAL_NO_ITEM"), "Default Charts")); return; } StringBuilder sb = new StringBuilder(); sb.AppendFormat(" ({0} ={1} OR {2} ={1})", Definition.DynamicCondition_Condition_key.OPERATION_ID, CommonPageUtil.GetConCatString(strOperation), Definition.DynamicCondition_Condition_key.MEASURE_OPERATION_ID); sb.AppendFormat(" AND {0} = {1}", Definition.DynamicCondition_Condition_key.PARAM_ALIAS, CommonPageUtil.GetConCatString(strParamAlias)); for (int i = 1; i < this._sortHeader.Count; i++) { string sColumn = this._sortHeader[i].ToString(); string sValue = this.bsprData.ActiveSheet.Cells[iRowIndex, i].Text; if (sColumn == Definition.CHART_COLUMN.USL) { if (string.IsNullOrEmpty(sValue)) { sb.AppendFormat(" AND {0} IS NULL", Definition.CHART_COLUMN.MEAN_USL); } else { sb.AppendFormat(" AND {0} = {1}", Definition.CHART_COLUMN.MEAN_USL, CommonPageUtil.GetConCatString(sValue)); } } else if (sColumn == Definition.CHART_COLUMN.LSL) { if (string.IsNullOrEmpty(sValue)) { sb.AppendFormat(" AND {0} IS NULL", Definition.CHART_COLUMN.MEAN_LSL); } else { sb.AppendFormat(" AND {0} = {1}", Definition.CHART_COLUMN.MEAN_LSL, CommonPageUtil.GetConCatString(sValue)); } } else if (sColumn == Definition.CHART_COLUMN.PERIOD) { sb.AppendFormat(" AND {0} = {1}", Definition.CHART_COLUMN.PERIOD, CommonPageUtil.GetConCatString(sValue)); } if (this.arrSortingKey.Contains(sColumn)) { if (!string.IsNullOrEmpty(sValue)) { sb.AppendFormat(" AND {0} = {1}", sColumn, CommonPageUtil.GetConCatString(sValue)); } } } DataTable dtParamData = DataUtil.DataTableImportRow(_dtResult.Select(sb.ToString())); if (DataUtil.IsNullOrEmptyDataTable(dtParamData)) { MSGHandler.DisplayMessage(MSGType.Information, MSGHandler.GetMessage("INFORMATION_NODATA")); return; } CreateChartDataTable _chartData = new CreateChartDataTable(); _chartData.COMPLEX_YN = strComplex_yn; dtParamData = _chartData.GetPpkChkartMakeDataTable(dtParamData); ChartViewPopup chartViewPop = new ChartViewPopup(); chartViewPop.ChartVariable.LINE = _Line; chartViewPop.ChartVariable.AREA = strArea; chartViewPop.ChartVariable.DEFAULT_CHART = strDefaultChart; chartViewPop.ChartVariable.SPC_MODEL = strSPCModeName; chartViewPop.ChartVariable.PARAM_ALIAS = strSPCModeName; chartViewPop.ChartVariable.OPERATION_ID = strOperation; chartViewPop.ChartVariable.PRODUCT_ID = null; chartViewPop.ChartVariable.lstRawColumn = _chartData.lstRawColumn; chartViewPop.ChartVariable.dtParamData = dtParamData; chartViewPop.ChartVariable.complex_yn = strComplex_yn; chartViewPop.ChartVariable.dateTimeStart = DateTime.Parse(sStartTime); chartViewPop.ChartVariable.dateTimeEnd = DateTime.Parse(sEndTime); chartViewPop.ChartVariable.MODEL_CONFIG_RAWID = strModelConfigRawID; chartViewPop.ChartVariable.MAIN_YN = this.bsprData.ActiveSheet.Cells[iRowIndex, (int)enum_PpkUC.MAIN_YN].Text; chartViewPop.ChartVariable.CONTEXT_LIST = sb.ToString(); chartViewPop.ChartVariable.CHART_PARENT_MODE = CHART_PARENT_MODE.PPK_REPORT; chartViewPop.URL = this.URL; chartViewPop.SessionData = this.sessionData; chartViewPop.InitializePopup(); DialogResult result = chartViewPop.ShowDialog(this); if (result == DialogResult.OK) { dtParamData = null; chartViewPop = null; } _chartData = null; }
private void PROC_DataBinding() { DataSet ds = null; DataTableGroupBy dtGroupBy = null; string sFieldList = string.Empty; string sGroupBy = string.Empty; string sFilter = string.Empty; LinkedList _llstCol = new LinkedList(); DataRow nRow = null; DataTable dtResult = null; DataTable dtBasis = null; DataTable dtTarget = null; try { this.MsgShow(_lang.GetVariable("RMS_PROGRESS_SEARCH")); dtGroupBy = new DataTableGroupBy(); CreateChartDataTable _chartData = new CreateChartDataTable(); LinkedList _llstWhere = new LinkedList(); //Table 생성 dtResult = new DataTable(); CreateTable(dtResult); //기준Step string sParam = "'" + CommonPageUtil.GetConditionKeyArrayList(this._arrItem).Replace(",", "','") + "'"; DataSet dsBasis = GetResultDataSet(this._bProb, sParam, this._sOperation, this._arrInfo, this._arrSubData); if (!DataUtil.IsNullOrEmptyDataSet(dsBasis)) { if (!this._bProb) { _llstCol = GetQueryColumn(_bProb); if (this._arrSortingKey.Contains(Definition.CHART_COLUMN.MOCVDNAME)) { dtBasis = CommonPageUtil.CLOBnBLOBParsing(dsBasis, _llstWhere, false, true); } else { dtBasis = CommonPageUtil.CLOBnBLOBParsing(dsBasis, _llstWhere, false, false); } _llstCol.Clear(); for (int i = 0; i < this._arrSubData.Count; i++) { _llstCol.Add(this._arrSubData[i].ToString(), "1"); } dtBasis = _chartData.GetMakeDataTable(dtBasis, _llstCol); } else { dtBasis = dsBasis.Tables[0]; } } //Target if (!string.IsNullOrEmpty(_sTargetOperation)) { string sParamTarget = "'" + CommonPageUtil.GetConditionKeyArrayList(this._arrTargetItem).Replace(",", "','") + "'"; DataSet dsTarget = GetResultDataSet(this._bTartProb, sParamTarget, this._sTargetOperation, this._arrTargetInfo, this._arrTargetSubData); if (!DataUtil.IsNullOrEmptyDataSet(dsTarget)) { if (!this._bTartProb) { if (this._arrSortingKey.Contains(Definition.CHART_COLUMN.MOCVDNAME)) { dtTarget = CommonPageUtil.CLOBnBLOBParsing(dsTarget, _llstWhere, false, true); } else { dtTarget = CommonPageUtil.CLOBnBLOBParsing(dsTarget, _llstWhere, false, false); } _llstCol.Clear(); for (int i = 0; i < this._arrTargetSubData.Count; i++) { _llstCol.Add(this._arrTargetSubData[i].ToString(), "1"); } dtTarget = _chartData.GetMakeDataTable(dtTarget, _llstCol); } else { dtTarget = dsTarget.Tables[0]; } } } this.bSpread1.DataSource = null; if (!DataUtil.IsNullOrEmptyDataTable(dtBasis)) { this.MakeCrateTable(dtBasis, dtTarget, this._bProb, this._bTartProb, dtResult); } else { this.MsgClose(); MSGHandler.DisplayMessage(MSGType.Warning, MSGHandler.GetMessage("INFORMATION_NODATA")); } this.bSpread1.DataSource = dtResult; this.bSpread1.ActiveSheet.ColumnHeader.Cells[0, this._arrSortingKey.Count].Text = this._sOperationDesc; if (!string.IsNullOrEmpty(this._sTargetOperation)) { this.bSpread1.ActiveSheet.ColumnHeader.Cells[0, this.bSpread1.ActiveSheet.ColumnCount - (this._arrTargetItem.Count * this._arrTargetSubData.Count) - this._arrTargetInfo.Count].Text = this._sTargetOperationDesc; } } catch (Exception ex) { this.MsgClose(); LogHandler.ExceptionLogWrite(Definition.APPLICATION_NAME, ex); } finally { if (ds != null) { ds.Dispose(); } this.MsgClose(); } }
private void PROC_DataBinding() { ////초기화 StringBuilder sb = null; StringBuilder sbSort = null; CreateChartDataTable _chartData = null; DataTableGroupBy dtGroupBy = null; DataTable dtGB = null; DataTable dtSearch = null; DataSet _ds = null; CommonSPCStat comSPCStat = null; List <double> listRawData = null; DataRow nRow = null; string sField = string.Empty; string sGroupBy = string.Empty; string sRowFilter = string.Empty; string sWhere = string.Empty; StringBuilder sbField = new StringBuilder(); StringBuilder sbGroup = new StringBuilder(); try { dtGB = new DataTable(); dtSearch = new DataTable(); dtGroupBy = new DataTableGroupBy(); _chartData = new CreateChartDataTable(); sb = new StringBuilder(); sbSort = new StringBuilder(); comSPCStat = new CommonSPCStat(); this.bsprData.ActiveSheet.ColumnCount = 0; this.bsprData.ActiveSheet.RowCount = 0; SpreadHeader(); this.bsprData.ActiveSheet.RowCount = 0; this.bsprData.DataSource = null; this.MsgShow(COMMON_MSG.Query_Data); _llstSearchCondition.Add(Definition.CONDITION_KEY_CONTEXT_KEY_LIST, GetSelectString()); _ds = _wsSPC.GetPpkReport(_llstSearchCondition.GetSerialData()); if (!DataUtil.IsNullOrEmptyDataSet(_ds)) { dtSearch = CommonPageUtil.CLOBnBLOBParsing(_ds, _llstSearchCondition, false); if (_ds != null) { _ds.Dispose(); } if (DataUtil.IsNullOrEmptyDataTable(dtSearch)) { this.MsgClose(); MSGHandler.DisplayMessage(MSGType.Warning, MSGHandler.GetMessage("INFORMATION_NODATA")); return; } _chartData.COMPLEX_YN = "N"; if (dtSearch.Rows.Count > 0) { _chartData.COMPLEX_YN = dtSearch.Rows[0]["COMPLEX_YN"].ToString(); } _dtResult = _chartData.GetPpkMakeDataTable(dtSearch); _lstRawColumn = _chartData.lstRawColumn; if (_chartData != null) { _chartData = null; } sbField.AppendFormat("MODEL_CONFIG_RAWID,COMPLEX_YN,MAIN_YN,DEFAULT_CHART_LIST,AREA,{0} ,PARAM_ALIAS", _OperationColumnName); sbGroup.AppendFormat("MODEL_CONFIG_RAWID,COMPLEX_YN,MAIN_YN,DEFAULT_CHART_LIST,AREA,{0},PARAM_ALIAS", _OperationColumnName); sbSort.AppendFormat("{0},PARAM_ALIAS", _OperationColumnName); for (int i = 0; i < this.arrSortingKey.Count; i++) { string sCol = this.arrSortingKey[i].ToString(); if (_dtResult.Columns.Contains(sCol)) { sbField.AppendFormat(",{0}", sCol); sbGroup.AppendFormat(",{0}", sCol); sbSort.AppendFormat(",{0}", sCol); } } sbSort.Append(",PERIOD,USL,LSL ASC"); sbField.Append(",PERIOD,MEAN_LSL LSL,MEAN_USL USL "); sbGroup.Append(",PERIOD,MEAN_LSL,MEAN_USL "); sRowFilter = string.Empty; dtGB = dtGroupBy.SelectGroupByInto("PPK", _dtResult, sbField.ToString(), sRowFilter, sbGroup.ToString()); dtGB = DataUtil.DataTableImportRow(dtGB.Select(null, sbSort.ToString())); } else { this.MsgClose(); MSGHandler.DisplayMessage(MSGType.Warning, MSGHandler.GetMessage("INFORMATION_NODATA")); return; } _llstSearchCondition.Clear(); _llstSearchCondition.Add(Definition.DynamicCondition_Condition_key.OPERATION_TYPE, this._sParamTypeCD == "MET" ? "METROLOGY" : "PROCESSING"); DataSet dsOperation = _wsSPC.GetOperationID(_llstSearchCondition.GetSerialData()); _dtMain = dtGB.Copy(); _dtMain.Columns.Add(Definition.CHART_COLUMN.OPERATION_DESC, typeof(string)); _dtMain.Columns.Add(Definition.CHART_COLUMN.SPEC, typeof(string)); _dtMain.Columns.Add(Definition.CHART_COLUMN.MIN, typeof(double)); _dtMain.Columns.Add(Definition.CHART_COLUMN.MAX, typeof(double)); _dtMain.Columns.Add(Definition.CHART_COLUMN.SUM, typeof(double)); _dtMain.Columns.Add(Definition.CHART_COLUMN.SUM_SQUARED, typeof(double)); _dtMain.Columns.Add(Definition.CHART_COLUMN.STDDEV, typeof(double)); _dtMain.Columns.Add(Definition.CHART_COLUMN.AVG, typeof(double)); _dtMain.Columns.Add(Definition.CHART_COLUMN.PPK, typeof(double)); _dtMain.Columns.Add(Definition.CHART_COLUMN.PP, typeof(double)); _dtMain.Columns.Add(Definition.CHART_COLUMN.PPU, typeof(double)); _dtMain.Columns.Add(Definition.CHART_COLUMN.PPL, typeof(double)); _dtMain.Columns.Add(Definition.CHART_COLUMN.LOT_QTY, typeof(int)); _dtMain.Columns.Add(Definition.CHART_COLUMN.SAMPLE_QTY, typeof(int)); sField = "count(LOT_ID) count "; sGroupBy = "LOT_ID"; sRowFilter = string.Empty; StringBuilder sbSelect = null; for (int i = 0; i < dtGB.Rows.Count; i++) { string param_alias = dtGB.Rows[i][Definition.CHART_COLUMN.PARAM_ALIAS].ToString(); string operation = dtGB.Rows[i][_OperationColumnName].ToString(); string sUsl = dtGB.Rows[i][Definition.CHART_COLUMN.USL].ToString(); string sLsl = dtGB.Rows[i][Definition.CHART_COLUMN.LSL].ToString(); double usl = double.NaN; double lsl = double.NaN; if (!string.IsNullOrEmpty(sUsl)) { usl = double.Parse(sUsl); } if (!string.IsNullOrEmpty(sLsl)) { lsl = double.Parse(sLsl); } sbSelect = new StringBuilder(); if (double.IsNaN(usl) && double.IsNaN(lsl)) { sbSelect.AppendFormat("PARAM_ALIAS = '{0}' AND {1} = '{2}' AND MEAN_USL IS NULL AND MEAN_LSL IS NULL AND PERIOD = '{3}' " , param_alias , this._OperationColumnName , operation , dtGB.Rows[i]["PERIOD"].ToString() ); } else if (double.IsNaN(usl) && !double.IsNaN(lsl)) { sbSelect.AppendFormat("PARAM_ALIAS = '{0}' AND {1} = '{2}' AND MEAN_USL IS NULL AND MEAN_LSL = '{3}' AND PERIOD = '{4}' " , param_alias , this._OperationColumnName , operation , sLsl , dtGB.Rows[i]["PERIOD"].ToString() ); } else if (!double.IsNaN(usl) && double.IsNaN(lsl)) { sbSelect.AppendFormat("PARAM_ALIAS = '{0}' AND {1} = '{2}' AND MEAN_USL = '{3}' AND MEAN_LSL IS NULL AND PERIOD = '{4}' " , param_alias , this._OperationColumnName , operation , sUsl , dtGB.Rows[i]["PERIOD"].ToString() ); } else { sbSelect.AppendFormat("PARAM_ALIAS = '{0}' AND {1} = '{2}' AND MEAN_USL = '{3}' AND MEAN_LSL = '{4}' AND PERIOD = '{5}' " , param_alias , this._OperationColumnName , operation , sUsl , sLsl , dtGB.Rows[i]["PERIOD"].ToString() ); } for (int k = 0; k < this.arrSortingKey.Count; k++) { string sCol = this.arrSortingKey[k].ToString(); if (_dtResult.Columns.Contains(sCol)) { sbSelect.AppendFormat(" AND {0} = '{1}'", sCol, dtGB.Rows[i][sCol].ToString()); } } DataTable dt = DataUtil.DataTableImportRow(_dtResult.Select(sbSelect.ToString())); listRawData = comSPCStat.AddDataList(dt); if (listRawData.Count == 0) { continue; } DataRow[] drSelectOperation = dsOperation.Tables[0].Select(string.Format("OPERATION_ID='{0}'", operation)); comSPCStat.CalcPpk(listRawData.ToArray(), usl, lsl); nRow = _dtMain.Rows[i]; nRow[Definition.CHART_COLUMN.OPERATION_DESC] = drSelectOperation.Length > 0 ? drSelectOperation[0]["DESCRIPTION"].ToString() : null; nRow[Definition.CHART_COLUMN.SPEC] = sLsl + "~" + sUsl; nRow[Definition.CHART_COLUMN.SAMPLE_QTY] = listRawData.Count; nRow[Definition.CHART_COLUMN.MIN] = comSPCStat.min; nRow[Definition.CHART_COLUMN.MAX] = comSPCStat.max; nRow[Definition.CHART_COLUMN.AVG] = comSPCStat.mean; nRow[Definition.CHART_COLUMN.SUM] = comSPCStat.sum; nRow[Definition.CHART_COLUMN.STDDEV] = comSPCStat.stddev; nRow[Definition.CHART_COLUMN.SUM_SQUARED] = comSPCStat.sum2; if (double.IsNaN(comSPCStat.ppk)) { nRow[Definition.CHART_COLUMN.PPK] = DBNull.Value; } else { nRow[Definition.CHART_COLUMN.PPK] = comSPCStat.ppk; } if (double.IsNaN(comSPCStat.pp)) { nRow[Definition.CHART_COLUMN.PP] = DBNull.Value; } else { nRow[Definition.CHART_COLUMN.PP] = comSPCStat.pp; } if (double.IsNaN(comSPCStat.ppu)) { nRow[Definition.CHART_COLUMN.PPU] = DBNull.Value; } else { nRow[Definition.CHART_COLUMN.PPU] = comSPCStat.ppu; } if (double.IsNaN(comSPCStat.ppl)) { nRow[Definition.CHART_COLUMN.PPL] = DBNull.Value; } else { nRow[Definition.CHART_COLUMN.PPL] = comSPCStat.ppl; } nRow[Definition.CHART_COLUMN.LOT_QTY] = dtGroupBy.SelectGroupByInto("LOT", dt, sField, sRowFilter, sGroupBy).Rows.Count; } _dtMain.AcceptChanges(); this.bsprData.UseSpreadEdit = false; this.bsprData.AutoGenerateColumns = false; this.bsprData.ActiveSheet.DefaultStyle.ResetLocked(); this.bsprData.ClearHead(); this.bsprData.UseEdit = true; this.bsprData.Locked = true; //this.bsprData.ActiveSheet.FrozenColumnCount = 1; this.bsprData.ColFronzen = 1; this._Initialization.InitializePpkColumnHeader(ref this.bsprData, _sortHeader, this._sortHeaderLabel); this.bsprData.DataSource = _dtMain; if (dsOperation != null) { dsOperation.Dispose(); } } catch (Exception ex) { LogHandler.ExceptionLogWrite(Definition.APPLICATION_NAME, ex); } finally { this.MsgClose(); if (dtGB != null) { dtGB.Dispose(); } if (_dtMain != null) { _dtMain.Dispose(); } } }
private void PROC_DataBinding() { DataSet _ds = null; CreateChartDataTable _createChartDT = null; try { _dtChartData = new DataTable(); _createChartDT = new CreateChartDataTable(); this.MsgShow(this._lang.GetVariable("RMS_PROGRESS_SEARCH")); _ds = _wsSPC.GetSPCControlChartData(_llstSearchCondition.GetSerialData()); if (DataUtil.IsNullOrEmptyDataSet(_ds)) { this.MsgClose(); MSGHandler.DisplayMessage(MSGType.Warning, MSGHandler.GetMessage("INFORMATION_NODATA")); } else { this._dtChartData = CommonPageUtil.CLOBnBLOBParsing(_ds, _llstSearchCondition, false); if (_ds != null) { _ds.Dispose(); } //초기설정된 값만큼만 조회 if (iSearch == 0) { if (_dtChartData.Rows.Count > this.restrict_sample_count) { DataTable dtCopy = new DataTable(); DataRow[] drSelect = _dtChartData.Select(null, Definition.CHART_COLUMN.TIME + " desc"); if (drSelect.Length > 0) { dtCopy = drSelect[0].Table.Clone(); } for (int i = 0; i <= this.restrict_sample_count; i++) { dtCopy.ImportRow(drSelect[i]); } _dtChartData = DataUtil.DataTableImportRow(dtCopy.Select(null, "TIME")); dtCopy.Dispose(); } } else { _dtChartData = DataUtil.DataTableImportRow(_dtChartData.Select(null, Definition.CHART_COLUMN.TIME)); } if (string.IsNullOrEmpty(_dtChartData.Rows[0]["default_chart_list"].ToString())) { this.MsgClose(); MSGHandler.DisplayMessage(MSGType.Warning, string.Format(MSGHandler.GetMessage("GENERAL_NO_ITEM"), "Default Charts")); } else { _chartVariable.lstDefaultChart.Clear(); _chartVariable.DEFAULT_CHART = _dtChartData.Rows[0]["default_chart_list"].ToString(); _chartVariable.complex_yn = _dtChartData.Rows[0]["COMPLEX_YN"].ToString(); _chartVariable.MAIN_YN = _dtChartData.Rows[0]["MAIN_YN"].ToString(); _chartVariable.MODEL_CONFIG_RAWID = _dtChartData.Rows[0]["MODEL_CONFIG_RAWID"].ToString(); _chartVariable.SPC_MODEL = _dtChartData.Rows[0]["SPC_MODEL_NAME"].ToString(); //_chartVariable.PARAM_ALIAS = sParameter; _chartVariable.PARAM_ALIAS = _dtChartData.Rows[0]["PARAM_ALIAS"].ToString(); _chartVariable.OPERATION_ID = _dtChartData.Rows[0][Definition.CHART_COLUMN.OPERATION_ID].ToString(); _chartVariable.PRODUCT_ID = _dtChartData.Rows[0][Definition.CHART_COLUMN.PRODUCT_ID].ToString(); _chartVariable.RESTRICT_SAMPLE_DAYS = _dtChartData.Rows[0]["RESTRICT_SAMPLE_DAYS"].ToString(); _chartVariable.AREA = _dtChartData.Rows[0]["AREA"].ToString(); _createChartDT.COMPLEX_YN = _chartVariable.complex_yn; _chartVariable.lstDefaultChart = CommonPageUtil.DefaultChartSplit(_chartVariable.DEFAULT_CHART); _chartVariable.CHART_PARENT_MODE = CHART_PARENT_MODE.SPC_CONTROL_CHART; _chartVariable.lstRawColumn = _createChartDT.lstRawColumn; //_createChartDT.CallRefCol(_dtChartData); Console.WriteLine(DateTime.Now.ToString()); _chartVariable.dtParamData = _createChartDT.GetMakeDataTable(_dtChartData); Console.WriteLine(DateTime.Now.ToString()); if (_createChartDT != null) { _createChartDT = null; } } } AddContrChart(); } catch (Exception ex) { LogHandler.ExceptionLogWrite(Definition.APPLICATION_NAME, ex); } finally { this.MsgClose(); if (_createChartDT != null) { _createChartDT = null; } if (_chartVariable != null) { _chartVariable = null; } if (_dtChartData != null) { _dtChartData.Dispose(); } } }