实例介绍
企业人事工资管理系统
其中包括考勤、工资管理(工资调整及汇总、奖惩管理)和员工管理(基本信息、社会关系、教育经历和部门设置等)
可以进行数据备份操作
多个界面可供用户切换选择
只需要附加数据库即可运行此实例,无须修改数据库连接串,也无须修改配置
【实例截图】
【核心代码】
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; using OutLookBar; using DBUtilities; using CustomException.Err; using hrBll; using DataAccess.Data; namespace HrManager { public partial class FormMain : Form { int i = 0; public FormMain() { InitializeComponent(); } #region 初始化LookOutBar /// <summary> /// 初始化LookOutBar /// </summary> private void OutLookBarInit() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Application.StartupPath "\\MTMenu.xml"); XmlNode root = xmlDoc.SelectSingleNode("Menus"); XmlNodeList divlist = root.ChildNodes; int divcount = divlist.Count; for (int i = 0; i < divcount; i ) { OutLookWrapper m_OLW = new OutLookWrapper(); m_OLW.Text = divlist[i].Attributes["Name"].Value.ToString(); XmlNodeList buttonlist = divlist[i].ChildNodes; int buttoncount = buttonlist.Count; for (int j = 0; j < buttoncount; j ) { OutLookRow m_OLR = new OutLookRow(); m_OLR.Icon = new Icon(buttonlist[j].ChildNodes.Item(2).InnerText); m_OLR.Text = buttonlist[j].ChildNodes.Item(0).InnerText; string formname = buttonlist[j].ChildNodes.Item(1).InnerText; m_OLR.FormName = formname; ButtonClicked a = new ButtonClicked(ClickedOpenForm); m_OLR.SetAction(a); m_OLW.AddRow(m_OLR); } m_OLW.Mode = ViewMode.Large_Icons; this.outLookBar1.AddRow(m_OLW); } } #endregion #region 左菜单 /// <summary> ///左菜单 /// </summary> /// <param name="formname"></param> private void ClickedOpenForm(string formname) { this.pnlMain.Controls.Clear(); if (formname == "UcCalc") { Tools.Computer(); } else if (formname == "UcNotepad") { Tools.OpenNotepad(); } else if (formname == "Ucmspaint") { Tools.Img(); } else if (formname == "UcHelps") { BigMessageBox.Show("domain提示:暂时没有帮助文件", "系统支持", MessageBoxButtons.OK, MessageBoxIcon.Information); System.Diagnostics.Process.Start("http://win.domain.com/CV/HrManage"); } else if (formname == "UcBACKUP") { Tools.DataBak(); } else { CreateFormInstance(formname); } } #endregion #region 动态创建菜单 /// <summary> /// 动态创建菜单 /// </summary> /// <param name="FilePath">菜单XML文件的路径</param> public void CreateMenu() { //定义一个主菜单 MenuStrip mainMenu = new MenuStrip(); mainMenu.Parent = this.panTools; mainMenu.Dock = DockStyle.Fill; DataSet ds = new DataSet(); //从XML中读取数据。数据结构后面详细讲一下。 string xmlPath_str = System.Windows.Forms.Application.StartupPath; ds.ReadXml(xmlPath_str @"\MenuMT.xml"); DataView dv = ds.Tables[0].DefaultView; //通过DataView来过滤数据首先得到最顶层的菜单 dv.RowFilter = "ParentItemID=0"; for (int i = 0; i < dv.Count; i ) { //创建一个菜单项 ToolStripMenuItem topMenu = new ToolStripMenuItem(); //给菜单赋Text值。也就是在界面上看到的值。 topMenu.Text = dv[i]["Text"].ToString(); /// /// 添加退出事件 /// if ("退出".Equals(dv[i]["Text"].ToString())) { topMenu.Click = new EventHandler(topMenu_Click); } //如果是有下级菜单则通过CreateSubMenu方法来创建下级菜单 if (Convert.ToInt16(dv[i]["IsModule"]) == 1) { //以ref的方式将顶层菜单传递参数,因为他可以在赋值后再回传。--也许还有更好的方法^_^. CreateSubMenu(ref topMenu, Convert.ToInt32(dv[i]["ItemID"]), ds.Tables[0]); } //显示应用程序中已打开的 MDI 子窗体列表的菜单项 mainMenu.MdiWindowListItem = topMenu; //将递归附加好的菜单加到菜单根项上。 mainMenu.Items.Add(topMenu); } mainMenu.Dock = DockStyle.Top; //将窗体的MainMenuStrip梆定为mainMenu. this.MainMenuStrip = mainMenu; //这句很重要。如果不写这句菜单将不会出现在主窗体中。 this.Controls.Add(mainMenu); } #endregion #region 创建子菜单 /// <summary> /// 创建子菜单 /// </summary> /// <param name="topMenu">父菜单项</param> /// <param name="ItemID">父菜单的ID</param> /// <param name="dt">所有菜单数据集</param> private void CreateSubMenu(ref ToolStripMenuItem topMenu, int ItemID, DataTable dt) { DataView dv = new DataView(dt); //过滤出当前父菜单下在所有子菜单数据(仅为下一层的) dv.RowFilter = "ParentItemID=" ItemID.ToString(); for (int i = 0; i < dv.Count; i ) { //创建子菜单项 ToolStripMenuItem subMenu = new ToolStripMenuItem(); subMenu.Text = dv[i]["Text"].ToString(); //如果还有子菜单则继续递归加载。 if (Convert.ToInt16(dv[i]["IsModule"]) == 1) { //递归调用 CreateSubMenu(ref subMenu, Convert.ToInt32(dv[i]["ItemID"]), dt); } else if ("数据备份".Equals(dv[i]["Text"].ToString())) { subMenu.Tag = "BACKUP"; subMenu.Click = new EventHandler(OtherTools_Click); } else if ("计算器".Equals(dv[i]["Text"].ToString())) { subMenu.Tag = "Calc"; subMenu.Click = new EventHandler(OtherTools_Click); } //给没有子菜单的菜单项加事件。 else if ("记事本".Equals(dv[i]["Text"].ToString())) { subMenu.Tag = "Notepad"; subMenu.Click = new EventHandler(OtherTools_Click); } else if ("画图".Equals(dv[i]["Text"].ToString())) { subMenu.Tag = "MsPaint"; subMenu.Click = new EventHandler(OtherTools_Click); } else if ("查看帮助".Equals(dv[i]["Text"].ToString())) { subMenu.Tag = "Assistant"; subMenu.Click = new EventHandler(OtherTools_Click); } else if ("精典MacOS".Equals(dv[i]["Text"].ToString())) { subMenu.Tag = "GlassGreen"; subMenu.Click = new EventHandler(SetBackColor_Click); } else if ("蓝色风暴".Equals(dv[i]["Text"].ToString())) { subMenu.Tag = "SportsBlack"; subMenu.Click = new EventHandler(SetBackColor_Click); } else if ("MSN界面".Equals(dv[i]["Text"].ToString())) { subMenu.Tag = "MSN"; subMenu.Click = new EventHandler(SetBackColor_Click); } else if ("精典MAC2".Equals(dv[i]["Text"].ToString())) { subMenu.Tag = "Vista"; subMenu.Click = new EventHandler(SetBackColor_Click); } else if ("经典xp".Equals(dv[i]["Text"].ToString())) { subMenu.Tag = "XPBlue"; subMenu.Click = new EventHandler(SetBackColor_Click); } else if ("系统默认".Equals(dv[i]["Text"].ToString())) { subMenu.Tag = "default"; subMenu.Click = new EventHandler(SetBackColor_Click); } else { //扩展属性可以加任何想要的值。这里用formName属性来加载窗体。 subMenu.Tag = dv[i]["FormName"].ToString(); //给没有子菜单的菜单项加事件。 subMenu.Click = new EventHandler(subMenu_Click); } if (dv[i]["ImageName"].ToString().Length > 0) { //设置菜单项前面的图票为16X16的图片文件。 Image img = Image.FromFile(@"..\..\Image\" dv[i]["ImageName"].ToString()); subMenu.Image = img; subMenu.Image.Tag = dv[i]["ImageName"].ToString(); } //将菜单加到顶层菜单下。 topMenu.DropDownItems.Add(subMenu); } } #endregion #region 菜单单击事件 /// <summary> /// 菜单单击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void subMenu_Click(object sender, EventArgs e) { //tag属性在这里有用到。 this.pnlMain.Controls.Clear(); string formName = ((ToolStripMenuItem)sender).Tag.ToString(); CreateFormInstance(formName); } #endregion #region 退出菜单单击事件 /// <summary> /// 退出菜单单击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void topMenu_Click(object sender, EventArgs e) { if (BigMessageBox.Show("您确实要退出系统吗?", "进销存管理系统", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { this.Dispose(); Application.Exit(); } } #endregion #region 创建form实例 /// <summary> /// 创建form实例。 /// </summary> /// <param name="formName">form的类名</param> private void CreateFormInstance(string formName) { bool flag = false; //遍历主窗口上的所有子菜单 for (int i = 0; i < this.MdiChildren.Length; i ) { //如果所点的窗口被打开则重新激活 if (this.MdiChildren[i].Tag.ToString().ToLower() == formName.ToLower()) { this.MdiChildren[i].Activate(); this.MdiChildren[i].Show(); this.MdiChildren[i].WindowState = FormWindowState.Normal; flag = true; break; } } if (!flag) { string formstring = @"HrManager" @"." formName; Type t = Type.GetType(formstring); object obj = System.Activator.CreateInstance(t); UserControl uc = (UserControl)obj; this.pnlMain.Controls.Add(uc);//效果和上一句一样 uc.Dock = DockStyle.Fill; } } #endregion #region 窗体初始化 /// <summary> /// 窗体初始化 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FormMain_Load(object sender, EventArgs e) { timer1.Start(); DataTable dt = new DataTable(); dt = BllMain.GetEmp(); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows.Count> 10) { for (int i = 0; i < 10; i ) { label1.Text = dt.Rows[i]["EmployName"].ToString() "☆☆" label1.Text; } } else { for (int i = 0; i < dt.Rows.Count; i ) { label1.Text = dt.Rows[i]["EmployName"].ToString() "☆☆" label1.Text; } } } else { label1.Text = "今天没有员工生日"; } if (GetColor() != "") { this.skinEngine1.SkinFile = Application.StartupPath GetColor(); this.skinEngine1.Active = true; } else { this.skinEngine1.Active = false; } this.CreateMenu(); this.OutLookBarInit(); this.WindowState = FormWindowState.Maximized; } #endregion #region FormMain_FormClosed private void FormMain_FormClosed(object sender, FormClosedEventArgs e) { this.Dispose(); GC.Collect(); Application.Exit(); } #endregion #region 设置系统背景颜色 /// <summary> /// 设置系统背景颜色 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SetBackColor_Click(object sender, EventArgs e) { switch (((ToolStripMenuItem)(sender)).Tag.ToString()) { case "GlassGreen": { this.skinEngine1.SkinFile = Application.StartupPath "\\GlassGreen.ssk"; this.skinEngine1.Active = true; SaveColor("\\GlassGreen.ssk"); break; } case "SportsBlack": { this.skinEngine1.SkinFile = Application.StartupPath "\\SportsBlack.ssk"; this.skinEngine1.Active = true; SaveColor("\\SportsBlack.ssk"); break; } case "MSN": { this.skinEngine1.SkinFile = Application.StartupPath "\\MSN.ssk"; this.skinEngine1.Active = true; SaveColor("\\MSN.ssk"); break; } case "Vista": { this.skinEngine1.SkinFile = Application.StartupPath "\\Vista.ssk"; this.skinEngine1.Active = true; SaveColor("\\Vista.ssk"); break; } case "XPBlue": { this.skinEngine1.SkinFile = Application.StartupPath "\\XPBlue.ssk"; SaveColor("\\XPBlue.ssk"); this.skinEngine1.Active = true; break; } default: SaveColor(""); this.skinEngine1.Active = false; break; } } #endregion #region 设置系统的默认方案 /// <summary> /// 设置系统的默认方案 /// </summary> /// <param name="FileName"></param> private void SaveColor(string FileName) { AppSettings.SetValue("Color", FileName); } #endregion #region 获得系统的默认方案 /// <summary> /// 获得系统的默认方案 /// </summary> /// <param name="pkid"></param> private string GetColor() { return AppSettings.GetValue("Color"); } #endregion #region 其它工具菜单事件的注册方法 //其它工具菜单事件的注册方法 private void OtherTools_Click(object sender, EventArgs e) { switch (((ToolStripMenuItem)(sender)).Tag.ToString()) { case "BACKUP"://数据库备份 { Tools.DataBak(); break; } case "Calc": //计算器 { Tools.Computer(); break; } case "Notepad": //记事本 { Tools.OpenNotepad(); break; } case "MsPaint": //画图 { Tools.Img(); break; } case "Assistant": { BigMessageBox.Show("帮助文件正在制作中"); System.Diagnostics.Process.Start("http://win.domain.com/CV/HrManage"); break; } } } #endregion private void timer1_Tick(object sender, EventArgs e) { i = 10; if (label1.Right < this.Width) { label1.Left = i; } else { label1.Left = 0; i = 0; } } } }
标签: 系统 管理 管理系统企业人事工资管理系统
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论