private void PROC_Operation() { LinkedList mllstData = new LinkedList(); //mllstData.Add(Definition.DynamicCondition_Condition_key.OPERATION_TYPE, argParamTYPE); this.mDSOperation = _wsSPC.GetOperationID(mllstData.GetSerialData()); }
private void PROC_BindTargetOperation() { DataSet _dsCode = null; if (brbMet.Checked) { _llstData.Clear(); _llstData.Add(Definition.DynamicCondition_Condition_key.OPERATION_TYPE, "METROLOGY"); } else { _llstData.Clear(); _llstData.Add(Definition.DynamicCondition_Condition_key.OPERATION_TYPE, "PROCESSING"); } _dsCode = _wsSPC.GetOperationID(_llstData.GetSerialData()); this.bcboTargetOperation.DataSource = null; if (!DataUtil.IsNullOrEmptyDataSet(_dsCode)) { this._comUtil.SetBComboBoxData(bcboTargetOperation, _dsCode, Definition.DynamicCondition_Condition_key.CODE_DESCRIPTION , Definition.DynamicCondition_Condition_key.OPERATION_ID, this._sTargetOperationID, true); } }
private void PROC_BindTargetOperation() { DataSet _dsCode = null; if (brbMet.Checked) { _llstData.Clear(); _llstData.Add(Definition.DynamicCondition_Condition_key.OPERATION_TYPE, "METROLOGY"); } else { _llstData.Clear(); _llstData.Add(Definition.DynamicCondition_Condition_key.OPERATION_TYPE, "PROCESSING"); } _dsCode = _wsSPC.GetOperationID(_llstData.GetSerialData()); this.bcboTargetOperation.DataSource = null; if (!DataUtil.IsNullOrEmptyDataSet(_dsCode)) { this.bcboTargetOperation.DataSource = _dsCode.Tables[0]; this.bcboTargetOperation.ValueMember = Definition.DynamicCondition_Condition_key.OPERATION_ID; this.bcboTargetOperation.DisplayMember = Definition.DynamicCondition_Condition_key.CODE_DESCRIPTION; } }
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(); } } }
public void InitializeCode() { //Select,Target,Step,Info,Item,SubData this.bSpreadSelect.ActiveSheet.RowCount = 0; this.bSpreadSelect.ActiveSheet.Columns.Count = 8; this.bSpreadSelect.AddHead(0, this._mlthandler.GetVariable(Definition.SpreadHeaderColKey.V_SELECT), "_SELECT", 50, 20, null, null, null, ColumnAttribute.Null, ColumnType.CheckBox, null, null, null, false, true); this.bSpreadSelect.AddHead(1, Definition.STEP_DATAMAPPING.BASE, Definition.STEP_DATAMAPPING.BASE, 50, 20, null, null, null, ColumnAttribute.Null, ColumnType.CheckBox, null, null, null, false, true); this.bSpreadSelect.AddHead(2, Definition.CHART_COLUMN.OPERATION_ID, Definition.STEP_DATAMAPPING.OPERATION_ID, 100, 20, null, null, null, ColumnAttribute.Null, ColumnType.Null, null, null, null, false, false); this.bSpreadSelect.AddHead(3, this._mlthandler.GetVariable(Definition.CHART_COLUMN.OPERATION_ID), Definition.STEP_DATAMAPPING.OPERATION_DESCRIPTION, 180, 20, null, null, null, ColumnAttribute.Null, ColumnType.Null, null, null, null, false, true); this.bSpreadSelect.AddHead(4, Definition.STEP_DATAMAPPING.INFORMATION, Definition.STEP_DATAMAPPING.INFORMATION, 150, 300, null, null, null, ColumnAttribute.Null, ColumnType.Null, null, null, null, false, true); this.bSpreadSelect.AddHead(5, Definition.STEP_DATAMAPPING.ITEM, Definition.STEP_DATAMAPPING.ITEM, 150, 300, null, null, null, ColumnAttribute.Null, ColumnType.Null, null, null, null, false, true); this.bSpreadSelect.AddHead(6, Definition.STEP_DATAMAPPING.SUBDATA, Definition.STEP_DATAMAPPING.SUBDATA, 150, 300, null, null, null, ColumnAttribute.Null, ColumnType.Null, null, null, null, false, true); this.bSpreadSelect.AddHead(7, Definition.STEP_DATAMAPPING.PROBE, Definition.STEP_DATAMAPPING.PROBE, 150, 300, null, null, null, ColumnAttribute.Null, ColumnType.Null, null, null, null, false, false); this.bSpreadSelect.AddHead(8, Definition.STEP_DATAMAPPING.TYPE, Definition.STEP_DATAMAPPING.TYPE, 150, 300, null, null, null, ColumnAttribute.Null, ColumnType.Null, null, null, null, false, false); this.bSpreadSelect.AddHeadComplete(); this.bSpreadSelect.DataSource = this.dtParam; //Probe 공정 this.PROC_ProbDataCall(); this._llstData.Clear(); if (brbtnMetrology.Checked == true) { this._llstData.Add(Definition.DynamicCondition_Condition_key.OPERATION_TYPE, "METROLOGY"); } else if (brbtnMain.Checked == true) { this._llstData.Add(Definition.DynamicCondition_Condition_key.OPERATION_TYPE, "PROCESSING"); } else //Default = Metrology { this._llstData.Add(Definition.DynamicCondition_Condition_key.OPERATION_TYPE, "METROLOGY"); } DataSet _ds = _wsSPC.GetOperationID(_llstData.GetSerialData()); if (!DataUtil.IsNullOrEmptyDataSet(_ds)) { DataTable dt = _ds.Tables[0]; if (!DataUtil.IsNullOrEmptyDataSet(this._dsProbeOperation)) { DataRow _dr = null; foreach (DataRow dr in _dsProbeOperation.Tables[0].Rows) { string sCode = dr[Definition.CHART_COLUMN.OPERATION_ID].ToString(); bool bContains = false; foreach (DataRow dRow in dt.Rows) { if (dRow[Definition.CHART_COLUMN.OPERATION_ID].ToString().Equals(sCode)) { bContains = true; break; } } if (!bContains) { _dr = dt.NewRow(); _dr[Definition.CHART_COLUMN.OPERATION_ID] = sCode; _dr[Definition.DynamicCondition_Condition_key.CODE_DESCRIPTION] = sCode + " " + dr[Definition.DynamicCondition_Condition_key.CODE_DESCRIPTION].ToString(); dt.Rows.Add(_dr); } } } this.bSpreadStepMet.ClearHead(); this.bSpreadStepMet.DataSource = null; this.bSpreadStepMet.ActiveSheet.RowCount = 0; this.bSpreadStepMet.ActiveSheet.Columns.Count = 3; this.bSpreadStepMet.AddHead(0, this._mlthandler.GetVariable(Definition.SpreadHeaderColKey.V_SELECT), "_SELECT", 50, 20, null, null, null, ColumnAttribute.Null, ColumnType.CheckBox, null, null, null, false, true); this.bSpreadStepMet.AddHead(1, Definition.CONDITION_KEY_CODE, Definition.CHART_COLUMN.OPERATION_ID, 50, 20, null, null, null, ColumnAttribute.Null, ColumnType.Null, null, null, null, false, false); this.bSpreadStepMet.AddHead(2, Definition.CONDITION_KEY_NAME, Definition.DynamicCondition_Condition_key.CODE_DESCRIPTION, 150, 300, null, null, null, ColumnAttribute.Null, ColumnType.Null, null, null, null, false, true); this.bSpreadStepMet.AddHeadComplete(); this.bSpreadStepMet.DataSource = dt; } this._llstData.Clear(); this._llstData.Add(Definition.CONDITION_KEY_CATEGORY, Definition.CODE_CATEGORY_SORTING_KEY); this._llstData.Add(Definition.CONDITION_KEY_USE_YN, "Y"); _ds = _wsSPC.GetCodeData(_llstData.GetSerialData()); if (!DataUtil.IsNullOrEmptyDataSet(_ds)) { this.bSpreadSorting.ClearHead(); this.bSpreadSorting.DataSource = null; this.bSpreadSorting.ActiveSheet.RowCount = 0; this.bSpreadSorting.ActiveSheet.Columns.Count = 3; this.bSpreadSorting.AddHead(0, this._mlthandler.GetVariable(Definition.SpreadHeaderColKey.V_SELECT), "_SELECT", 50, 20, null, null, null, ColumnAttribute.Null, ColumnType.CheckBox, null, null, null, false, true); this.bSpreadSorting.AddHead(1, Definition.CONDITION_KEY_CODE, Definition.CONDITION_KEY_CODE, 50, 20, null, null, null, ColumnAttribute.Null, ColumnType.Null, null, null, null, false, false); this.bSpreadSorting.AddHead(2, Definition.CONDITION_KEY_NAME, Definition.CONDITION_KEY_NAME, 80, 20, null, null, null, ColumnAttribute.Null, ColumnType.Null, null, null, null, false, true); this.bSpreadSorting.AddHeadComplete(); this.bSpreadSorting.DataSource = _ds; } }