Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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();
            }
        }
Ejemplo n.º 3
0
        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();
                }
            }
        }
Ejemplo n.º 4
0
        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();
                }
            }
        }