五、监听

一、触发事件

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using YKERP.UserControls;
using YKERP.Common;
using YKERP.Business;
using System.Collections;
using YKERP.Utils.Extensions;

namespace YKERP._CategoryMgt
{
    public partial class UserCategoryMgt : YKBaseControl
    {
        public string Glo_Div_1 = null, Glo_Div_2 = null, Glo_Div_3 = null;
        public UserCategoryMgt()
        {
            InitializeComponent();
            Load += (s, e) =>
            {
                InitDataCategory(); //加载部类
            };
            //部类
            BtnCategoryEdit.Enabled = false;
            gridview_product.SelectionChangedEx((rows) =>
            {
                BtnCategoryEdit.Enabled = rows.Count == 1;
            });
            gridview_product.GetCheckedOnFocusRowChanged();


            gridview_product.FocusedRowChanged += (s, e) =>
            {
                var hdrLargeClass = gridview_product.GetSelectedRow()?.ToSpecObject<Model>();
                if (hdrLargeClass != null)
                    GridPageLargeClass.LoadData(GridDataLargeClass, "YKERP-ZSJ-0066", new Hashtable() { ["div_num_id"] = hdrLargeClass.div_num_id });
                else
                    GridPageLargeClass.ClearData();
            };

            gridView2.FocusedRowChanged += (s, e) =>
            {
                var hdrLargeClass = gridview_product.GetSelectedRow()?.ToSpecObject<Model>();
                var pty1_num_id = gridView2.GetSelectedRow()?["pty1_num_id"].ToStr();
                if (pty1_num_id.IsValid())
                    GridPageMiddleClass.LoadData(GridDataMiddleClass, "YKERP-ZSJ-0067", new Hashtable()
                    {
                        ["div_num_id"] = hdrLargeClass.div_num_id,
                        ["pty1_num_id"] = pty1_num_id,
                    });
                else
                    GridPageMiddleClass.ClearData();
            };

            gridView3.FocusedRowChanged += (s, e) =>
             {
                 var hdrLargeClass = gridview_product.GetSelectedRow()?.ToSpecObject<Model>();
                 var pty2_num_id = gridView3.GetSelectedRow()?["pty2_num_id"].ToStr();
                 if (pty2_num_id.IsValid())
                     GridPageSubclass.LoadData(GridDataSubclass, "YKERP-ZSJ-0068", new Hashtable()
                     {
                         ["div_num_id"] = hdrLargeClass.div_num_id,
                         ["pty2_num_id"] = pty2_num_id,
                     });
                 else
                     GridPageSubclass.ClearData();
             };

            GridPageCategory.OnDataSourcePostBind += (dt) =>
            {
                bool enable = dt.Rows.Count > 0;
                btnAddLargeClass.Enabled = enable;
                btnEditLargeClass.Enabled = enable;
                btnDelLargeClass.Enabled = enable;

                btnAddMiddleClass.Enabled = enable;
                btnEditMiddleClass.Enabled = enable;
                btnDelMiddleClass.Enabled = enable;

                btnAddSubclass.Enabled = enable;
                btnEditSubclass.Enabled = enable;
                btnDelSubclass.Enabled = enable;
            };
        }


        public void LargerData()
        {
            var row = gridview_product?.GetFocusedDataRow();
            GridPageLargeClass.LoadData(GridDataLargeClass, "YKERP-ZSJ-0066", new Hashtable() { ["div_num_id"] = row["div_num_id"].ToString() });
        }

        public void MiddleData()
        {
            var row = gridview_product?.GetFocusedDataRow();
            var rows = gridView2?.GetFocusedDataRow();
            GridPageMiddleClass.LoadData(GridDataMiddleClass, "YKERP-ZSJ-0067", new Hashtable()
            {
                ["div_num_id"] = row["div_num_id"],
                ["pty1_num_id"] = rows["pty1_num_id"],
            });

        }

        public void SubData()
        {
            var row = gridView2?.GetFocusedDataRow();
            var rows = gridView3?.GetFocusedDataRow();
            GridPageMiddleClass.LoadData(GridDataSubclass, "YKERP-ZSJ-0068", new Hashtable()
            {
                ["div_num_id"] = row["div_num_id"],
                ["pty2_num_id"] = rows["pty2_num_id"],
            });

        }


        /// <summary>
        /// 部类数据
        /// </summary>
        private void InitDataCategory()
        {
            GridPageCategory.ClearQueryField();
            GridPageCategory.IN_SQLID = "YKERP-ZSJ-0065";
            GridPageCategory.IN_GRID_CONTROL = GridDataCategory;
            GridPageCategory.InitPages();
        }


        void LoadDivData()
        {
            GridPageCategory.LoadData(GridDataCategory, "YKERP-ZSJ-0065", new Hashtable());
        }

        private void BtnAddCategory_Click(object sender, EventArgs e)
        {
            AddOrEditCategory AddOrEdit = new AddOrEditCategory(null) { FlushOri = LoadDivData };
            AddOrEdit.StartPosition = FormStartPosition.CenterScreen;
            //AddOrEdit.myRefresh += InitDataCategory;
            AddOrEdit.Text = "新增";
            AddOrEdit.ShowDialog();
        }

        private void BtnCategoryEdit_Click(object sender, EventArgs e)
        {
            int[] rows = gridview_product.GetSelectedRows(); //获取GridView 选中的数据行信息

            if (rows.Length == 0)
            {
                MessageHelper.InfoMsg("请勾选一行记录。");
                return;
            }
            else
            if (rows.Length == 1)
            {

            }
            else
            {
                MessageHelper.InfoMsg("请选择一行记录进行编辑。");
                return;
            }
        }

        private void btnDelCategory_Click(object sender, EventArgs e)
        {
            //var selectedItems = gridview_ChildNode.GetSelectedRows().ToList().Select(i => gridview_ChildNode.GetRow(i).ToSpecObject<IntelligentAllotChildNode>()).ToList();
            //gridview_ChildNode.DeleteSelectedRows();

            int[] rows = gridview_product.GetSelectedRows(); //获取GridView 选中的数据行信息

            if (rows.Length == 0)
            {
                MessageHelper.InfoMsg("请勾选一行记录。");
                return;
            }
            else
            {
                List<int> selectRows;
                List<string> custcode = new List<string>();
                selectRows = this.gridview_product.GetSelectedRows().ToList();
                foreach (int i in selectRows)
                {
                    custcode.Add(Convert.ToString(this.gridview_product.GetDataRow(i)["series"].ToString()));
                    /*   if (this.gridview_Parent.GetDataRow(i)["group_num_id"].ToInt() == GlobalNode.ToInt())
                    {
                        ChildNodeData.DataSource = null;
                        this.GlobalNode = null;
                    }*/
                }
                //string depaid = string.Join(",", custcode);

                System.String[] str = custcode.ToArray();
                bool res = UnitOfWork<DAL>.Resolve.DelCategory(str, out string errors);
                if (errors != null)
                {
                    MessageHelper.InfoMsg(errors);
                }
                else
                {
                    MessageHelper.InfoMsg("删除成功");
                    InitDataCategory();
                }
            }
        }

        /// <summary>
        /// 大类新增
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAddLargeClass_Click(object sender, EventArgs e)
        {
            Dictionary<string, string> data = new Dictionary<string, string>();

            var row = gridview_product?.GetFocusedDataRow();
            data.Add("div_num_id", row["div_num_id"].ToString());
            data.Add("series", null);
            AddOrEditLargeClass AddOrEdit = new AddOrEditLargeClass(data)
            {
                FreshData = () =>
                {
                    LargerData();
                }
            };
            AddOrEdit.StartPosition = FormStartPosition.CenterScreen;
            //AddOrEdit.myRefresh += InitDataLargeClass;    
            AddOrEdit.Text = "新增";
            AddOrEdit.ShowDialog();
        }

        private void btnAddMiddleClass_Click(object sender, EventArgs e)
        {
            Dictionary<string, string> data = new Dictionary<string, string>();
            var row = gridview_product?.GetFocusedDataRow();
            data.Add("div_num_id", row["div_num_id"].ToString());
            var rows = gridView2?.GetFocusedDataRow();
            data.Add("pty1_num_id", rows["pty1_num_id"].ToString());

            data.Add("series", null);
            AddOrEditMiddleClass AddOrEdit = new AddOrEditMiddleClass(data)
            {
                FreshData = () =>
                {
                    MiddleData();
                }
            };
            AddOrEdit.StartPosition = FormStartPosition.CenterScreen;
            //AddOrEdit.myRefresh += InitDataLargeClass;    
            AddOrEdit.Text = "新增";
            AddOrEdit.ShowDialog();


        }

        private void btnDelMiddleClass_Click(object sender, EventArgs e)
        {
            int[] rows = gridView3.GetSelectedRows(); //获取GridView 选中的数据行信息

            if (rows.Length == 0)
            {
                MessageHelper.InfoMsg("请勾选一行记录。");
                return;
            }
            else
            {
                List<int> selectRows;
                List<string> custcode = new List<string>();
                selectRows = this.gridView3.GetSelectedRows().ToList();
                foreach (int i in selectRows)
                {
                    custcode.Add(Convert.ToString(this.gridView3.GetDataRow(i)["series"].ToString()));
                    /*   if (this.gridview_Parent.GetDataRow(i)["group_num_id"].ToInt() == GlobalNode.ToInt())
                    {
                        ChildNodeData.DataSource = null;
                        this.GlobalNode = null;
                    }*/
                }
                //string depaid = string.Join(",", custcode);

                System.String[] str = custcode.ToArray();
                bool res = UnitOfWork<DAL>.Resolve.DelMiddleClass(str, out string errors);
                if (errors != null)
                {
                    MessageHelper.InfoMsg(errors);
                }
                else
                {
                    MessageHelper.InfoMsg("删除成功");
                    MiddleData();
                }
            }
        }

        private void btnAddSubclass_Click(object sender, EventArgs e)
        {
            Dictionary<string, string> data = new Dictionary<string, string>();
            var row = gridview_product?.GetFocusedDataRow();
            data.Add("div_num_id", row["div_num_id"].ToString());
            var rows = gridView3?.GetFocusedDataRow();
            data.Add("pty2_num_id", rows["pty2_num_id"].ToString());

            data.Add("series", null);
            AddOrEditSubclass AddOrEdit = new AddOrEditSubclass(data)
            {
                FreshData = () =>
                {
                    SubData();
                }
            };
            AddOrEdit.StartPosition = FormStartPosition.CenterScreen;
            //AddOrEdit.myRefresh += InitDataLargeClass;    
            AddOrEdit.Text = "新增";
            AddOrEdit.ShowDialog();
        }

        private void btnEditMiddleClass_Click(object sender, EventArgs e)
        {
            int[] rows = gridView3.GetSelectedRows(); //获取GridView 选中的数据行信息

            if (rows.Length == 0)
            {
                MessageHelper.InfoMsg("请勾选一行记录。");
                return;
            }
            else
            if (rows.Length == 1)
            {
                int selectRow = gridView3.GetSelectedRows()[0];
                // MessageBox.Show(gridview_Parent.GetFocusedDataRow()["series"].ToString());
                //this.gridview_Parent.GetRowCellValue(selectRow, "series").ToString()

                Dictionary<string, string> data = new Dictionary<string, string>();

                data.Add("series", this.gridView3.GetRowCellValue(selectRow, "series").ToString());
                data.Add("div_num_id", this.gridView3.GetRowCellValue(selectRow, "div_num_id").ToString());
                data.Add("pty1_num_id", this.gridView3.GetRowCellValue(selectRow, "pty1_num_id").ToString());
                data.Add("pty2_num_id", this.gridView3.GetRowCellValue(selectRow, "pty2_num_id").ToString());
                data.Add("pty2_sim_no", this.gridView3.GetRowCellValue(selectRow, "pty2_sim_no").ToString());
                data.Add("pty2_name", this.gridView3.GetRowCellValue(selectRow, "pty2_name").ToString());
                data.Add("en_pty2_name", this.gridView3.GetRowCellValue(selectRow, "en_pty2_name").ToString());

                AddOrEditMiddleClass AddOrEdit = new AddOrEditMiddleClass(data)
                {
                    FreshData = () =>
                    {
                        MiddleData();
                    }
                };
                AddOrEdit.StartPosition = FormStartPosition.CenterScreen;
                //AddOrEdit.myRefresh += InitDataLargeClass;
                AddOrEdit.Text = "编辑";
                AddOrEdit.ShowDialog();
            }
            else
            {
                MessageHelper.InfoMsg("请选择一行记录进行编辑。");
                return;
            }
        }

        private void btnEditSubclass_Click(object sender, EventArgs e)
        {
            int[] rows = gridView4.GetSelectedRows(); //获取GridView 选中的数据行信息

            if (rows.Length == 0)
            {
                MessageHelper.InfoMsg("请勾选一行记录。");
                return;
            }
            else
            if (rows.Length == 1)
            {
                int selectRow = gridView4.GetSelectedRows()[0];
                // MessageBox.Show(gridview_Parent.GetFocusedDataRow()["series"].ToString());
                //this.gridview_Parent.GetRowCellValue(selectRow, "series").ToString()

                Dictionary<string, string> data = new Dictionary<string, string>();

                data.Add("series", this.gridView4.GetRowCellValue(selectRow, "series").ToString());
                data.Add("div_num_id", this.gridView4.GetRowCellValue(selectRow, "div_num_id").ToString());
                data.Add("pty2_num_id", this.gridView4.GetRowCellValue(selectRow, "pty2_num_id").ToString());
                data.Add("pty3_num_id", this.gridView4.GetRowCellValue(selectRow, "pty3_num_id").ToString());
                data.Add("pty3_sim_no", this.gridView4.GetRowCellValue(selectRow, "pty3_sim_no").ToString());
                data.Add("pty3_name", this.gridView4.GetRowCellValue(selectRow, "pty3_name").ToString());
                data.Add("en_pty3_name", this.gridView4.GetRowCellValue(selectRow, "en_pty3_name").ToString());
                data.Add("lasted_purprice_min_percent", this.gridView4.GetRowCellValue(selectRow, "lasted_purprice_min_percent").ToString());
                data.Add("lasted_purprice_max_percent", this.gridView4.GetRowCellValue(selectRow, "lasted_purprice_max_percent").ToString());
                data.Add("fm", this.gridView4.GetRowCellValue(selectRow, "fm").ToString());

                AddOrEditSubclass AddOrEdit = new AddOrEditSubclass(data)
                {
                    FreshData = () =>
                    {
                        SubData();
                    }
                };
                AddOrEdit.StartPosition = FormStartPosition.CenterScreen;
                //AddOrEdit.myRefresh += InitDataLargeClass;
                AddOrEdit.Text = "编辑";
                AddOrEdit.ShowDialog();
            }
            else
            {
                MessageHelper.InfoMsg("请选择一行记录进行编辑。");
                return;
            }
        }

        private void btnDelSubclass_Click(object sender, EventArgs e)
        {
            int[] rows = gridView4.GetSelectedRows(); //获取GridView 选中的数据行信息

            if (rows.Length == 0)
            {
                MessageHelper.InfoMsg("请勾选一行记录。");
                return;
            }
            else
            {
                List<int> selectRows;
                List<string> custcode = new List<string>();
                selectRows = this.gridView4.GetSelectedRows().ToList();
                foreach (int i in selectRows)
                {
                    custcode.Add(Convert.ToString(this.gridView4.GetDataRow(i)["series"].ToString()));
                    /*   if (this.gridview_Parent.GetDataRow(i)["group_num_id"].ToInt() == GlobalNode.ToInt())
                    {
                        ChildNodeData.DataSource = null;
                        this.GlobalNode = null;
                    }*/
                }
                //string depaid = string.Join(",", custcode);

                System.String[] str = custcode.ToArray();
                bool res = UnitOfWork<DAL>.Resolve.DelSubClass(str, out string errors);
                if (errors != null)
                {
                    MessageHelper.InfoMsg(errors);
                }
                else
                {
                    MessageHelper.InfoMsg("删除成功");
                    SubData();
                }
            }
        }

        private void gridview_product_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {
            switch (e.Button)
            {
                case MouseButtons.Right:
                    break;
                case MouseButtons.Left:
                    if (e.Clicks > 1) //双击
                    {
                        var selectRow = gridview_product.GetFocusedDataRow();
                        
                        // MessageBox.Show(gridview_Parent.GetFocusedDataRow()["series"].ToString());
                        //this.gridview_Parent.GetRowCellValue(selectRow, "series").ToString()

                        Dictionary<string, string> data = new Dictionary<string, string>();

                        data.Add("series", selectRow["series"].ToString());
                        data.Add("div_num_id", selectRow["div_num_id"].ToString());
                        data.Add("div_sim_no", selectRow["div_sim_no"].ToString());
                        data.Add("div_name", selectRow["div_name"].ToString() );
                        data.Add("en_div_name", selectRow["en_div_name"].ToString());


                        AddOrEditCategory AddOrEdit = new AddOrEditCategory(data) { FlushOri = LoadDivData };
                        AddOrEdit.StartPosition = FormStartPosition.CenterScreen;
                        AddOrEdit.myRefresh += InitDataCategory;
                        AddOrEdit.Text = "编辑";
                        AddOrEdit.ShowDialog();

                    }
                    break;
                default:
                    break;
            }
        }


        /// <summary>
        /// 大类编辑
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnEditLargeClass_Click(object sender, EventArgs e)
        {
            int[] rows = gridView2.GetSelectedRows(); //获取GridView 选中的数据行信息

            if (rows.Length == 0)
            {
                MessageHelper.InfoMsg("请勾选一行记录。");
                return;
            }
            else
            if (rows.Length == 1)
            {
                int selectRow = gridView2.GetSelectedRows()[0];
                // MessageBox.Show(gridview_Parent.GetFocusedDataRow()["series"].ToString());
                //this.gridview_Parent.GetRowCellValue(selectRow, "series").ToString()

                Dictionary<string, string> data = new Dictionary<string, string>();

                data.Add("series", this.gridView2.GetRowCellValue(selectRow, "series").ToString());
                data.Add("div_num_id", this.gridView2.GetRowCellValue(selectRow, "div_num_id").ToString());
                data.Add("pty1_num_id", this.gridView2.GetRowCellValue(selectRow, "pty1_num_id").ToString());
                data.Add("pty1_sim_no", this.gridView2.GetRowCellValue(selectRow, "pty1_sim_no").ToString());
                data.Add("pty1_name", this.gridView2.GetRowCellValue(selectRow, "pty1_name").ToString());
                data.Add("en_pty1_name", this.gridView2.GetRowCellValue(selectRow, "en_pty1_name").ToString());

                AddOrEditLargeClass AddOrEdit = new AddOrEditLargeClass(data)
                {
                    FreshData = () =>
                    {
                        LargerData();
                    }
                };
                AddOrEdit.StartPosition = FormStartPosition.CenterScreen;
                //AddOrEdit.myRefresh += InitDataLargeClass;
                AddOrEdit.Text = "编辑";
                AddOrEdit.ShowDialog();
            }
            else
            {
                MessageHelper.InfoMsg("请选择一行记录进行编辑。");
                return;
            }

        }
        /// <summary>
        /// 大类删除
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDelLargeClass_Click(object sender, EventArgs e)
        {
            int[] rows = gridView2.GetSelectedRows(); //获取GridView 选中的数据行信息

            if (rows.Length == 0)
            {
                MessageHelper.InfoMsg("请勾选一行记录。");
                return;
            }
            else
            {
                List<int> selectRows;
                List<string> custcode = new List<string>();
                selectRows = this.gridView2.GetSelectedRows().ToList();
                foreach (int i in selectRows)
                {
                    custcode.Add(Convert.ToString(this.gridView2.GetDataRow(i)["series"].ToString()));
                    /*   if (this.gridview_Parent.GetDataRow(i)["group_num_id"].ToInt() == GlobalNode.ToInt())
                    {
                        ChildNodeData.DataSource = null;
                        this.GlobalNode = null;
                    }*/
                }
                //string depaid = string.Join(",", custcode);

                System.String[] str = custcode.ToArray();
                bool res = UnitOfWork<DAL>.Resolve.DelLargeClass(str, out string errors);
                if (errors != null)
                {
                    MessageHelper.InfoMsg(errors);
                }
                else
                {
                    MessageHelper.InfoMsg("删除成功");
                    LargerData();
                }
            }

        }



    }
}

  

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using YKERP.BaseForms;
using YKERP.Business;
using YKERP.Common;

namespace YKERP._CategoryMgt
{

    public partial class AddOrEditLargeClass : YKBaseForm
    {
        private string series = null;


        public Action FreshData;

        public AddOrEditLargeClass(Dictionary<string, string> data)
        {
            InitializeComponent();
            Load +=(s,e)=>{
                if (data["div_num_id"].ToString() != "")
                {
                    txt_div_num_id.ReadOnly = true;
                    txt_div_num_id.Text = data["div_num_id"].ToString();
                }
                else
                {
                    this.Close();
                }

                if (data["series"]!=null)
                {
                    txt_div_1.Text = data["pty1_num_id"].ToString();
                    txt_div_sim_no.Text = data["pty1_sim_no"].ToString();
                    txt_div_name.Text = data["pty1_name"].ToString();
                    txt_en_div_name.Text = data["en_pty1_name"].ToString();
                    this.series = data["series"].ToString();
                    txt_div_1.ReadOnly=true;
                }             
            };
        }

        private void btn_AddOrEdit_Click(object sender, EventArgs e)
        {
            if (Convert.ToInt32(txt_div_1.Text) == 0)
            {
                MessageHelper.InfoMsg("请填写大类编码");
                return;
            }
            if (string.IsNullOrWhiteSpace(txt_div_sim_no.Text) || string.IsNullOrWhiteSpace(txt_div_name.Text) || string.IsNullOrWhiteSpace(txt_en_div_name.Text))
            {
                MessageHelper.InfoMsg("请将信息填写完成");
                return;
            }
            object data = new
            {
                div_num_id = txt_div_num_id.Text, //商品部类
                pty1_num_id= txt_div_1.Text,//商品大类
                pty1_sim_no = txt_div_sim_no.Text,
                pty1_name = txt_div_name.Text,
                en_pty1_name = txt_en_div_name.Text,
                user_num_id = 666
            };

            var res = UnitOfWork<DAL>.Resolve.AddOrEditLargeClass(data, out string errors);
            if (errors != null)
            {
                MessageHelper.InfoMsg(errors);
                return;
            }
            else
            {
                if (this.series == null)
                    MessageHelper.InfoMsg("新增成功");
                else
                    MessageHelper.InfoMsg("编辑成功");                
                this.Close();
                FreshData?.Invoke();
                //myRefresh(this.div_num_id.ToInt());
            }
        }
    }



}

  

 

posted @ 2019-02-26 18:29  反骨少年  阅读(208)  评论(0)    收藏  举报