Winfromはドロップダウンボックスの追加を実現します

IMESはワークショップオプションを増やすためにラインタイプを実現します

オプションは名前の値で、IDとして保存されます
ここに画像の説明を挿入します
ここに画像の説明を挿入します

ページコード


            this.lblShop = new System.Windows.Forms.Label();
            this.cbxShop = new System.Windows.Forms.ComboBox();
            
            this.panelControl.Controls.Add(this.lblShop);
            this.panelControl.Controls.Add(this.cbxShop);

            // 
            // lblShop
            // 
            this.lblShop.AutoSize = true;
            this.lblShop.BackColor = System.Drawing.Color.Transparent;
            this.lblShop.Font = new System.Drawing.Font("微软雅黑", 10F);
            this.lblShop.ImeMode = System.Windows.Forms.ImeMode.NoControl;
            this.lblShop.Location = new System.Drawing.Point(129, 176);
            this.lblShop.Name = "lblShop";
            this.lblShop.Size = new System.Drawing.Size(51, 20);
            this.lblShop.TabIndex = 26;
            this.lblShop.Text = "车间:";
            // 
            // cbxShop
            // 
            this.cbxShop.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.cbxShop.Font = new System.Drawing.Font("微软雅黑", 10F);
            this.cbxShop.FormattingEnabled = true;
            this.cbxShop.Location = new System.Drawing.Point(180, 173);
            this.cbxShop.Margin = new System.Windows.Forms.Padding(2);
            this.cbxShop.Name = "cbxShop";
            this.cbxShop.Size = new System.Drawing.Size(137, 27);
            this.cbxShop.TabIndex = 35;
            this.cbxShop.SelectedIndexChanged += new System.EventHandler(this.cbxSite_SelectedIndexChanged);
            
        private System.Windows.Forms.Label lblShop;
        private System.Windows.Forms.ComboBox cbxShop;

インターフェースコード

        private void EditForm_Load(object sender, EventArgs e)
        {
            exeRes = new ExecuteResult();
            controller = new Controller();
            common = new ImesCommon();
            dtTemp = new DataTable();
            bs = new BaseInfo();

            exeRes = controller.GetSiteCode();
            dtTemp = new DataTable();
            dtTemp = (DataTable)exeRes.Anything;
            for (int i = 0; i < dtTemp.Rows.Count; i++)
            {
                cbxSite.Items.Add(dtTemp.Rows[i][0].ToString());
            }

            exeRes = controller.GetShopCode();
            dtTemp = new DataTable();
            dtTemp = (DataTable)exeRes.Anything;
            for (int i = 0; i < dtTemp.Rows.Count; i++)
            {
                 cbxShop.Items.Add(new Metadata(dtTemp.Rows[i][1].ToString(), dtTemp.Rows[i][0].ToString()));
            }

            exeRes = controller.GetLineType();
            dtTemp = new DataTable();
            dtTemp = (DataTable)exeRes.Anything;
            for (int i = 0; i < dtTemp.Rows.Count; i++)
            {
                cbxLineType.Items.Add(dtTemp.Rows[i][0].ToString());
            }
            if (g_sUpdateType == "MODIFY")
            {
                try
                {
                    txtLine.Enabled = false;
                    ID= dataCurrentRow.Cells["ID"].Value.ToString();
                    txtLine.Text = dataCurrentRow.Cells["LINE"].Value.ToString();
                    txtLineCustomer.Text = dataCurrentRow.Cells["LINE_CUSTOMER"].Value.ToString();
                    txtSapline.Text = dataCurrentRow.Cells["LINE_SAP"].Value.ToString();

                    cbxSite.Items.Clear();
                    cbxSite.Items.Add(dataCurrentRow.Cells["SITE"].Value.ToString());
                    cbxSite.SelectedIndex = 0;
                    cbxSite.Enabled = false;


                    txtLineDesc.Text = dataCurrentRow.Cells["LINE_DESC"].Value.ToString();

                    for (int i = 0; i < cbxLineType.Items.Count; i++)
                    {
                        if (cbxLineType.Items[i].ToString() == dataCurrentRow.Cells["LINE_TYPE"].Value.ToString())
                        {
                            cbxLineType.SelectedIndex = i;
                        }
                    }
                     //车间
                    for (int i = 0; i < cbxShop.Items.Count; i++)
                    {
                        if (cbxShop.Items[i].ToString() == dataCurrentRow.Cells["SHOP"].Value.ToString())
                        {
                            cbxShop.SelectedIndex = i;
                        }
                    }

                    switch (dataCurrentRow.Cells["LINE_LEVEL"].Value.ToString())
                    {
                        case "Golden":
                            cbxLineLevel.SelectedIndex = 0;
                            break;

                        case "Silver":
                            cbxLineLevel.SelectedIndex = 1;
                            break;

                        case "Normal":
                            cbxLineLevel.SelectedIndex = 2;
                            break;
                        default:
                            cbxLineLevel.SelectedIndex = 0;
                            break;
                    }
                    GetBase();

                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                txtLine.Enabled = true;
            }
        }

        public void GetBase()
        { 
            bs.ID = ID;
            bs.LINE = txtLine.Text;
            bs.LINE_CUSTOMER = txtLineCustomer.Text;
            bs.LINE_DESC = txtLineDesc.Text;
            bs.SITE = cbxSite.Text;
            bs.SHOP_ID = ((Metadata)cbxShop.SelectedItem).ID;
            bs.LINE_TYPE = cbxLineType.Text;
            bs.LINE_LEVEL = cbxLineLevel.Text;
            bs.LINE_SAP = txtSapline.Text;
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            if (txtLine.Text.Trim() == "" )
            {
                MessageBox.Show("厂区别不能为空!");
                return;
            }
            
            GetBase();
            exeRes = controller.EditValueInfo(bs, g_sUpdateType);
            if (exeRes.Status)
            {
                MessageBox.Show("成功!");
                DialogResult = DialogResult.OK;
            }
            else
            {
                MessageBox.Show(exeRes.Message);
            }
        }

モデルコード

class BaseInfo   {
    string shop = "";
        public string SHOP
        {
            get { return shop; }
            set { shop = value; }
        }
     }
     
   class Metadata
    {
        string id = "";
        public string ID
        {
            get { return id; }
            set { id = value; }
        }

        string name = "";
        public string NAME
        {
            get { return name; }
            set { name = value; }
        }

        public Metadata(string name, string id)
        {
            this.id = id;
            this.name = name;
        }

        public override string ToString()
        {
            return this.name;
        }

BLLコード

public ExecuteResult EditValueInfo(BaseInfo bs, string Type)
        {
            if (Type== "APPEND")
            {
                exeRes = GetValue(bs);
                if (exeRes.Status)
                {
                    dtTemp = (DataTable)exeRes.Anything;
                    if (dtTemp.Rows.Count > 0)
                    {
                        exeRes.Status = false;
                        exeRes.Message = bs.LINE + " 数据已存在!";
                        return exeRes;

                    }
                }

                string MaxID = "";
                exeRes = selectDal.GetMaxId();
                if (!exeRes.Status)
                {
                    return exeRes;
                }
                else
                {
                    MaxID = (string)exeRes.Anything;
                }

                exeRes = updateDal.InsertValueInfo(MaxID, bs);
                if (exeRes.Status)
                {
                    exeRes = updateDal.InsertValueLogInfo(MaxID);
                }
                if (!exeRes.Status)
                {
                    return exeRes;
                }

            }
            else if (Type== "MODIFY")
            {
                exeRes = updateDal.UpdateValueInfo(bs);
                if (exeRes.Status)
                {
                    exeRes = updateDal.InsertValueLogInfo(bs.ID);
                }
                if (!exeRes.Status)
                {
                    return exeRes;
                }

            }
            else if (Type == "DELETE")
            {
                exeRes = updateDal.InsertValueLogInfo(bs.ID);
                if (exeRes.Status)
                {
                    exeRes = updateDal.DeleteValueInfo(bs.ID);
                }
                if (!exeRes.Status)
                {
                    return exeRes;
                }
            }
            else if (Type == "DISABLE")
            {
                exeRes = updateDal.InsertValueLogInfo(bs.ID);
                if (exeRes.Status)
                {
                    exeRes = updateDal.DisableRow(bs.ID);
                }
                if (!exeRes.Status)
                {
                    return exeRes;
                }
            }
            else if (Type == "ENABLE")
            {
                exeRes = updateDal.InsertValueLogInfo(bs.ID);
                if (exeRes.Status)
                {
                    exeRes = updateDal.EnableRow(bs.ID);
                }
                if (!exeRes.Status)
                {
                    return exeRes;
                }
            }
            return exeRes;
        }

DALコード

    //取车间
        public ExecuteResult GetShopCode()
        {
            try
            {
                exeRes = new ExecuteResult();
                string sqlStr = @" select ID ,SHOP  from imes.M_SHOP a WHERE a.enabled='Y' ";
                exeRes.Anything = utility.Query(sqlStr);
                exeRes.Status = true;
            }
            catch (Exception ex)
            {
                exeRes.Message = "Error:" + ex.Message;
                exeRes.Status = false;
            }
            return exeRes;
        }
存储

 public ExecuteResult InsertValueInfo(string MaxID, BaseInfo bs)
        {
            try
            {
                exeRes = new ExecuteResult();
                string sqlStr = @" INSERT INTO IMES.M_LINE
                                      (ID,
                                       LINE,
                                       LINE_CUSTOMER,
                                       LINE_SAP,
                                       SITE,
                                       SHOP_ID,
                                       LINE_DESC,
                                       LINE_TYPE,
                                       LINE_LEVEL,
                                       UPDATE_EMPNO,
                                       CREATE_EMPNO)
                                    VALUES
                                      (:V_ID,
                                       :V_LINE,
                                       :V_LINE_CUSTOMER,
                                       :V_LINE_SAP,
                                       :V_SITE,
                                       :V_SHOP_ID,
                                       :V_LINE_DESC,
                                       :V_LINE_TYPE,
                                       :V_LINE_LEVEL,
                                       :V_UPDATE_EMPNO,
                                       :V_CREATE_EMPNO) ";

                object[] para = new object[] { MaxID, bs.LINE, bs.LINE_CUSTOMER, bs.LINE_SAP,bs.SITE,bs.SHOP_ID, bs.LINE_DESC, bs.LINE_TYPE,bs.LINE_LEVEL, utility.GlobalUserNo, utility.GlobalUserNo };
                utility.ExecuteSql(sqlStr, para);
                exeRes.Status = true;
            }
            catch (Exception ex)
            {
                exeRes.Message = "Error:" + ex.Message;
                exeRes.Status = false;
            }
            return exeRes;
        }

IMESのメインインターフェイスを実現してリスト列を増やし、変更を実現します

リスト列の値
Main.csコード

public void ShowData()
       {
           if (ShowDgv && string.IsNullOrEmpty(editFilter.Text))
               return;

           if (combFilter.SelectedIndex > -1 && editFilter.Text.Trim() != "")
           {
               Filter = true;
               sFieldName = combFilterField.Items[combFilter.SelectedIndex].ToString();
               sFieldText = editFilter.Text.Trim();
           }

           exeRes = controller.ShowValues(Filter, sFieldName, sFieldText, combShow.SelectedIndex);
           if (exeRes.Status)
           {
               dtTemp = new DataTable();
               dtTemp = (DataTable)exeRes.Anything;
               gvData.DataSource = dtTemp;
           }
           else
           {
               MessageBox.Show(exeRes.Message);
               return;
           }

           //栏位title
           for (int i = 0; i <= gvData.Columns.Count - 1; i++)
           {
               gvData.Columns[i].Visible = false;
           }
           for (int i = 0; i <= TableDefine.tGridField.Length - 1; i++)
           {
               string sGridField = TableDefine.tGridField[i].sFieldName;

               if (gvData.Columns.Contains(sGridField))
               {
                   gvData.Columns[sGridField].HeaderText = TableDefine.tGridField[i].sCaption;
                   gvData.Columns[sGridField].DisplayIndex = i; //栏位显示顺序
                   gvData.Columns[sGridField].Visible = true;
               }
           }
           gvData.Focus();
       }

データ収集Controlles.csコード

 public ExecuteResult ShowValues(bool Filter, string sFieldName, string sFieldText, int Enable)
        {
            return selectDal.ShowValues(Filter, sFieldName, sFieldText, Enable);
        }

DAL.csコード

public ExecuteResult ShowValues(bool Filter,string sFieldName,string sFieldText,int Enable)
        {
            try
            {
                exeRes = new ExecuteResult();
                //string sqlStr = @" select  a.*  from imes.m_line a  where  1=1 ";
                string sqlStr = @" select  a.*,b.SHOP  from imes.m_line a  left join imes.m_shop b on b.ID=a.SHOP_ID  where  1=1 ";

                if (Filter)
                {
                    sqlStr = sqlStr + " and " + sFieldName + " like '%"+ sFieldText + "%'";
                }

                if (Enable == 0)
                {
                    sqlStr = sqlStr + " and a.enabled = 'Y' ";
                }
                else if (Enable == 1)
                {
                    sqlStr = sqlStr + " and a.enabled = 'N' ";
                }
                sqlStr = sqlStr + " order by  a.update_time desc ";
                object[] para ;

                if (Filter)
                {
                    exeRes.Anything = utility.Query(sqlStr);
                }
                else
                {
                    exeRes.Anything = utility.Query(sqlStr);

                }

                exeRes.Status = true;
            }
            catch (Exception ex)
            {
                exeRes.Message = "Error:" + ex.Message;
                exeRes.Status = false;
            }
            return exeRes;
        }

フィールドタイトルUtlisのTableDefineを取得します

    public struct TGrid_Field
        {
            public String sFieldName;
            public String sCaption;    //title显示         
        }
        public static TGrid_Field[] tGridField;
      public static void Initial_Table()
        {
            //设置title数据 
            Array.Resize(ref tGridField, 10);
            tGridField[0].sFieldName = "LINE";
            tGridField[0].sCaption = "线别";
            tGridField[1].sFieldName = "LINE_CUSTOMER";
            tGridField[1].sCaption = "客户代号";
            tGridField[2].sFieldName = "LINE_SAP";
            tGridField[2].sCaption = "SAP线别";
            tGridField[3].sFieldName = "SITE";
            tGridField[3].sCaption = "厂区";
            tGridField[4].sFieldName = "LINE_DESC";
            tGridField[4].sCaption = "线别描述";
            tGridField[5].sFieldName = "LINE_TYPE";
            tGridField[5].sCaption = "线别类型";
            tGridField[6].sFieldName = "LINE_LEVEL";
            tGridField[6].sCaption = "线别等级";
            tGridField[7].sFieldName = "UPDATE_EMPNO";
            tGridField[7].sCaption = "修改人";
            tGridField[8].sFieldName = "UPDATE_TIME";
            tGridField[8].sCaption = "修改时间";
            tGridField[9].sFieldName = "SHOP";
            tGridField[9].sCaption = "车间";


            for (int i = 0; i <= tGridField.Length - 1; i++)
            {
                string sText = tGridField[i].sCaption;
                tGridField[i].sCaption = sText;
            }
        }

論理値はインターフェースコード(メインコード)にあります

//车间
                   for (int i = 0; i < cbxShop.Items.Count; i++)
                   {
                       if (cbxShop.Items[i].ToString() == dataCurrentRow.Cells["SHOP"].Value.ToString())
                       {
                           cbxShop.SelectedIndex = i;
                       }
                   }
存储代码

   private void btnOK_Click(object sender, EventArgs e)
       {
           if (txtLine.Text.Trim() == "" )
           {
               MessageBox.Show("厂区别不能为空!");
               return;
           }
           
           GetBase();
           exeRes = controller.EditValueInfo(bs, g_sUpdateType);
           if (exeRes.Status)
           {
               MessageBox.Show("成功!");
               DialogResult = DialogResult.OK;
           }
           else
           {
               MessageBox.Show(exeRes.Message);
           }
       }

controller.csを保存します


        public ExecuteResult EditValueInfo(BaseInfo bs, string Type)
        {
            if (Type== "APPEND")
            {
                exeRes = GetValue(bs);
                if (exeRes.Status)
                {
                    dtTemp = (DataTable)exeRes.Anything;
                    if (dtTemp.Rows.Count > 0)
                    {
                        exeRes.Status = false;
                        exeRes.Message = bs.LINE + " 数据已存在!";
                        return exeRes;

                    }
                }

                string MaxID = "";
                exeRes = selectDal.GetMaxId();
                if (!exeRes.Status)
                {
                    return exeRes;
                }
                else
                {
                    MaxID = (string)exeRes.Anything;
                }

                exeRes = updateDal.InsertValueInfo(MaxID, bs);
                if (exeRes.Status)
                {
                    exeRes = updateDal.InsertValueLogInfo(MaxID);
                }
                if (!exeRes.Status)
                {
                    return exeRes;
                }

            }
            else if (Type== "MODIFY")
            {
                exeRes = updateDal.UpdateValueInfo(bs);
                if (exeRes.Status)
                {
                    exeRes = updateDal.InsertValueLogInfo(bs.ID);
                }
                if (!exeRes.Status)
                {
                    return exeRes;
                }

            }
            else if (Type == "DELETE")
            {
                exeRes = updateDal.InsertValueLogInfo(bs.ID);
                if (exeRes.Status)
                {
                    exeRes = updateDal.DeleteValueInfo(bs.ID);
                }
                if (!exeRes.Status)
                {
                    return exeRes;
                }
            }
            else if (Type == "DISABLE")
            {
                exeRes = updateDal.InsertValueLogInfo(bs.ID);
                if (exeRes.Status)
                {
                    exeRes = updateDal.DisableRow(bs.ID);
                }
                if (!exeRes.Status)
                {
                    return exeRes;
                }
            }
            else if (Type == "ENABLE")
            {
                exeRes = updateDal.InsertValueLogInfo(bs.ID);
                if (exeRes.Status)
                {
                    exeRes = updateDal.EnableRow(bs.ID);
                }
                if (!exeRes.Status)
                {
                    return exeRes;
                }
            }
            return exeRes;
        }

UpdateDALを保存する


        public ExecuteResult UpdateValueInfo(BaseInfo bs)
        {
            try
            {
                exeRes = new ExecuteResult();
                string sqlStr = @"  UPDATE IMES.M_LINE A
                                       SET A.LINE_CUSTOMER = :V_LINE_CUSTOMER,
                                           A.SITE          = :V_SITE,
                                           A.LINE_DESC     = :V_LINE_DESC,
                                           A.LINE_TYPE     = :V_LINE_TYPE,
                                           A.LINE_LEVEL    = :V_LINE_LEVEL,
                                           A.UPDATE_EMPNO  = :V_UPDATE_EMPNO,
                                           A.UPDATE_TIME   = SYSDATE,
                                           A.SHOP_ID   = :V_SHOP_ID
                                     WHERE A.ID = :V_ID ";


                object[] para = new object[] { bs.LINE_CUSTOMER, bs.SITE, bs.LINE_DESC, bs.LINE_TYPE, bs.LINE_LEVEL, utility.GlobalUserNo,bs.SHOP_ID,bs.ID };
                utility.ExecuteSql(sqlStr, para);
                exeRes.Status = true;
            }
            catch (Exception ex)
            {
                exeRes.Message = "Error:" + ex.Message;
                exeRes.Status = false;
            }
            return exeRes;
        }

おすすめ

転載: blog.csdn.net/caoguanghui0804/article/details/114665408