using OTSIncAReportApp._1_UI; using OTSRptPeriodicTable; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Windows.Forms; namespace OTSIncAReportApp.OTSMgrInfo { public partial class Triangulation_Edit : Form { #region 变量定义 //三元相图模板信息 private string TriName = ""; //是否为修改 private string Template = ""; private string TemplateId = ""; private frmReportApp m_frmReportApp = null; #endregion #region 构造函数和窗体加载 public Triangulation_Edit() { InitializeComponent(); } public Triangulation_Edit( frmReportApp in_frmReportApp, string name, string id) { m_frmReportApp = in_frmReportApp; TriName = name; TemplateId = id; InitializeComponent(); } private void Triangulation_Edit_Load(object sender, EventArgs e) { if (TriName != "") { string[] vs = TriName.Split('.'); BindComboBox(vs[0].Split('-')[1], vs[2].Split('-')[1]); txtType1.Text = vs[0].Split('-')[0]; txtType2.Text = vs[1].Split('-')[0]; txtElement2.Text = vs[1].Split('-')[1]; txtType3.Text = vs[2].Split('-')[0]; Template = txtType1.Text.Trim() + "." + txtType2.Text.Trim() + "." + txtType3.Text.Trim(); } else { BindComboBox("", ""); } } /// /// 绑定元素名称,及元素数量combobox /// private void BindComboBox(string v1, string v2) { cboElement1.Items.Clear(); cboElement3.Items.Clear(); List list_periodic = OTSRptPeriodicTable.CListPeriodic.GetListPeriodic(); //排序 List list_sortperiodic = list_periodic.OrderBy(s => s.FH).ToList(); for (int i = 0; i < list_sortperiodic.Count; i++) { var va = list_sortperiodic[i].FH; cboElement1.Items.Add(va); cboElement3.Items.Add(va); if (va == v1) { cboElement1.SelectedIndex = i; } if (va == v2) { cboElement3.SelectedIndex = i; } } if ("" == v1) { cboElement1.SelectedIndex = 0; } if ("" == v2) { cboElement3.SelectedIndex = 0; } } #endregion #region 控件事件 //保存,返回 private void button1_Click(object sender, EventArgs e) { if (!Checking()) { MessageBox.Show("Please enter full information!"); return; } ElementSubscript subscript = new ElementSubscript(); //subscript.Getsubscriptstring(txtType3.Text.Trim()); string TemplateName = subscript.Getsubscriptstring(txtType1.Text.Trim()) + "." + subscript.Getsubscriptstring(txtType2.Text.Trim()) + "." + subscript.Getsubscriptstring(txtType3.Text.Trim()); string Element = subscript.Getsubscriptstring( cboElement1.Text) + "." + subscript.Getsubscriptstring(txtElement2.Text.Trim()) + "." + subscript.Getsubscriptstring(cboElement3.Text); string Group = subscript.Getsubscriptstring(txtType1.Text.Trim()) + "-" + subscript.Getsubscriptstring(cboElement1.Text) + "." + subscript.Getsubscriptstring(txtType2.Text.Trim()) + "-" + subscript.Getsubscriptstring(txtElement2.Text.Trim()) + "." + subscript.Getsubscriptstring(txtType3.Text.Trim()) + "-" + subscript.Getsubscriptstring(cboElement3.Text); //获取三元相图模板配置文件 string pathe = m_frmReportApp.m_rstDataMgr.m_RptConfigFile.TrigTemplateFileFolder + "\\" + m_frmReportApp.m_rstDataMgr.m_RptConfigFile.TriTempFile; if (TemplateId != "") { string[] AttributeName = new string[] { "TemplateId", "TemplateName", "Element", "Group" }; string[] Value = new string[] { TemplateId, TemplateName, Element, Group }; bool ret = DataOperation.DataAccess.XMLoperate.UpdateByAttribute(pathe, AttributeName, Value); if (ret) { MessageBox.Show("Saved successfully!"); } else { MessageBox.Show("Save failed!"); } } else { string id = DateTime.Now.ToString("yyyyMMddHHmmss"); string[] AttributeName = new string[] { "TemplateId", "TemplateName", "Element", "Group" }; string[] Value = new string[] { id, TemplateName, Element, Group }; int ret = DataOperation.DataAccess.XMLoperate.InsertAttribute(pathe, AttributeName, Value, "Member"); if (ret == -1) { MessageBox.Show(TemplateName + "The template already exists and cannot be added repeatedly!"); } else if (ret == 0) { MessageBox.Show("Save failed!"); } else { MessageBox.Show("Saved successfully!"); } } this.DialogResult = DialogResult.OK; this.Close(); } private void button2_Click(object sender, EventArgs e) { //取消 this.Close(); } private bool Checking() { if (txtType1.Text.Trim() == "") { txtType1.Focus(); return false; } if (txtType2.Text.Trim() == "") { txtType2.Focus(); return false; } if (txtType3.Text.Trim() == "") { txtType3.Focus(); return false; } if (txtElement2.Text.Trim() == "") { txtElement2.Focus(); return false; } return true; } #endregion private void btn_xsys_Click(object sender, EventArgs e) { //打开编辑元素列表窗体 OTSPeriodicTableForm_Small opts = new OTSPeriodicTableForm_Small(); //获取需要显示的元素列表,并转换成元素周期表窗体可接受的格式,传入---------------------- string str_xsys = txtElement2.Text.Trim(); List list_str = new List(); string[] strs = str_xsys.Split(','); for (int i = 0; i < strs.Length; i++) { list_str.Add(strs[i]); } //清除元素周期表中所有的记录 opts.m_List_Periodic.Clear(); //将该分类下的元素添加到元素周期表窗体的List_periodic中 for (int i = 0; i < strs.Length; i++) { string str_ysm = strs[i]; OTSRptPeriodicTable.Periodic ls_periodic = new OTSRptPeriodicTable.Periodic(); ls_periodic = OTSRptPeriodicTable.CListPeriodic.GetPeriodicByYsm(OTSRptPeriodicTable.CListPeriodic.GetListPeriodic(), str_ysm); opts.m_List_Periodic.Add(ls_periodic); } //---------------------------------------------------------------------------------------- opts.ShowDialog(); //先清空元素 str_xsys = ""; //然后再将选择的元素,组合起来,返回显示到该窗体上 if (opts.m_List_Periodic.Count > 0) { for (int i = 0; i < opts.m_List_Periodic.Count; i++) { if (str_xsys == "") { str_xsys = opts.m_List_Periodic[i].FH; } else { str_xsys = str_xsys + "," + opts.m_List_Periodic[i].FH; } } } //再对选择的元素进行显示 txtElement2.Text = str_xsys; } } }