123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321 |
- using OTSPeriodicTable;
- 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<Periodic> list_periodic = CListPeriodic.GetListPeriodic();
- //排序
- List<Periodic> list_sortperiodic = list_periodic.OrderBy(s => s.Symbol).ToList();
- foreach (Periodic pc in list_sortperiodic)
- {
- cbo_elementname.Items.Add(pc.Symbol);
- }
- 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 == CListPeriodic.ExistPeriodicByEleName(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
- }
- }
|