| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320 | using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Windows.Forms;namespace OTSIncAReportApp.OTSMgrInfo{    public partial class Triangulation_Item : Form    {        #region 变量定义        private DataTable m_dt_moban;        private DataTable m_dt_item_element;        private string m_mobanid = "";        private string m_xiangmuming = "";        #endregion        #region 构造函数及窗体加载        public Triangulation_Item()        {            InitializeComponent();        }        public Triangulation_Item(string in_mobanid, string in_xiangmuming, DataTable in_dt_moban, DataTable in_dt_item_element)        {            m_mobanid = in_mobanid;            m_xiangmuming = in_xiangmuming;            m_dt_moban = in_dt_moban;            m_dt_item_element = in_dt_item_element;            InitializeComponent();        }        private void Triangulation_Item_Load(object sender, EventArgs e)        {            if (m_mobanid == "")            {                //进入该窗体必须是有数据记录的情况 ,如果没有说明出现问题,返回                return;            }            //绑定下拉框            BindComboBox();            //设置数据列            Gview_element.Columns.Add("序号", "序号");            Gview_element.Columns.Add("元素名称", "元素名称");            Gview_element.Columns.Add("元素数量", "元素数量");            //增加linkButton,删除按钮            DataGridViewLinkColumn dlink = new DataGridViewLinkColumn();            dlink.Text = "删除";//添加的这列的显示文字,即每行最后一列显示的文字。            dlink.Name = "delLink";            dlink.HeaderText = "删除";//列的标题            dlink.UseColumnTextForLinkValue = true;//上面设置的dlink.Text文字在列中显示            Gview_element.Columns.Add(dlink);            //加载样式            SetDataGridStyle();            //绑定数据            BindGView();            //显示项目名称            for (int i = 0; i < m_dt_moban.Rows.Count; i++)            {                if (m_dt_moban.Rows[i]["TemplateID"].ToString() == m_mobanid)                {                    tb_itemname.Text = m_dt_moban.Rows[i][m_xiangmuming].ToString();                }            }        }        #endregion        #region 自定义函数及方法        /// <summary>        /// 提供编号列名,获取DataTable中,编号列自增长后的ID标识        /// </summary>        /// <param name="dt"></param>        /// <param name="col_name"></param>        /// <returns></returns>        public int Get_MaxBH(DataTable dt, string col_name)        {            int rownumber = 0;            if (dt.Rows.Count == 0)            {                rownumber = 1;                return rownumber;            }            else            {                //取最大的并且小于10000的表自增长id,然后再加1                for (int i = 0; i < dt.Rows.Count; i++)                {                    int ls_int = Convert.ToInt32(dt.Rows[i][col_name].ToString());                    if (rownumber <= ls_int && 10000 > ls_int)                    {                        rownumber = ls_int + 1;                    }                }            }            return rownumber;        }        /// <summary>        /// 向GridView绑定数据        /// </summary>        private void BindGView()        {            Gview_element.Rows.Clear();            for (int i = 0; i < m_dt_item_element.Rows.Count; i++)            {                if (m_dt_item_element.Rows[i]["TemplateID"].ToString() == m_mobanid                    && (m_dt_item_element.Rows[i]["ItemTypeName"].ToString() == m_xiangmuming))                {                    int index = Gview_element.Rows.Add();                    Gview_element.Rows[index].Cells["序号"].Value = m_dt_item_element.Rows[i]["ElementID"].ToString();                    Gview_element.Rows[index].Cells["元素名称"].Value = m_dt_item_element.Rows[i]["ElementName"].ToString();                    Gview_element.Rows[index].Cells["元素数量"].Value = m_dt_item_element.Rows[i]["ElementNumber"].ToString();                }            }        }        /// <summary>        /// 绑定元素名称,及元素数量combobox        /// </summary>        private void BindComboBox()        {            cbo_elementname.Items.Clear();            cbo_elementnumber.Items.Clear();            List<OTSPeriodicTable.Periodic> list_periodic = OTSPeriodicTable.CListPeriodic.GetListPeriodic();            //排序            List<OTSPeriodicTable.Periodic> list_sortperiodic = list_periodic.OrderBy(s => s.FH).ToList();            foreach (OTSPeriodicTable.Periodic pc in list_sortperiodic)            {                cbo_elementname.Items.Add(pc.FH);            }            for (int i = 1; i < 21; i++)            {                cbo_elementnumber.Items.Add(i.ToString());            }            cbo_elementname.SelectedIndex = 0;            cbo_elementnumber.SelectedIndex = 0;        }        private void SetDataGridStyle()        {            #region //设置规则 DataGridView的样式------------------------------            Gview_element.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;            Gview_element.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing;            Gview_element.AllowUserToResizeColumns = false;            Gview_element.AllowUserToResizeRows = false;            //改变行的高度;            Gview_element.RowTemplate.Height = 20;            //改变标题的高度;              Gview_element.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;            Gview_element.ColumnHeadersHeight = 20;            //禁用排序            for (int i = 0; i < this.Gview_element.Columns.Count; i++)            {                this.Gview_element.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;            }            //点击选择整行            Gview_element.SelectionMode = DataGridViewSelectionMode.FullRowSelect;            //设置每列的宽度            Gview_element.Columns[0].Width = 50;            Gview_element.Columns[1].Width = 80;            Gview_element.Columns[2].Width = 80;            Gview_element.Columns[3].Width = 50;            //禁止排序            for (int i = 0; i < Gview_element.Columns.Count; i++)            {                Gview_element.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;            }            //居中显示            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();            dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;            Gview_element.DefaultCellStyle = dataGridViewCellStyle1;            Gview_element.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;            //再次重覆禁用拖动表头高度            Gview_element.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;            #endregion        }        #endregion        #region 控件事件        private void button2_Click(object sender, EventArgs e)        {            //返回            this.Close();        }        private void button1_Click(object sender, EventArgs e)        {            //判断项目名称不能为空            if (tb_itemname.Text.Trim() == "")            {                MessageBox.Show("输入的项目名称不能为空!", "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);                tb_itemname.Focus();                tb_itemname.SelectAll();                return;            }            //判断gview不能为空            if (Gview_element.Rows.Count == 0)            {                MessageBox.Show("输入的元素数量不能为空!", "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);                cbo_elementname.Focus();                cbo_elementname.SelectAll();                return;            }            //保存            //将顶点名称更新到moban表中            for (int i = 0; i < m_dt_moban.Rows.Count; i++)            {                if (m_dt_moban.Rows[i]["TemplateID"].ToString() == m_mobanid)                {                    m_dt_moban.Rows[i][m_xiangmuming] = tb_itemname.Text.Trim();                }            }            this.DialogResult = DialogResult.OK;            this.Close();        }        private void button3_Click(object sender, EventArgs e)        {            //先校验,添加的元素是否是正确的元素周期表中的元素            if (false == OTSPeriodicTable.CListPeriodic.ExistPeriodicByYsm(OTSPeriodicTable.CListPeriodic.GetListPeriodic(), cbo_elementname.Text.Trim().ToUpper()))            {                MessageBox.Show("输入的元素信息错误!", "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);                cbo_elementname.Focus();                cbo_elementname.SelectAll();                return;            }            //再判断,是否已经在该模板中,该项目中已经添加了该元素            bool yn = false;            for (int i = 0; i < Gview_element.Rows.Count; i++)            {                if (Gview_element.Rows[i].Cells[1].Value.ToString() == cbo_elementname.Text.Trim().ToUpper())                    yn = true;            }            if (yn == true)            {                MessageBox.Show("已经在该项中包含了该元素!", "Tip", MessageBoxButtons.OK, MessageBoxIcon.Information);                cbo_elementname.Focus();                cbo_elementname.SelectAll();                return;            }            //同时将大小写转换成大写            cbo_elementname.Text = cbo_elementname.Text.Trim().ToUpper();            //添加            string str_elementid = Get_MaxBH(m_dt_item_element, "ElementID").ToString();            DataRow dr = m_dt_item_element.NewRow();            dr["ElementID"] = str_elementid;            dr["TemplateID"] = m_mobanid;            dr["ItemTypeName"] = m_xiangmuming;            dr["ElementName"] = cbo_elementname.Text;            dr["ElementNumber"] = cbo_elementnumber.Text;            m_dt_item_element.Rows.Add(dr);            //添加后重新绑定            BindGView();        }        private void Gview_element_CellClick(object sender, DataGridViewCellEventArgs e)        {            //删除            if (e.RowIndex < 0)            {                return;            }            //获取模板ID            string str_elementid = Gview_element.Rows[e.RowIndex].Cells[0].Value.ToString();            if (Gview_element.Columns[e.ColumnIndex].Name == "delLink")            {                for (int i = 0; i < m_dt_item_element.Rows.Count; i++)                {                    if (m_dt_item_element.Rows[i]["ElementID"].ToString() == str_elementid)                    {                        //删除                        m_dt_item_element.Rows.Remove(m_dt_item_element.Rows[i]);                    }                }            }            //删除后,重新绑定            BindGView();        }        #endregion    }}
 |