Ejemplo n.º 1
0
        /*
         *
         * 从 xml 数据中  读取一个已经存在的工作组(N个工作流的组合)
         *
         * */

        private void LoadXml()
        {
            personList = new List <hyPerson>();// 创建工作流列表

            xmlDoc = new XmlDocument();
            xmlDoc.Load("hyPerson.xml"); //加载xml文件
            xroot = xmlDoc.SelectSingleNode("persongroup");

            XmlNodeList xnl1 = xroot.ChildNodes;

            foreach (XmlNode xn1 in xnl1)
            {// Person
                // 每一个工作流,都包含关联一个工艺
                // 每个工艺中,都包含了13个station(炉子,水槽)的参数.station para
                hyPerson Person = new hyPerson();

                XmlElement xe1 = (XmlElement)xn1;

                Person.id         = Convert.ToInt32(xe1.ChildNodes.Item(0).InnerText); // id
                Person.name       = xe1.ChildNodes.Item(1).InnerText;                  // 姓名
                Person.job_number = xe1.ChildNodes.Item(2).InnerText;                  // 工号
                Person.position   = xe1.ChildNodes.Item(3).InnerText;                  // 岗位
                Person.password   = Encript.Decode(xe1.ChildNodes.Item(4).InnerText);  // 密码//加密

                person_id_max_assigned = Math.Max(Person.id, person_id_max_assigned);

                personList.Add(Person);
            }
        }
Ejemplo n.º 2
0
        ///<summary>
        /// 修改节点
        ///</summary>
        private void UpdateXmlNode(hyPerson Person)
        {
            //xmlDoc = new XmlDocument();
            //xmlDoc.Load("hyPerson.xml"); // 加载xml文件
            // 获取Persongroup节点的所有子节点
            XmlNodeList xnl2 = xmlDoc.SelectSingleNode("persongroup").ChildNodes;

            // 遍历所有子节点
            foreach (XmlNode xn2 in xnl2)
            {
                XmlElement xe2 = (XmlElement)xn2; // 将子节点类型转换为XmlElement类型

                if (Convert.ToInt32(xe2.ChildNodes.Item(0).InnerText) == Person.id)
                {
                    xe2.ChildNodes.Item(1).InnerText = Person.name;                     //
                    xe2.ChildNodes.Item(2).InnerText = Person.job_number;               //
                    xe2.ChildNodes.Item(3).InnerText = Person.position;                 //
                    xe2.ChildNodes.Item(4).InnerText = Encript.Encode(Person.password); // 加密

                    break;
                }
            }

            xmlDoc.Save("hyPerson.xml");//保存。
        }
Ejemplo n.º 3
0
        /*
         *
         * 在 xml 数据中  追加(插入)数据。
         *
         * */

        private void InsertXmlNode(hyPerson Person)
        {
            /**
             * 插入一个person
             * <person>
             * */
            XmlElement xe1 = xmlDoc.CreateElement("person"); //创建一个﹤person﹥节点

            person_id_max_assigned++;                        // ID
            Person.id = person_id_max_assigned;              // ID

            XmlElement xe2_1 = xmlDoc.CreateElement("id");   // id

            xe2_1.InnerText = Person.id.ToString();
            xe1.AppendChild(xe2_1);
            XmlElement xe2_2 = xmlDoc.CreateElement("name");// id

            xe2_2.InnerText = Person.name.ToString();
            xe1.AppendChild(xe2_2);
            XmlElement xe2_3 = xmlDoc.CreateElement("job_number");// id

            xe2_3.InnerText = Person.job_number.ToString();
            xe1.AppendChild(xe2_3);
            XmlElement xe2_4 = xmlDoc.CreateElement("position");// id

            xe2_4.InnerText = Person.position.ToString();
            xe1.AppendChild(xe2_4);
            XmlElement xe2_5 = xmlDoc.CreateElement("password");          // id

            xe2_5.InnerText = Encript.Encode(Person.password.ToString()); // 加密
            xe1.AppendChild(xe2_5);

            xroot.AppendChild(xe1);      //添加到﹤Persongroup﹥节点中
            xmlDoc.Save("hyPerson.xml"); //保存其更改
        }
Ejemplo n.º 4
0
        public void LoadPersonInfo()
        {
            foreach (hyPerson person in personGroup.personList)
            {
                if (currPersonId == person.id)
                {
                    currPerson = person;

                    //
                    labelPersonName.Text      = currPerson.name;       // 姓名
                    labelPersonJobNumber.Text = currPerson.job_number; // 工号
                    labelPersonPosition.Text  = currPerson.position;   // 岗位

                    // 操作权限
                    switch (currPerson.position)
                    {
                    case "操作员":
                        MainForm.Permition = MainForm.PERMITION.Operator;
                        break;

                    case "技术员":
                        MainForm.Permition = MainForm.PERMITION.Technician;
                        break;

                    case "管理员":
                        MainForm.Permition = MainForm.PERMITION.Manager;
                        break;
                    }

                    // 头像
                    int    id    = currPerson.id;
                    string fname = "Person\\" + id.ToString() + ".jpg";
                    if (File.Exists(fname))
                    {
                        Stream s = File.Open(fname, FileMode.Open);
                        pictureBoxPotrait.Image = Image.FromStream(s);
                        s.Close();
                    }
                    else
                    {
                        pictureBoxPotrait.Image = HY_PIP.Properties.Resources.portrait;
                    }
                }
            }
        }
Ejemplo n.º 5
0
        /**
         * 修改数据文件
         * */

        public void UpdatePerson(int index, hyPerson Person)
        {
            UpdateXmlNode(Person); // XML文件
            personList[index] = Person;
        }
Ejemplo n.º 6
0
        /**
         * 新增一个人员
         * */

        public void NewPerson(hyPerson Person)
        {
            personList.Add(Person); // 添加工艺
            InsertXmlNode(Person);  // 追加数据文件
        }
Ejemplo n.º 7
0
        /*********************************************************
         *
         * 新增人员信息
         *
         * 保存特征
         *
         * */

        private void buttonNew_Click(object sender, EventArgs e)
        {
            // 一般性检查
            if (textBoxName.Text == "")
            {
                MessageBox.Show(this, "人名不能为空!"); return;
            }
            if (textBoxJobNumber.Text == "")
            {
                MessageBox.Show(this, "工号不能为空!"); return;
            }
            if (textBoxPwd.Text == "")
            {
                MessageBox.Show(this, "密码不能为空!"); return;
            }
            // 检测某图像是否有指纹
            if (detectedFinger != true)
            {
                MessageBox.Show(this, "请输入有效指纹!"); return;
            }

            // 操作确认
            DialogResult dr = MessageBox.Show("确定新增人员信息吗?", "提示", MessageBoxButtons.OKCancel);

            if (dr == DialogResult.Cancel)
            {
                return;
            }

            // ----------------------------------------------------
            // 从 textBox 中获取信息
            hyPerson person = new hyPerson();

            // 记录信息(xml)
            person.name       = textBoxName.Text;                         // 姓名
            person.job_number = textBoxJobNumber.Text;                    // 工号
            person.position   = comboBoxPosition.SelectedItem.ToString(); // 岗位
            person.password   = textBoxPwd.Text;                          // 密码
            personGroup.NewPerson(person);                                // person.id 会自动分配

            // ----------------------------------------------------
            // 根据得到的ID号,保存相关文件,指纹图像文件,指纹特征文件,人物头像文件
            // 创建目录
            string person_path = "Person\\";
            string fname_light = person.id.ToString();

            if (!Directory.Exists(person_path))
            {// 检查LOG目录是否存在
                Directory.CreateDirectory(person_path);
            }

            // ----------------------------------------------------
            // 保存人物头像
            if (jpg_fname != "")
            {
                File.Copy(jpg_fname, person_path + fname_light + ".jpg");
            }

            // ----------------------------------------------------
            // 保存指纹图像  保存指纹特征
            try
            {
                // 对输入的指纹图像数据提取特征值
                D5Scanner.Process(gpImageCap, gpFeature, gnScale);

                FileStream   stream = null;
                BinaryWriter writer = null;
                // 保存指纹图像
                D5Scanner.SaveBMPFile(person_path + fname_light + ".bmp", gpImageCap);
                // 保存指纹特征
                stream = new FileStream(person_path + fname_light + ".fea", FileMode.OpenOrCreate);
                if (stream == null)
                {
                    return;
                }
                writer = new BinaryWriter(stream, Encoding.Default);
                if (writer == null)
                {
                    return;
                }

                writer.Write(gpFeature, 0, 256);

                writer.Close();
                stream.Close();
            }
            catch (Exception e1)
            {
            }

            // 更新 dataGridView
            // 只需要更新数据源 DataSource 就可以了。也就是 dt.
            string[] strArr = new string[4];  //
            strArr[0] = person.id.ToString(); //
            strArr[1] = person.name;          //
            strArr[2] = person.job_number;    //
            strArr[3] = person.position;      //
            dt.Rows.Add(strArr);

            // 跳转选择新增的那一行
            // dataGridView 排序后会引起索引变化,那么如何找到该索引呢,使用下面的方法。
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                if (dataGridView1.Rows[i].Cells[0].Value.ToString() == strArr[0])
                {
                    dataGridView1.CurrentCell = dataGridView1.Rows[i].Cells[0]; // 设置当前行(焦点)
                    break;
                }
            }
        }