⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmgoorback.cs

📁 人事管理系统的C#实现.比较完整.难得的代码
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml;

namespace HumanManage.EmpInfor
{
    public partial class FrmGoOrBack : Form
    {
        public static XmlDocument EmpInfor = new XmlDocument();
        public static XmlDocument GoOrBack = new XmlDocument();
        public static XmlDocument RewardsOrPun = new XmlDocument();
        //获取当前日期和时间
        string today = DateTime.Now.Date.ToString();
        int hour = Convert.ToInt32(DateTime.Now.Hour);
        int minute = Convert.ToInt32(DateTime.Now.Minute);
        int second = Convert.ToInt32(DateTime.Now.Second);
        string _minute = "";
        string _second = "";
        string YseNo = "";

        public FrmGoOrBack()
        {
            InitializeComponent();
        }

        private void FrmGoOrBack_Load(object sender, EventArgs e)
        {
            skinGoBack.SkinFile = "MSN.ssk";
            EmpInfor.Load("..\\..\\xmlAddEmp.xml");
            GoOrBack.Load("..\\..\\xmlGoOrBack.xml");
            RewardsOrPun.Load("..\\..\\xmlRewardsAndPun.xml");
            //当前日期
            
            if (minute < 10) _minute = "0" + minute.ToString();
            else             _minute = minute.ToString();
            if (second < 10) _second = "0" + second.ToString();
            else             _second = second.ToString();
            lblDate.Text = hour.ToString() + ":" + _minute + ":" + _second;
        }

        #region 创建员工惩罚信息
        /// <summary>
        /// 在xmlRewardsAndPun.xml中创建员工惩罚信息
        /// </summary>
        /// <param name="why"></param>
        /// <param name="mark"></param>
        private void CreatePun(string why, string mark)
        {
            //获得具有[员工编号流水号]属性的[添加员工]节点
            XmlNode MynodeId = RewardsOrPun.SelectSingleNode("//员工奖惩信息[@条数流水号]");
            //获取当前[员工编号流水号]的值
            int PunIds = int.Parse(MynodeId.Attributes["条数流水号"].Value);
            PunIds++;
            MynodeId.Attributes["条数流水号"].Value = PunIds.ToString();
            XmlNode EmpNodeinfo = EmpInfor.SelectSingleNode("//新员工[@员工编号='" + txtIdGoBack.Text + "']");
            XmlDocumentFragment Pun = RewardsOrPun.CreateDocumentFragment();
            XmlElement PunEmp = RewardsOrPun.CreateElement("员工");
            XmlAttribute MyAtt = RewardsOrPun.CreateAttribute("员工编号");
            MyAtt.Value = txtIdGoBack.Text + PunIds.ToString();
            PunEmp.SetAttributeNode(MyAtt);
            //创建一个<姓名>节点
            XmlElement Name = RewardsOrPun.CreateElement("姓名");
            Name.InnerText = EmpNodeinfo.ChildNodes[0].InnerText;
            //创建一个<性别>节点
            XmlElement Sex = RewardsOrPun.CreateElement("性别");
            Sex.InnerText = EmpNodeinfo.ChildNodes[1].InnerText;
            //创建一个<部门>节点
            XmlElement Dept = RewardsOrPun.CreateElement("部门");
            Dept.InnerText = EmpNodeinfo.ChildNodes[15].InnerText;
            //创建一个<职位>节点
            XmlElement Jop = RewardsOrPun.CreateElement("职位");
            Jop.InnerText = EmpNodeinfo.ChildNodes[18].InnerText;
            //创建一个<奖惩日期>节点
            XmlElement PunDate = RewardsOrPun.CreateElement("奖惩日期");
            PunDate.InnerText = dateTimeNow.Text;
            //创建一个<奖惩类别>节点
            XmlElement PunSort = RewardsOrPun.CreateElement("奖惩类别");
            PunSort.InnerText = "惩罚";
            //创建一个<奖惩分数>节点
            XmlElement PunMark = RewardsOrPun.CreateElement("奖惩分数");
            PunMark.InnerText = mark;
            //创建一个<奖惩原因>节点
            XmlElement PunWhy = RewardsOrPun.CreateElement("奖惩原因");
            PunWhy.InnerText = why;
            //创建一个<备注信息>节点
            XmlElement PunInfo = RewardsOrPun.CreateElement("备注信息");
            PunInfo.InnerText = "";
            PunEmp.AppendChild(Name);
            PunEmp.AppendChild(Sex);
            PunEmp.AppendChild(Dept);
            PunEmp.AppendChild(Jop);
            PunEmp.AppendChild(PunDate);
            PunEmp.AppendChild(PunSort);
            PunEmp.AppendChild(PunMark);
            PunEmp.AppendChild(PunWhy);
            PunEmp.AppendChild(PunInfo);
            Pun.AppendChild(PunEmp);
            XmlNode Node = RewardsOrPun.SelectSingleNode("//员工奖惩信息[@条数流水号]");
            Node.AppendChild(Pun);
            RewardsOrPun.Save("..\\..\\xmlRewardsAndPun.xml");
        }
        #endregion

        #region 员工签到
        /// <summary>
        /// 签到
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnGO_Click(object sender, EventArgs e)
        {
            //获得具有[员工编号]属性的[员工]节点
            XmlNode MyEmpNode = GoOrBack.SelectSingleNode("//员工[@员工编号='" + txtIdGoBack.Text + "']");
            //搜索输入的员工编号 
            if (MyEmpNode == null)
                lblHint.Text = "对不起,没有找到该编号!";
            else
            {
                if (hour > 7)
                {
                    lblHint.Text = "您迟到了!";
                    YseNo = "迟到";
                    string _mark = "-3";
                    CreatePun(YseNo, _mark);
                }
                //创建当前DOM对象的代码片段
                XmlDocumentFragment DocFrag = GoOrBack.CreateDocumentFragment();
                //创建一个<工作日期>节点
                XmlElement MyElementRoot = GoOrBack.CreateElement("日期和编号");
                //创建一个<今天日期>属性,并把他绑定到<工作日期>节点
                XmlAttribute MyAttribute = GoOrBack.CreateAttribute("今天日期和编号");
                MyAttribute.Value = today + txtIdGoBack.Text;
                MyElementRoot.SetAttributeNode(MyAttribute);
                //创建一个<上班时间>节点
                XmlElement GoTime = GoOrBack.CreateElement("上班时间");
                GoTime.InnerText = hour.ToString() + ":" + _minute + ":" + _second;
                //创建一个<是否迟到>节点
                XmlElement Late = GoOrBack.CreateElement("是否迟到");
                Late.InnerText = YseNo;
                //创建一个<下班时间>节点
                XmlElement BackTime = GoOrBack.CreateElement("下班时间");
                BackTime.InnerText = "";
                //创建一个<是否早退>节点
                XmlElement Leave = GoOrBack.CreateElement("是否早退");
                Leave.InnerText = "";
                //把以上的节点添加到<工作日期>的子节点中
                MyElementRoot.AppendChild(GoTime);
                MyElementRoot.AppendChild(Late);
                MyElementRoot.AppendChild(BackTime);
                MyElementRoot.AppendChild(Leave);
                //添加<工作日期>节点到 yDocFrag 对象中
                DocFrag.AppendChild(MyElementRoot);
                //把代码片段添加到DOM对象中
                MyEmpNode.AppendChild(DocFrag);
                txtIdGoBack.Text = "";
                GoOrBack.Save("..\\..\\xmlGoOrBack.xml");
            }
            
        }
        #endregion

        #region 员工签离
        /// <summary>
        /// 签离
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnBack_Click(object sender, EventArgs e)
        {
            //获得具有[员工编号]属性的[员工]节点
            XmlNode MyEmpNodes = GoOrBack.SelectSingleNode("//员工[@员工编号='" + txtIdGoBack.Text + "']");
            //搜索输入的员工编号 
            if (MyEmpNodes == null)
                lblHint.Text = "对不起,没有找到该编号!";
            else
            {
                if (hour < 17)
                {
                    lblHint.Text = "您早退了!";
                    YseNo = "早退";
                    string _marks = "-5";
                    CreatePun(YseNo, _marks);
                }
                XmlNode GoBackList = MyEmpNodes.SelectSingleNode("//日期和编号[@今天日期和编号='" + today + txtIdGoBack.Text + "']");
                GoBackList.ChildNodes[2].InnerText = hour.ToString() + ":" + _minute + ":" + _second;
                GoBackList.ChildNodes[3].InnerText = YseNo;
                txtIdGoBack.Text = "";
                GoOrBack.Save("..\\..\\xmlGoOrBack.xml");
            }
            
        }
        #endregion
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -