实例介绍
企业人事工资管理系统
其中包括考勤、工资管理(工资调整及汇总、奖惩管理)和员工管理(基本信息、社会关系、教育经历和部门设置等)
可以进行数据备份操作
多个界面可供用户切换选择
只需要附加数据库即可运行此实例,无须修改数据库连接串,也无须修改配置
【实例截图】
【核心代码】
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小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论