// ����ͨ�ù���ֵ�� /// <summary> /// ����ͨ�ù���ֵ�� /// </summary> /// <param name="a"></param> /// <param name="s_value"></param> /// <param name="xmlfile"></param> /// <returns></returns> public static bool SetGongxu_Tongyong_Value(int a, S_Gongxu_Tongyong_Value s_value, string xmlfile) { try { XmlDocument mydoc = new XmlDocument(); mydoc.Load(xmlfile); string path = "/SYS_3DPPM/Gongyi/Gongxu[" + a.ToString() + "]"; XmlElement xe = (XmlElement)mydoc.SelectSingleNode(path); if (xe.GetAttribute("Type") != E_GongyiNodeType.Gongxu_Tongyong.ToString()) { NXFun.MessageBox("�Ĺ�����������ʵ���Ͳ�ƥ�䣡"); return false; } //�������� XmlElement infor = xe.SelectSingleNode("Information") as XmlElement; infor.SetAttribute("gongxuhao", s_value.gongxuhao); infor.SetAttribute("gongxumingcheng", s_value.gongxumingcheng); infor.SetAttribute("shebei", s_value.shebei); infor.SetAttribute("jiamoju", s_value.jiamoju); infor.SetAttribute("jizhun", s_value.jizhun); infor.SetAttribute("yingdu", s_value.yingdu); infor.SetAttribute("guanjiangongxu", NXFun.bool2string(s_value.guanjiangongxu)); //�ӹ��� XmlNode jgzb_node = infor.SelectSingleNode("JGZB"); if (jgzb_node!=null) { infor.RemoveChild(jgzb_node); } jgzb_node = mydoc.CreateNode(XmlNodeType.Element, "JGZB", null); jgzb_node = infor.AppendChild(jgzb_node); foreach (string jgzb in s_value.JGZBs) { XmlNode jgzb_item = mydoc.CreateNode(XmlNodeType.Element, "jgzb", null); xe = jgzb_node.AppendChild(jgzb_item) as XmlElement; xe.SetAttribute("neirong", jgzb); } //�������� XmlNode gbnr_node = infor.SelectSingleNode("GBNR"); if (gbnr_node != null) { infor.RemoveChild(gbnr_node); } gbnr_node = mydoc.CreateNode(XmlNodeType.Element, "GBNR", null); gbnr_node = infor.AppendChild(gbnr_node); foreach (S_Gongbu s_gongbu in s_value.gongbus) { XmlNode gbnr_item = mydoc.CreateNode(XmlNodeType.Element, "gbnr", null); xe = gbnr_node.AppendChild(gbnr_item) as XmlElement; xe.SetAttribute("neirong", s_gongbu.neirong); xe.SetAttribute("renju", s_gongbu.renju); xe.SetAttribute("liangju", s_gongbu.liangju); xe.SetAttribute("beizhu", s_gongbu.beizhu); //�ӹ��� foreach(S_Zigongbu s_zigongbu in s_gongbu.zigongbus) { XmlNode zgb_item = mydoc.CreateNode(XmlNodeType.Element, "zgb", null); XmlElement zgb_xe = xe.AppendChild(zgb_item) as XmlElement; zgb_xe.SetAttribute("neirong", s_zigongbu.neirong); zgb_xe.SetAttribute("renju", s_zigongbu.renju); zgb_xe.SetAttribute("liangju", s_zigongbu.liangju); zgb_xe.SetAttribute("beizhu", s_zigongbu.beizhu); } } //�������� XmlNode jstj_node = infor.SelectSingleNode("JSTJ"); if (jstj_node != null) { infor.RemoveChild(jstj_node); } jstj_node = mydoc.CreateNode(XmlNodeType.Element, "JSTJ", null); jstj_node = infor.AppendChild(jstj_node); foreach (S_JSTJ s_jstj in s_value.JSTJs) { XmlNode jstj_item = mydoc.CreateNode(XmlNodeType.Element, "jstj", null); xe = jstj_node.AppendChild(jstj_item) as XmlElement; xe.SetAttribute("neirong", s_jstj.neirong); xe.SetAttribute("liangju", s_jstj.liangju); xe.SetAttribute("beizhu", s_jstj.beizhu); } //��ע XmlNode fz_node = infor.SelectSingleNode("FZ"); if (fz_node != null) { infor.RemoveChild(fz_node); } fz_node = mydoc.CreateNode(XmlNodeType.Element, "FZ", null); fz_node = infor.AppendChild(fz_node); foreach (string fz in s_value.FZs) { XmlNode fz_item = mydoc.CreateNode(XmlNodeType.Element, "fz", null); xe = fz_node.AppendChild(fz_item) as XmlElement; xe.SetAttribute("neirong", fz); } //���ղ��� XmlNode gycs_node = infor.SelectSingleNode("GYCS"); if (gycs_node != null) { infor.RemoveChild(gycs_node); } gycs_node = mydoc.CreateNode(XmlNodeType.Element, "GYCS", null); gycs_node = infor.AppendChild(gycs_node); foreach (string gycs in s_value.GYCSs) { XmlNode gycs_item = mydoc.CreateNode(XmlNodeType.Element, "gycs", null); xe = gycs_node.AppendChild(gycs_item) as XmlElement; xe.SetAttribute("neirong", gycs); } mydoc.Save(xmlfile); return true; } catch (System.Exception ex) { NXFun.MessageBox(ex.Message); return false; } }
//�õ�ͨ�ù���ֵ�� /// <summary> /// �õ�ͨ�ù���ֵ�� /// </summary> /// <param name="a">�ڼ������� ��1��</param> /// <param name="xmlfile">����xml</param> /// <returns>ͨ�ù���ֵ��</returns> public static S_Gongxu_Tongyong_Value GetGongxu_Tongyong_Value(int a,string xmlfile) { S_Gongxu_Tongyong_Value s_value = new S_Gongxu_Tongyong_Value(); s_value.gongbus = new List<S_Gongbu>(0); s_value.JSTJs = new List<S_JSTJ>(0); s_value.GYCSs = new List<string>(0); s_value.JGZBs = new List<string>(0); s_value.FZs = new List<string>(0); try { XmlDocument mydoc = new XmlDocument(); mydoc.Load(xmlfile); string path = "/SYS_3DPPM/Gongyi/Gongxu[" + a.ToString() + "]"; XmlElement xe = (XmlElement)mydoc.SelectSingleNode(path); if (xe.GetAttribute("Type") != E_GongyiNodeType.Gongxu_Tongyong.ToString()) { NXFun.MessageBox("��ѯ������������ʵ���Ͳ�ƥ�䣡"); return s_value; } XmlElement infor = xe.SelectSingleNode("Information") as XmlElement; //�������� s_value.gongxuhao = infor.GetAttribute("gongxuhao"); s_value.gongxumingcheng = infor.GetAttribute("gongxumingcheng"); s_value.shebei = infor.GetAttribute("shebei"); s_value.jiamoju = infor.GetAttribute("jiamoju"); s_value.jizhun = infor.GetAttribute("jizhun"); s_value.yingdu = infor.GetAttribute("yingdu"); s_value.guanjiangongxu = NXFun.string2bool(infor.GetAttribute("guanjiangongxu")); //�ӹ��� XmlNodeList jgzb_nodes = infor.SelectNodes("JGZB/jgzb"); foreach (XmlElement jgzb_node in jgzb_nodes) { s_value.JGZBs.Add(jgzb_node.GetAttribute("neirong")); } //�������� XmlNodeList gbnr_nodes = infor.SelectNodes("GBNR/gbnr"); foreach (XmlElement gbnr_node in gbnr_nodes) { S_Gongbu s_gongbu = new S_Gongbu(); s_gongbu.neirong = gbnr_node.GetAttribute("neirong"); s_gongbu.renju = gbnr_node.GetAttribute("renju"); s_gongbu.liangju = gbnr_node.GetAttribute("liangju"); s_gongbu.beizhu = gbnr_node.GetAttribute("beizhu"); s_gongbu.zigongbus = new List<S_Zigongbu>(); //�ӹ��� XmlNodeList zgb_nodes = gbnr_node.SelectNodes("zgb"); foreach (XmlElement zgb_node in zgb_nodes) { S_Zigongbu s_zigongbu = new S_Zigongbu(); s_zigongbu.neirong = zgb_node.GetAttribute("neirong"); s_zigongbu.renju = zgb_node.GetAttribute("renju"); s_zigongbu.liangju = zgb_node.GetAttribute("liangju"); s_zigongbu.beizhu = zgb_node.GetAttribute("beizhu"); s_gongbu.zigongbus.Add(s_zigongbu); } s_value.gongbus.Add(s_gongbu); } //�������� XmlNodeList jstj_nodes = infor.SelectNodes("JSTJ/jstj"); foreach (XmlElement jstj_node in jstj_nodes) { S_JSTJ s_jstj = new S_JSTJ(); s_jstj.neirong = jstj_node.GetAttribute("neirong"); s_jstj.liangju = jstj_node.GetAttribute("liangju"); s_jstj.beizhu = jstj_node.GetAttribute("beizhu"); s_value.JSTJs.Add(s_jstj); } //��ע XmlNodeList fz_nodes = infor.SelectNodes("FZ/fz"); foreach (XmlElement fz_node in fz_nodes) { s_value.FZs.Add(fz_node.GetAttribute("neirong")); } //���ղ��� XmlNodeList gycs_nodes = infor.SelectNodes("GYCS/gycs"); foreach (XmlElement gycs_node in gycs_nodes) { s_value.GYCSs.Add(gycs_node.GetAttribute("neirong")); } return s_value; } catch (System.Exception ex) { NXFun.MessageBox(ex.Message); return s_value; } }
//更新数据 /// <summary> /// 更新数据 /// </summary> /// <param name="isRead">是从xml读还是写入xml</param> /// <param name="index_a">第几个工序,从1起</param> public void UpdateData(bool isRead,int index_a) { if (isRead) { //读xml到控件 s_value = XML3DPPM.GetGongxu_Tongyong_Value(index_a,XmlFile); //工序属性 dgvGXSX[1, 0].Value = s_value.gongxuhao; dgvGXSX[1, 1].Value = s_value.gongxumingcheng; dgvGXSX[1, 2].Value = s_value.shebei; dgvGXSX[1, 3].Value = s_value.jiamoju; dgvGXSX[1, 4].Value = s_value.jizhun; dgvGXSX[1, 5].Value = s_value.yingdu; chkGJGX.CheckState = s_value.guanjiangongxu?CheckState.Checked : CheckState.Unchecked; //加工准备 dgvJGZB.Rows.Clear(); for (int i = 0; i < s_value.JGZBs.Count; i ++ ) { dgvJGZB.Rows.Add(); dgvJGZB[1, i].Value = s_value.JGZBs[i]; } //工步内容 dgvGBNR.Rows.Clear(); for (int i = 0; i < s_value.gongbus.Count; i++ ) { int row = dgvGBNR.Rows.Add(); dgvGBNR.Rows[row].Tag = "Gongbu"; dgvGBNR[1, row].Value = s_value.gongbus[i].neirong; dgvGBNR[2, row].Value = s_value.gongbus[i].renju; dgvGBNR[3, row].Value = s_value.gongbus[i].liangju; dgvGBNR[4, row].Value = s_value.gongbus[i].beizhu; //子工步 { for (int j = 0; j < s_value.gongbus[i].zigongbus.Count; j++ ) { row = dgvGBNR.Rows.Add(); dgvGBNR.Rows[row].Tag = "Zigongbu"; dgvGBNR[1, row].Value = s_value.gongbus[i].zigongbus[j].neirong; dgvGBNR[2, row].Value = s_value.gongbus[i].zigongbus[j].renju; dgvGBNR[3, row].Value = s_value.gongbus[i].zigongbus[j].liangju; dgvGBNR[4, row].Value = s_value.gongbus[i].zigongbus[j].beizhu; } } } FormatGBNR(); //技术条件 dgvJSTJ.Rows.Clear(); for (int i = 0; i < s_value.JSTJs.Count; i++) { dgvJSTJ.Rows.Add(); dgvJSTJ[1, i].Value = s_value.JSTJs[i].neirong; dgvJSTJ[2, i].Value = s_value.JSTJs[i].liangju; dgvJSTJ[3, i].Value = s_value.JSTJs[i].beizhu; } //附注 dgvFZ.Rows.Clear(); for (int i = 0; i < s_value.FZs.Count; i++) { dgvFZ.Rows.Add(); dgvFZ[1, i].Value = s_value.FZs[i]; } //工艺参数 dgvGYCS.Rows.Clear(); for (int i = 0; i < s_value.GYCSs.Count; i++) { dgvGYCS.Rows.Add(); dgvGYCS[1, i].Value = s_value.GYCSs[i]; } } else { //写入xml s_value = new S_Gongxu_Tongyong_Value(); s_value.gongbus = new List<S_Gongbu>(0); s_value.JSTJs = new List<S_JSTJ>(0); s_value.GYCSs = new List<string>(0); s_value.JGZBs = new List<string>(0); s_value.FZs = new List<string>(0); //工序属性 dgvGXSX.EndEdit(); s_value.gongxuhao = (string)dgvGXSX[1, 0].Value; s_value.gongxumingcheng = (string)dgvGXSX[1, 1].Value; s_value.shebei = (string)dgvGXSX[1, 2].Value; s_value.jiamoju = (string)dgvGXSX[1, 3].Value; s_value.jizhun = (string)dgvGXSX[1, 4].Value; s_value.yingdu = (string)dgvGXSX[1, 5].Value; s_value.guanjiangongxu = chkGJGX.CheckState == CheckState.Checked; //加工准备 dgvJGZB.EndEdit(); foreach (DataGridViewRow row in dgvJGZB.Rows) { if (!row.IsNewRow) { s_value.JGZBs.Add((string)row.Cells[1].Value); } } //工步内容 dgvGBNR.EndEdit(); int flag = 0; //0 起始 1 工步 2 子工步 S_Gongbu s_gongbu = new S_Gongbu(); s_gongbu.zigongbus = new List<S_Zigongbu>(); foreach (DataGridViewRow row in dgvGBNR.Rows) { if (!row.IsNewRow) { if (row.Tag == null || row.Tag.ToString() != "Zigongbu") { if (flag != 0) { s_value.gongbus.Add(s_gongbu); s_gongbu = new S_Gongbu(); s_gongbu.zigongbus = new List<S_Zigongbu>(); } flag = 1; s_gongbu.neirong = (string)row.Cells[1].Value; s_gongbu.renju = (string)row.Cells[2].Value; s_gongbu.liangju = (string)row.Cells[3].Value; s_gongbu.beizhu = (string)row.Cells[4].Value; } else { flag = 2; S_Zigongbu s_zigongbu = new S_Zigongbu(); s_zigongbu.neirong = (string)row.Cells[1].Value; s_zigongbu.renju = (string)row.Cells[2].Value; s_zigongbu.liangju = (string)row.Cells[3].Value; s_zigongbu.beizhu = (string)row.Cells[4].Value; s_gongbu.zigongbus.Add(s_zigongbu); } } else { if (flag!=0) { s_value.gongbus.Add(s_gongbu); } } } //技术条件 dgvJSTJ.EndEdit(); S_JSTJ s_jstj = new S_JSTJ(); foreach (DataGridViewRow row in dgvJSTJ.Rows) { if (!row.IsNewRow) { s_jstj.neirong = (string)row.Cells[1].Value; s_jstj.liangju = (string)row.Cells[2].Value; s_jstj.beizhu = (string)row.Cells[3].Value; s_value.JSTJs.Add(s_jstj); } } //附注 dgvFZ.EndEdit(); foreach (DataGridViewRow row in dgvFZ.Rows) { if (!row.IsNewRow) { s_value.FZs.Add((string)row.Cells[1].Value); } } //工艺参数 dgvGYCS.EndEdit(); foreach (DataGridViewRow row in dgvGYCS.Rows) { if (!row.IsNewRow) { s_value.GYCSs.Add((string)row.Cells[1].Value); } } XML3DPPM.SetGongxu_Tongyong_Value(index_a,s_value,XmlFile); } }