時間倒計時工具

背景:因公司小組人員結構調整優化及各線剩餘時間可視化。

 

 

此工具分爲兩部份:

1:顯示工具【Main】

2:數據添加工具【DataAdd】

 

//====================================Main================================

//===============引用========

using DevExpress.Utils;
using DevExpress.XtraEditors.Drawing;
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
using System;
using System.Data;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using System.Xml;

//==================================以下爲正文內容=============

 public partial class Main : Form
    {
        DateTimePicker dtp = new DateTimePicker();  //實例化一個DateTimePicker控件

        public Main()
        {
            InitializeComponent();

            //dataGridView1.Controls.Add(dtp);  //將時間控件加入DataGridView
            gridView3.Connect(dtp);
            //dataGridView1.Controls.Add(prog); 
            dtp.Visible = false;  //先不顯示
            dtp.Format = DateTimePickerFormat.Time;  //設置日期格式,2017-11-11
            dtp.TextChanged += new EventHandler(dtp_TextChange); //爲時間控件加入事件dtp_TextChange

        }
        private void dtp_TextChange(object sender, EventArgs e)
        {
            //gridView3.Connect.CurrentCell.Value = dtp.Value.ToString();  //時間控件選擇時間時,將時間內容賦給所在的單元格
        }
        private void Form1_Load(object sender, EventArgs e)
        {

            DataTable dt = new DataTable();
            dt.Columns.Add("線別", typeof(string));
            dt.Columns.Add("開始時間", typeof(DateTime));
            dt.Columns.Add("結束時間", typeof(DateTime));
            dt.Columns.Add("剩餘進度", typeof(string));
            dt.Columns.Add("剩餘時間", typeof(string));
            dt.Columns.Add("對位人員", typeof(string));
            dt.Columns.Add("金樣編號", typeof(string));
            dt.Columns.Add("機型", typeof(string));
            dt.Columns.Add("對位類型", typeof(string));

            //設置DEV

            gridView3.OptionsCustomization.AllowFilter = false;//禁用 GridControl 中列頭的過濾器 過濾器如下圖所示:
            gridView3.OptionsView.ShowGroupPanel = false;//隱藏 GridControl 的 GroupPanel 表頭
            gridView3.OptionsMenu.EnableColumnMenu = false;//禁用 GridControl 中單擊列彈出右鍵菜單


            DataSet ds = new DataSet();
            ////讀取XML
            DataTable data = new DataTable();


            if (!File.Exists("info.xml"))

           {
               DataAdd f = new DataAdd();
               f.ShowDialog();

           }
           
            else
            {
                ////將XML文件加載進來
                XmlDocument doc2 = new XmlDocument();
                doc2.Load("info.xml");
                //獲取根節點
                XmlElement root2 = doc2.DocumentElement;
                //獲取子節點
                XmlNodeList pnodes = root2.GetElementsByTagName("attribute");
                //使用foreach循環讀出集合

                foreach (XmlNode node in pnodes)
                {
                    string name = ((XmlElement)node).GetAttribute("Lines");
                    string x = ((XmlElement)node).GetElementsByTagName("開始時間")[0].InnerText;
                    string y = ((XmlElement)node).GetElementsByTagName("結束時間")[0].InnerText;
                    string z = ((XmlElement)node).GetElementsByTagName("對位人員")[0].InnerText;
                    string u = ((XmlElement)node).GetElementsByTagName("金樣編號")[0].InnerText;
                    string q = ((XmlElement)node).GetElementsByTagName("機型")[0].InnerText;
                    string w = ((XmlElement)node).GetElementsByTagName("對位類型")[0].InnerText;

                    dt.Rows.Add(new object[] { name, x, y, "12", "34", z, u, q, w });

                }
                gridControl3.DataSource = dt;
                gridView3.Columns[1].DisplayFormat.FormatString = "t";
                gridView3.Columns[2].DisplayFormat.FormatString = "g";
                gridView3.Columns[0].OptionsColumn.AllowEdit = false;//設置列不可以編輯
                gridView3.Columns[1].OptionsColumn.AllowEdit = false;//設置列不可以編輯
                gridView3.Columns[2].OptionsColumn.AllowEdit = false;//設置列不可以編輯
                gridView3.Columns[3].OptionsColumn.AllowEdit = false;//設置列不可以編輯
                gridView3.Columns[4].OptionsColumn.AllowEdit = false;//設置列不可以編輯
              
                gridView3.Columns[5].OptionsColumn.AllowEdit = false;//設置列不可以編輯
                gridView3.Columns[6].OptionsColumn.AllowEdit = false;//設置列不可以編輯
                gridView3.Columns[7].OptionsColumn.AllowEdit = false;//設置列不可以編輯
                gridView3.Columns[8].OptionsColumn.AllowEdit = false;//設置列不可以編輯
            }
           

        }


        private void DrProgressBar(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e,int i)
        {

            DateTime tarttimer = Convert.ToDateTime(gridView3.GetRowCellValue(i, gridView3.Columns["開始時間"]).ToString());
            DateTime stoptimer = tarttimer.AddHours(73);
            DateTime date1 = Convert.ToDateTime(DateTime.Now.ToString(("yyyy-MM-dd HH:mm:ss")));
            TimeSpan diff1 = stoptimer.Subtract(date1);
            double bfb = diff1.TotalMinutes;//已遞增數
            double yy = (bfb / 43.8);
            //this.gridView3.SetRowCellValue(i, gridView3.Columns[3], yy.ToString().Substring(0, 5) + "%");


           // decimal percent = yy;// Convert.ToDecimal(bfb2 / bfb);
           
           // int iIndex = 0;
            int width = (int)(Math.Abs(yy) * e.Bounds.Width / 100);
            //if (yy < 50)
            //{
            //    width = (int)( Math.Abs(1) * e.Bounds.Width / 100); ;// iIndex = 1;
            //}
            ////if (iIndex == 1)
            ////{
            ////    width =  (int)(100 * Math.Abs(1) * e.Bounds.Width / 100);
            ////}
            //else
            //{
                //width =  (int)(Math.Abs(yy) * e.Bounds.Width / 100);
            //}

            
            Brush b = Brushes.LawnGreen;

            if (0<yy && yy < 30)
            {
                Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, width, e.Bounds.Height);
                b = Brushes.Yellow;
                e.Graphics.FillRectangle(b, rect);
            }
            if (yy < 0)
            {
                Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height);
                b = Brushes.Red;
                e.Graphics.FillRectangle(b, rect);
            }
            if (yy > 30)
            {
                Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, width, e.Bounds.Height);
                b = Brushes.Green;
                e.Graphics.FillRectangle(b, rect);
            }

            


        }

        private void DrawEditor(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {

            GridCellInfo cell = e.Cell as GridCellInfo;
            Point offset = cell.CellValueRect.Location;
            BaseEditPainter pb = cell.ViewInfo.Painter as BaseEditPainter;
            AppearanceObject style = cell.ViewInfo.PaintAppearance;
            if (!offset.IsEmpty)
                cell.ViewInfo.Offset(offset.X, offset.Y);
            try
            {
                pb.Draw(new ControlGraphicsInfoArgs(cell.ViewInfo, e.Cache, cell.Bounds));
            }
            finally
            {
                if (!offset.IsEmpty)
                {
                    cell.ViewInfo.Offset(-offset.X, -offset.Y);
                }
            }


        }


        private void gridView3_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {
            //if (e.RowHandle == gridView1.FocusedRowHandle)
            //{
            //    e.Appearance.BackColor = Color.CadetBlue;
            //}
            if (e.Column.FieldName == "剩餘進度")//爲ZBJD這列設置進度條
            {
                DrProgressBar(e,e .RowHandle);
                e.Handled = true;
                DrawEditor(e);
            }

            //   try
            //{
            //    if (this.dataGridView1.CurrentCell.ColumnIndex.ToString() == "4" || this.dataGridView1.CurrentCell.ColumnIndex.ToString() == "6" || this.dataGridView1.CurrentCell.ColumnIndex.ToString() == "5")//在此指定和哪一列綁定
            //    {
            //        System.Drawing.Rectangle rect = gridView3 .InvalidateRect ((dataGridView1.CurrentCell.ColumnIndex, dataGridView1.CurrentCell.RowIndex, false);
            //        dmg.Left = rect.Left;
            //        dmg.Top = rect.Top;
            //        dmg.Width = rect.Width;
            //        dmg.Height = rect.Height;
            //        dmg.Visible = true;
            //        i = this.dataGridView1.CurrentRow.Index;
            //         j = this.dataGridView1.CurrentCell.ColumnIndex;
            //         dataGridView1.CurrentCell.Value = dmg.Value;
            //    }
            //    else
            //    {
            //        dmg.Visible = false;
            //    }

            //}
            //catch
            //{
            //}


        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {


            //DialogResult dr = MessageBox.Show("確認關閉嗎?", "提示", MessageBoxButtons.OKCancel);
            //if (dr == DialogResult.OK)
            //{
            //    //確認參數
            //   // SaveXML();
            //    //MessageBox.Show("數據保存完成");
            //    e.Cancel = false;
            //}
            //else if (dr == DialogResult.Cancel)
            //{
            //    e.Cancel = true;
            //}

        }


        private void SaveXML()
        {
            //處理XML
            //創建一個XML文檔對象
            XmlDocument doc = new XmlDocument();
            //聲明XML頭部信息
            XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
            //添加進doc對象子節點
            doc.AppendChild(dec);
            //創建根節點
            XmlElement root = doc.CreateElement("參數");
            doc.AppendChild(root);

            //開始循環保存數據

            // MessageBox.Show(gridView3.RowCount.ToString());
            for (int i = 0; i < gridView3.RowCount; i++)
            {

                string linename = gridView3.GetRowCellValue(i, gridView3.Columns["線別"]).ToString();//量產1線
                string starttimer = gridView3.GetRowCellValue(i, gridView3.Columns["開始時間"]).ToString();//開始時間
                string stoptimer = gridView3.GetRowCellValue(i, gridView3.Columns["結束時間"]).ToString();//結束時間
                string checkyy = gridView3.GetRowCellValue(i, gridView3.Columns["對位人員"]).ToString();//對位人員
                string CMW = gridView3.GetRowCellValue(i, gridView3.Columns["金樣編號"]).ToString();//金樣編號

                //再創建根節點下的子節點
                XmlElement student = doc.CreateElement("attribute");
                //設置子節點屬性
                student.SetAttribute("Lines", linename);

                //子節點下再創建標記
                XmlElement one_X = doc.CreateElement("開始時間");
                //<X>的內容
                XmlText xmlText1 = doc.CreateTextNode(starttimer);//存儲x的值
                //將內容添加到<X>標記
                one_X.AppendChild(xmlText1);
                //再將<X>標記添加到<上下料>標記的子節點下
                student.AppendChild(one_X);

                XmlElement one_Y = doc.CreateElement("結束時間");
                XmlText xmlText2 = doc.CreateTextNode(stoptimer);//存儲y的值
                one_Y.AppendChild(xmlText2);
                student.AppendChild(one_Y);

                XmlElement one_Z = doc.CreateElement("對位人員");
                XmlText xmlText3 = doc.CreateTextNode(checkyy);//存儲z的值
                one_Z.AppendChild(xmlText3);
                student.AppendChild(one_Z);

                XmlElement one_U = doc.CreateElement("金樣編號");
                XmlText xmlTextU = doc.CreateTextNode(CMW);//存儲z的值
                one_U.AppendChild(xmlTextU);
                student.AppendChild(one_U);

                //最後把標記添加到根節點的子節點下

                root.AppendChild(student);
            }

            //doc文檔對象保存寫入
            doc.Save("info.xml");

        }

        private void 新增新行ToolStripMenuItem_Click(object sender, EventArgs e)
        {

            DataAdd p = new DataAdd();
            p.ShowDialog();
            


        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                for (int i = 0; i < gridView3.RowCount; i++)
                {
                    DateTime tarttimer = Convert.ToDateTime(gridView3.GetRowCellValue(i, gridView3.Columns["開始時間"]).ToString());
                    DateTime stoptimer = tarttimer.AddHours(73);
                    System.DateTime date1 = Convert.ToDateTime(DateTime.Now.ToString(("yyyy-MM-dd HH:mm:ss")));
                    System.TimeSpan diff1 = stoptimer.Subtract(date1);
                    System.TimeSpan diff2 = Convert.ToDateTime(DateTime.Now.ToString(("yyyy-MM-dd HH:mm:ss"))).Subtract(Convert.ToDateTime(DateTime.Now.ToString(("yyyy-MM-dd HH:mm:ss"))));
                    if (diff1 < diff2)
                    {
                        this.gridView3.SetRowCellValue(i, gridView3.Columns[4], "00:00:00");
                    }
                    else
                    {
                        this.gridView3.SetRowCellValue(i, gridView3.Columns[4], diff1.ToString());

                    }

                    double bfb = diff1.TotalMinutes;//已遞增數

                    double yy = (bfb / 43.8);

                    if (diff1 < diff2)
                    {
                        this.gridView3.SetRowCellValue(i, gridView3.Columns[3], "00.00%");
                    }
                    else
                    {
                        // this.gridView3.SetRowCellValue(i, gridView3.Columns[3], yy.ToString().Substring(0, yy.ToString().Length) + "%");
                        if ((yy.ToString().Length > 5))
                        {
                            this.gridView3.SetRowCellValue(i, gridView3.Columns[3], yy.ToString().Substring(0, 5) + "%");
                        }
                        if ((yy.ToString().Length < 5))
                        {
                            this.gridView3.SetRowCellValue(i, gridView3.Columns[3], yy.ToString().Substring(0, 4) + "%");
                        }

                    }

                    //DateTime tarttimer2 = Convert.ToDateTime(gridView3.GetRowCellValue(i, gridView3.Columns["剩餘時間"]).ToString());
                    // DateTime stoptimer = tarttimer.AddHours(73);
                    //System.DateTime date1 = Convert.ToDateTime(DateTime.Now.ToString(("yyyy-MM-dd hh:mm:ss")));
                    // System.TimeSpan diff1 = stoptimer.Subtract(date1);
                    //   System.TimeSpan diff1 = stoptimer.Subtract(date1);
                    // System.TimeSpan diff3 = date1.Subtract(tarttimer);
                    //  System.TimeSpan diff2 = stoptimer.Subtract(tarttimer2);//算出總分鐘數
                    //  this.gridView3.SetRowCellValue(1, gridView3.Columns[4], diff3.ToString());


                }

            }
            catch 
            {
            
            }

        }


    }
 

//============工具界面

 

 

 

======================說明==============

在顯示界面右鍵點擊“修改數據"即可打開DataAdd

//========================DataAdd==============================

//========================引用==============================

using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using System.Xml;

 

//==========================以下正文============================

 

 public partial class DataAdd : Form
    {
        DevExpress.XtraEditors.DateEdit dtp = new DevExpress.XtraEditors.DateEdit();
        Rectangle _Rectangle, ectangle;


        XmlDocument doc = new XmlDocument();
        XmlElement root ;
        public DataAdd()
        {
            InitializeComponent();
            dataGridView1.Controls.Add(dtp);  //將時間控件加入DataGridView
            dtp.Visible = false;  //先不顯示
            dtp.TextChanged += new EventHandler(dtp_TextChange); //爲時間控件加入事件dtp_TextChange

        }

        private void dtp_TextChange(object sender, EventArgs e)
        {
            dataGridView1.CurrentCell.Value = dtp.Text;  //時間控件選擇時間時,將時間內容賦給所在的單元格
        }

        private void DataAdd_Load(object sender, EventArgs e)
        {

            if (File.Exists("info.xml"))
            {
                ////將XML文件加載進來
                XmlDocument doc2 = new XmlDocument();
                doc2.Load("info.xml");
                //獲取根節點
                XmlElement root2 = doc2.DocumentElement;
                //獲取子節點
                XmlNodeList pnodes = root2.GetElementsByTagName("attribute");
                //使用foreach循環讀出集合

                foreach (XmlNode node in pnodes)
                {
                    string name = ((XmlElement)node).GetAttribute("Lines");
                    string x = ((XmlElement)node).GetElementsByTagName("開始時間")[0].InnerText;
                    string y = ((XmlElement)node).GetElementsByTagName("結束時間")[0].InnerText;
                    string z = ((XmlElement)node).GetElementsByTagName("對位人員")[0].InnerText;
                    string u = ((XmlElement)node).GetElementsByTagName("金樣編號")[0].InnerText;
                    string q = ((XmlElement)node).GetElementsByTagName("機型")[0].InnerText;
                    string w = ((XmlElement)node).GetElementsByTagName("對位類型")[0].InnerText;

                    int i = dataGridView1.Rows.Add();
                    dataGridView1.Rows[i].Cells[0].Value = name;
                    dataGridView1.Rows[i].Cells[1].Value = x;
                    dataGridView1.Rows[i].Cells[2].Value = y;
                    dataGridView1.Rows[i].Cells[3].Value = z;
                    dataGridView1.Rows[i].Cells[4].Value = u;
                    dataGridView1.Rows[i].Cells[5].Value = q;
                    dataGridView1.Rows[i].Cells[6].Value = w;
                }

            }

           // gridControl3.DataSource = dt;

            //dataGridView1.DataSource = dt;


            dtp.Properties.DisplayFormat.FormatString = "yyyy-MM-dd HH:mm:ss";
            dtp.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            dtp.Properties.EditFormat.FormatString = "yyyy-MM-dd HH:mm:ss";
            dtp.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            dtp.Properties.Mask.EditMask = "yyyy-MM-dd HH:mm:ss";
            dtp.Properties.VistaDisplayMode = DevExpress.Utils.DefaultBoolean.True;
            dtp.Properties.VistaEditTime = DevExpress.Utils.DefaultBoolean.True;
            dtp.Properties.VistaTimeProperties.DisplayFormat.FormatString = "HH:mm:ss";
            dtp.Properties.VistaTimeProperties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            dtp.Properties.VistaTimeProperties.EditFormat.FormatString = "HH:mm:ss";
            dtp.Properties.VistaTimeProperties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            dtp.Properties.VistaTimeProperties.Mask.EditMask = "HH:mm:ss";


            //
            dataGridView1.Columns[0].Width = 100;
            dataGridView1.Columns[1].Width = 170;
            dataGridView1.Columns[2].Width = 170;
            dataGridView1.Columns[3].Width = 100;
            dataGridView1.Columns[4].Width = 100;

        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 1 || e.ColumnIndex == 2)
            {
                _Rectangle = dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true); //得到所在單元格位置和大小
                dtp.Size = new Size(_Rectangle.Width, _Rectangle.Height); //把單元格大小賦給時間控件
                dtp.Location = new Point(_Rectangle.X, _Rectangle.Y); //把單元格位置賦給時間控件
                dtp.Visible = true;  //顯示控件
            }
            else
                dtp.Visible = false;


        }

        private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
        {
            dtp.Visible = false;
        }

        private void dataGridView1_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
        {
            dtp.Visible = false;
        }

        private void button1_Click(object sender, EventArgs e)
        {

           
                int i = dataGridView1.Rows.Add();
                dataGridView1.Rows[i].Cells[0].Value = textBox3.Text;
                dataGridView1.Rows[i].Cells[1].Value = DateTime.Now.ToString(("yyyy-MM-dd HH:mm:ss"));
                dataGridView1.Rows[i].Cells[2].Value = DateTime.Now.ToString(("yyyy-MM-dd HH:mm:ss"));
                dataGridView1.Rows[i].Cells[3].Value = ""; ;
                dataGridView1.Rows[i].Cells[4].Value = "";
                dataGridView1.Rows[i].Cells[5].Value = ""; ;
                dataGridView1.Rows[i].Cells[6].Value = "";
               


        }

        private void button2_Click(object sender, EventArgs e)
        {
            //DateTime time = Convert.ToDateTime(dataGridView1.Rows[i].Cells[1].Value);
            //DateTime date1 = Convert.ToDateTime(DateTime.Now.ToString(("yyyy-MM-dd hh:mm:ss")));
            //TimeSpan diff1 = date1.Subtract(time);
            //int d = (int)diff1.TotalMinutes;
            //if ((d > 0))
            //{

            //}

            //else
            //{

            //    MessageBox.Show("開始時間數不應該大於目前時間數", "注意", MessageBoxButtons.OK, MessageBoxIcon.Warning);

            //}

            // //XmlDocument doc = new XmlDocument();
            //doc.Load("info.xml");
            ////獲取根節點
            //XmlElement root2 = doc.DocumentElement;
            ////獲取子節點
            //XmlNodeList pnodes = root2.GetElementsByTagName("attribute");
            //使用foreach循環讀出集合

            //if (!File.Exists("info.xml"))
            //{
                //創建一個XML文檔對象
                //XmlDocument doc = new XmlDocument();
                //聲明XML頭部信息
                XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
                //添加進doc對象子節點
                doc.AppendChild(dec);
                //創建根節點
                 root = doc.CreateElement("參數");
                doc.AppendChild(root);
            //}
            //else 
            //{
            //    //XmlDocument doc = new XmlDocument();
            //    doc.Load("info.xml");
            //    //獲取根節點
            //     root = doc.DocumentElement;
            //    //獲取子節點
            //    XmlNodeList pnodes = root.GetElementsByTagName("attribute");
            //    //使用foreach循環讀出集合


            //}

            //開始循環保存數據

           // MessageBox.Show(dataGridView1.Rows.Count.ToString ());
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {

                string linename = dataGridView1.Rows[i].Cells[0].Value.ToString();//量產1線
                string starttimer = dataGridView1.Rows[i].Cells[1].Value.ToString();//開始時間
                string stoptimer = dataGridView1.Rows[i].Cells[2].Value.ToString();//結束時間
                string checkyy = dataGridView1.Rows[i].Cells[3].Value.ToString();//對位人員
                string CMW = dataGridView1.Rows[i].Cells[4].Value.ToString();//金樣編號

                string checky = dataGridView1.Rows[i].Cells[5].Value.ToString();//對位人員
                string CMWs = dataGridView1.Rows[i].Cells[6].Value.ToString();//金樣編號

                //MessageBox.Show(starttimer);
                //MessageBox.Show(stoptimer);


                //再創建根節點下的子節點
                XmlElement student = doc.CreateElement("attribute");
                //設置子節點屬性
                student.SetAttribute("Lines", linename);

                //子節點下再創建標記
                XmlElement one_X = doc.CreateElement("開始時間");
                //<X>的內容
                XmlText xmlText1 = doc.CreateTextNode(starttimer);//存儲x的值
                //將內容添加到<X>標記
                one_X.AppendChild(xmlText1);
                //再將<X>標記添加到<上下料>標記的子節點下
                student.AppendChild(one_X);

                XmlElement one_Y = doc.CreateElement("結束時間");
                XmlText xmlText2 = doc.CreateTextNode(stoptimer);//存儲y的值
                one_Y.AppendChild(xmlText2);
                student.AppendChild(one_Y);

                XmlElement one_Z = doc.CreateElement("對位人員");
                XmlText xmlText3 = doc.CreateTextNode(checkyy);//存儲z的值
                one_Z.AppendChild(xmlText3);
                student.AppendChild(one_Z);

                XmlElement one_U = doc.CreateElement("金樣編號");
                XmlText xmlTextU = doc.CreateTextNode(CMW);//存儲z的值
                one_U.AppendChild(xmlTextU);
                student.AppendChild(one_U);

                XmlElement one_Z2 = doc.CreateElement("機型");
                XmlText xmlText32 = doc.CreateTextNode(checky);//存儲z的值
                one_Z2.AppendChild(xmlText32);
                student.AppendChild(one_Z2);

                XmlElement one_U3 = doc.CreateElement("對位類型");
                XmlText xmlTextU3 = doc.CreateTextNode(CMWs);//存儲z的值
                one_U3.AppendChild(xmlTextU3);
                student.AppendChild(one_U3);

                //最後把標記添加到根節點的子節點下

                root.AppendChild(student);
            }

            //doc文檔對象保存寫入
            doc.Save("info.xml");


          //  SaveXML();
            
            MessageBox.Show("數據保存完成; 工具將會重新啓動");
            Process.Start("對位時間倒計時工具.exe");
            Application.Exit();
           // this.Hide ();
            //Application.EnableVisualStyles();
            //Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new Main()); 
        }


        private void SaveXML()
        {
            //處理XML
            //創建一個XML文檔對象
            XmlDocument doc = new XmlDocument();
            //聲明XML頭部信息
            XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
            //添加進doc對象子節點
            doc.AppendChild(dec);
            //創建根節點
            XmlElement root = doc.CreateElement("參數");
            doc.AppendChild(root);

            //開始循環保存數據

            // MessageBox.Show(gridView3.RowCount.ToString());
            for (int i = 0; i < dataGridView1 .Rows .Count ; i++)
            {

                string linename = dataGridView1.Rows[i].Cells[0].Value.ToString () ;//量產1線
                string starttimer = dataGridView1.Rows[i].Cells[1].Value.ToString();//開始時間
                string stoptimer = dataGridView1.Rows[i].Cells[2].Value.ToString();//結束時間
                string checkyy = dataGridView1.Rows[i].Cells[3].Value.ToString();//對位人員
                string CMW = dataGridView1.Rows[i].Cells[4].Value.ToString();//金樣編號

                //再創建根節點下的子節點
                XmlElement student = doc.CreateElement("attribute");
                //設置子節點屬性
                student.SetAttribute("Lines", linename);

                //子節點下再創建標記
                XmlElement one_X = doc.CreateElement("開始時間");
                //<X>的內容
                XmlText xmlText1 = doc.CreateTextNode(starttimer);//存儲x的值
                //將內容添加到<X>標記
                one_X.AppendChild(xmlText1);
                //再將<X>標記添加到<上下料>標記的子節點下
                student.AppendChild(one_X);

                XmlElement one_Y = doc.CreateElement("結束時間");
                XmlText xmlText2 = doc.CreateTextNode(stoptimer);//存儲y的值
                one_Y.AppendChild(xmlText2);
                student.AppendChild(one_Y);

                XmlElement one_Z = doc.CreateElement("對位人員");
                XmlText xmlText3 = doc.CreateTextNode(checkyy);//存儲z的值
                one_Z.AppendChild(xmlText3);
                student.AppendChild(one_Z);

                XmlElement one_U = doc.CreateElement("金樣編號");
                XmlText xmlTextU = doc.CreateTextNode(CMW);//存儲z的值
                one_U.AppendChild(xmlTextU);
                student.AppendChild(one_U);

                //最後把標記添加到根節點的子節點下

                root.AppendChild(student);
            }

            //doc文檔對象保存寫入
            doc.Save("info.xml");

        }

        private void 刪除選中行ToolStripMenuItem_Click(object sender, EventArgs e)
        {

            dataGridView1.Rows.RemoveAt(dataGridView1.CurrentCell.RowIndex);
            //dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
           // this.dataGridView1.SelectedCells[0].Value.ToString();

        }
    }
 

//================================工具界面================

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章