Esempio n. 1
0
        private void bbtnOK_Click(object sender, EventArgs e)
        {
            //선택된 OCAP LIST만들기
            DataSet dsSelectOCAP = _SpreadUtil.GetSelectedDataSet(bsprOCAP, _ColIdx_SELECT);
            string  sOCAPList    = _ComUtil.ConvertDataColumnIntoStringList(dsSelectOCAP.Tables[0], COLUMN.CODE, ";");

            if (string.IsNullOrEmpty(sOCAPList))
            {
                MSGHandler.DisplayMessage(MSGType.Information, "SPC_INFO_SELECT_OCAP_ITEM", null, null);
                return;
            }

            if (this.bsprRuleOpt.ActiveSheet.Rows.Count > 0)
            {
                for (int i = 0; i < this.bsprRuleOpt.ActiveSheet.RowCount; i++)
                {
                    if (!this.bsprRuleOpt.ActiveSheet.Cells[i, this._ColIdx_VALUE].Locked)
                    {
                        if (string.IsNullOrEmpty(this.bsprRuleOpt.GetCellText(i, this._ColIdx_VALUE)))
                        {
                            MSGHandler.DisplayMessage(MSGType.Information, "SPC_INFO_INPUT_RULE_OPT", null, null);
                            return;
                        }
                    }
                }
            }

            string sRuleOption     = string.Empty;
            string sRuleOptionData = string.Empty;

            switch (_cofingMode)
            {
            case ConfigMode.CREATE_SUB:
                this.bsprRuleOpt.LeaveCellAction();
                string sRuleRawid = bcboRule.SelectedValue.ToString();

                DataRow[] drSelectRuleMst = _dsSPCRuleMstData.Tables[TABLE.RULE_MST_SPC].Select(string.Format("{0} = '{1}'", COLUMN.RAWID, sRuleRawid));

                //기존 RULE이 있는지 확인
                string sRuleNo   = drSelectRuleMst[0][COLUMN.SPC_RULE_NO].ToString();
                string sRuleDesc = drSelectRuleMst[0][COLUMN.DESCRIPTION].ToString();

                DataRow[] drExistRuleMst = _dtSPCRule.Select(string.Format("{0} = '{1}'", COLUMN.SPC_RULE_NO, sRuleNo));

                if (drExistRuleMst != null && drExistRuleMst.Length > 0)
                {
                    MSGHandler.DisplayMessage(MSGType.Information, "SPC_INFO_DUPLICATE_RULE", null, null);
                    return;
                }

                //없으면 RULE 추가
                DataRow drNewRuleMst = _dtSPCRule.NewRow();

                string sNewModelRuleRawid = "-" + sRuleNo;

                drNewRuleMst[COLUMN.RAWID] = sNewModelRuleRawid;
                drNewRuleMst[COLUMN.MODEL_CONFIG_RAWID] = _ComUtil.NVL(_sConfigRawID, "-1", true);
                drNewRuleMst[COLUMN.SPC_RULE_NO]        = sRuleNo;
                drNewRuleMst[COLUMN.OCAP_LIST]          = sOCAPList;
                drNewRuleMst[COLUMN.USE_MAIN_SPEC_YN]   = "Y";
                drNewRuleMst[COLUMN.USE_MAIN_SPEC]      = "True";
                drNewRuleMst[COLUMN.DESCRIPTION]        = sRuleDesc;
                //drNewRuleMst["RULE_OPTION"] = "";
                //drNewRuleMst["RULE_OPTION_DATA"] = "";

                DataTable dtSelectRuleOpt = ((DataSet)bsprRuleOpt.DataSet).Tables[0];
                bool      bcheckString    = false;

                foreach (DataRow drSelectRuleOpt in dtSelectRuleOpt.Rows)
                {
                    DataRow drNewRuleOpt = _dtSPCRuleOpt.NewRow();

                    //drNewRuleOpt["RAWID"] = "";
                    drNewRuleOpt[COLUMN.MODEL_RULE_RAWID] = sNewModelRuleRawid;
                    drNewRuleOpt[COLUMN.SPC_RULE_NO]      = drSelectRuleOpt[COLUMN.SPC_RULE_NO];
                    drNewRuleOpt[COLUMN.RULE_OPTION_NO]   = drSelectRuleOpt[COLUMN.RULE_OPTION_NO];

                    //SPC-1262 KB LEE : Rule Option Validation 기능 추가
                    if (!ValidateRuleOption())
                    {
                        return;
                    }

                    drNewRuleOpt[COLUMN.RULE_OPTION_VALUE] = drSelectRuleOpt[COLUMN.RULE_OPTION_VALUE];
                    drNewRuleOpt[COLUMN.OPTION_NAME]       = drSelectRuleOpt[COLUMN.OPTION_NAME];
                    drNewRuleOpt[COLUMN.DESCRIPTION]       = drSelectRuleOpt[COLUMN.DESCRIPTION];

                    _dtSPCRuleOpt.Rows.Add(drNewRuleOpt);

                    sRuleOption     += string.Format("{0}={1};", drSelectRuleOpt[COLUMN.OPTION_NAME], drSelectRuleOpt[COLUMN.RULE_OPTION_VALUE]);
                    sRuleOptionData += string.Format("{0}.{1}={2};", drSelectRuleOpt[COLUMN.RULE_OPTION_NO], drSelectRuleOpt[COLUMN.OPTION_NAME], drSelectRuleOpt[COLUMN.RULE_OPTION_VALUE]);
                }

                drNewRuleMst[COLUMN.RULE_OPTION]      = sRuleOption;
                drNewRuleMst[COLUMN.RULE_OPTION_DATA] = sRuleOptionData;

                _dtSPCRule.Rows.Add(drNewRuleMst);

                break;

            case ConfigMode.MODIFY:

                //#01. RULE OPTION
                this.bsprRuleOpt.LeaveCellAction();
                DataTable dtModifyRuleOpt = ((DataSet)this.bsprRuleOpt.DataSet).Tables[0];

                foreach (DataRow drModifyRuleOpt in dtModifyRuleOpt.Rows)
                {
                    DataRow[] drModifyRuleOPTs = _dtSPCRuleOpt.Select(string.Format("{0} = '{1}' AND {2} = '{3}'",
                                                                                    COLUMN.MODEL_RULE_RAWID,
                                                                                    drModifyRuleOpt[COLUMN.MODEL_RULE_RAWID],
                                                                                    COLUMN.RULE_OPTION_NO,
                                                                                    drModifyRuleOpt[COLUMN.RULE_OPTION_NO])
                                                                      );

                    //SPC-1262 KB LEE : Rule Option Validation 기능 추가
                    if (!ValidateRuleOption())
                    {
                        return;
                    }

                    if (drModifyRuleOPTs != null && drModifyRuleOPTs.Length > 0)
                    {
                        drModifyRuleOPTs[0][COLUMN.RULE_OPTION_VALUE] = drModifyRuleOpt[COLUMN.RULE_OPTION_VALUE];
                    }
                    //
                    sRuleOption     += string.Format("{0}={1};", drModifyRuleOpt[COLUMN.OPTION_NAME], drModifyRuleOpt[COLUMN.RULE_OPTION_VALUE]);
                    sRuleOptionData += string.Format("{0}.{1}={2};", drModifyRuleOpt[COLUMN.RULE_OPTION_NO], drModifyRuleOpt[COLUMN.OPTION_NAME], drModifyRuleOpt[COLUMN.RULE_OPTION_VALUE]);
                }

                //#02. RULE
                DataRow[] drSelectRule = _dtSPCRule.Select(string.Format("{0} = '{1}'", COLUMN.SPC_RULE_NO, _sRuleNO));

                drSelectRule[0][COLUMN.OCAP_LIST]        = sOCAPList;
                drSelectRule[0][COLUMN.RULE_OPTION]      = sRuleOption;
                drSelectRule[0][COLUMN.RULE_OPTION_DATA] = sRuleOptionData;

                this.DialogResult = DialogResult.OK;

                break;
            }

            //this.DialogResult = DialogResult.OK;
        }