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

📄 individual.aspx.cs

📁 基于.net(c#+sql)人事管理系统
💻 CS
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using DBUtils;

namespace BlueHill.CheckLeave
{
	/// <summary>
	/// Individual 的摘要说明。
	/// </summary>
	public class Individual : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.Label lblDept;
		protected System.Web.UI.WebControls.DropDownList cmbDeptList;
		protected System.Web.UI.WebControls.Label lblDeptID;
		protected System.Web.UI.WebControls.Panel pnlChooseDept;
		protected System.Web.UI.WebControls.Label Label4;
		protected System.Web.UI.WebControls.DropDownList cmbEmpList;
		protected System.Web.UI.WebControls.Panel pnlChooseEmp;
		protected System.Web.UI.WebControls.Label Label1;
		protected System.Web.UI.WebControls.TextBox txtStartTime;
		protected System.Web.UI.WebControls.CompareValidator CompareValidator1;
		protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
		protected System.Web.UI.WebControls.Label Label2;
		protected System.Web.UI.WebControls.TextBox txtEndTime;
		protected System.Web.UI.WebControls.CompareValidator CompareValidator2;
		protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
		protected System.Web.UI.WebControls.Button btnSearch;
		protected System.Web.UI.WebControls.Panel pnlHeader;
		protected System.Web.UI.WebControls.Label lblMessage;
		protected System.Web.UI.WebControls.Label lblEmpID;
		protected System.Web.UI.WebControls.Label Label3;
		protected System.Web.UI.WebControls.Label lblApproverName;
		protected System.Web.UI.WebControls.Label Label5;
		protected System.Web.UI.WebControls.Label lblReason;
		protected System.Web.UI.WebControls.Label lblDeny;
		protected System.Web.UI.WebControls.Label lblDenyReason;
		protected System.Web.UI.WebControls.Panel pnlDetail;
		protected System.Web.UI.WebControls.DataGrid grdResult;
		protected System.Web.UI.WebControls.Panel pnlBack;
		protected System.Web.UI.WebControls.Panel pnlBody;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			// 在此处放置用户代码以初始化页面
			if ( !IsPostBack )
			{
				//如果网页是第一次生成时,执行如下操作:
        
				if ( Request.QueryString["EmpID"] == null )
				{ 
					//'网页的 URL 中查询字符串中没有 EmpID 信息,则说明该网页不是从“部门汇总”页面跳转过来的。

					//设置界面控件的显示方式。
					pnlDetail.Visible = false;
					pnlBack.Visible = false;
					pnlChooseEmp.Visible = false;
					pnlHeader.Visible = false;
					pnlChooseDept.Visible = false;
					grdResult.Visible = false;
					lblMessage.Visible = false;

					//设置“开始时间”和“结束时间”文本框中的默认显示内容。
					txtStartTime.Text = DateTime.Now.AddMonths(-1).ToString("yyyy/M/d");
					txtEndTime.Text = DateTime.Now.AddDays(1).ToString("yyyy/M/d");

					Employee emp = new Employee();
					int iEmpID;

					//检查员工的登录信息是否丢失,是则显示出错信息。
					if ( Session["EmployeeID"] == null )
					{
						lblMessage.Text = "登录信息丢失,请重新登录!";
						lblMessage.Visible = true;
						return;
					}

					//获取保存在 Session 中的员工编号信息。
					iEmpID = int.Parse((string)Session["EmployeeID"]);

					//在网页中保存员工编号信息。
					lblEmpID.Text = (string)Session["EmployeeID"];

					//从数据库中获取员工的其他信息。
					Employee.GetEmployeeInfo(iEmpID, emp);

					//如果员工不是部门经理,则显示出错信息。
					if ( !emp.IsManager )
					{
						lblMessage.Text = "对不起,该网页属经理专用,请退出!";
						lblMessage.Visible = true;
						return;
					}

					pnlHeader.Visible = true;
					pnlChooseEmp.Visible = true;

					//在网页中保存部门编号信息。
					lblDeptID.Text = emp.DeptID.ToString();

					//从数据库中获取总经理的员工编号。
					int iCEOID = 0;
					Employee.GetCEOInfo(ref iCEOID);

					if ( iEmpID == iCEOID )
					{
						//如果登录用户为总经理,则执行如下操作:

						//显示部门选择下拉框。
						pnlChooseDept.Visible = true;

						DataSet dsDept = new DataSet();

						//从数据库中获取所有部门的列表。
						DBUtils.CheckLvReq.GetDeptList(dsDept);

						//用部门列表填充部门选择下拉框。
						cmbDeptList.DataSource = dsDept.Tables[0];
						cmbDeptList.DataTextField = "DeptName";
						cmbDeptList.DataValueField = "DeptID";
						cmbDeptList.DataBind();

						//默认情况下,下拉框选中第一个部门。
						cmbDeptList.SelectedIndex = 0;

						//保存选中部门的编号。
						lblDeptID.Text = cmbDeptList.SelectedValue.ToString();
					}

					//从数据库中获取选中部门的员工列表。
					DataSet dsResult = new DataSet();
					DBUtils.CheckLvReq.GetDeptMember(int.Parse(lblDeptID.Text), ref dsResult);

					//用员工列表填充“选择要查看的员工”下拉框。
					cmbEmpList.DataSource = dsResult.Tables[0];
					cmbEmpList.DataTextField = "Name";
					cmbEmpList.DataValueField = "EmployeeID";
					cmbEmpList.DataBind();
					cmbEmpList.SelectedIndex =0;
					lblEmpID.Text =cmbEmpList.SelectedValue.ToString ();
				
				}
				else
				{
					//网页的 URL 中查询字符串中含有 EmpID 信息,则说明该网页是从“部门汇总”页面跳转过来的。

					//设置界面控件的显示方式。
					pnlChooseEmp.Visible = false;
					pnlDetail.Visible = false;
					pnlChooseDept.Visible = false;
					lblMessage.Visible = false;
					int iEmpID;

					//从网页的查询字符串中获取员工编号、开始时间和结束时间。
					iEmpID = int.Parse(Request["EmpID"].ToString ());
					txtStartTime.Text = Request["StartTime"].ToString ();
					txtEndTime.Text = Request["EndTime"].ToString ();
					lblEmpID.Text = Request["EmpID"].ToString ();

					//从数据库中获取该员工该段时间内所有的请假记录。
					DataSet dsResult = new DataSet();
					DBUtils.CheckLvReq.QueryIndividHistory(iEmpID, txtStartTime.Text.Trim(), txtEndTime.Text.Trim(), dsResult);

					if ( dsResult.Tables[0].Rows.Count > 0 )
					{
						//找到请假记录,则以 DataGrid 的形式显示。
						grdResult.DataSource = dsResult.Tables[0];
						grdResult.DataBind();
						grdResult.Visible = true;
					}
					else
					{
						//没有找到记录,则显示提示信息。
						lblMessage.Text = "没有找到任何记录!";
						grdResult.Visible = false;

						lblMessage.Visible = true;
						return;
					}
				}


			}
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.cmbDeptList.SelectedIndexChanged += new System.EventHandler(this.cmbDeptList_SelectedIndexChanged);
			this.cmbEmpList.SelectedIndexChanged += new System.EventHandler(this.cmbEmpList_SelectedIndexChanged);
			this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);
			this.grdResult.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdResult_ItemCommand);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion


		/// <summary>
		/// 当用户更改选中部门时,该方法更新已保存的部门编号并更新该部门的员工列表。
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void cmbDeptList_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			//保存新的部门编号。
			lblDeptID.Text = cmbDeptList.SelectedValue.ToString();

			//从数据库中获取新部门的员工列表。
			DataSet dsResult = new DataSet();
			DBUtils.CheckLvReq.GetDeptMember(int.Parse(cmbDeptList.SelectedValue), ref dsResult);

			//用员工列表填充“选择要查看的员工”下拉框。
			cmbEmpList.DataSource = dsResult.Tables[0];
			cmbEmpList.DataTextField = "Name";
			cmbEmpList.DataValueField = "EmployeeID";
			cmbEmpList.DataBind();
			cmbEmpList.SelectedIndex =0;
			lblEmpID.Text =cmbEmpList.SelectedValue.ToString ();
				
		}


		/// <summary>
		/// 当用户单击“搜索”按钮时,该方法将检索数据库中员工请假的历史记录并以 DataGrid 的形式显示返回结果。
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void btnSearch_Click(object sender, System.EventArgs e)
		{
			DataSet dsResult = new DataSet();

			//校验用户输入是否合法。
			Validate();

			if ( Page.IsValid )
			{
				//如果用户输入合法,则继续执行以下操作:

				//检索数据库中员工请假的历史记录。
				SubmitLvReq.QueryHistoryReq(int.Parse(lblEmpID.Text), txtStartTime.Text.Trim(), txtEndTime.Text.Trim(), dsResult);

				if ( dsResult.Tables[0].Rows.Count > 0 )
				{
					//找到请假记录,则以 DataGrid 的形式显示结果。
					grdResult.DataSource = dsResult.Tables[0];
					grdResult.DataBind();
					grdResult.Visible = true;
					pnlDetail.Visible = false;
					lblMessage.Visible = false;
				}
				else
				{
					//没有找到记录,则显示提示信息。
					lblMessage.Text = "没有找到任何记录!";
					pnlDetail.Visible = false;
					grdResult.Visible = false;
					pnlDetail.Visible = false;
					lblMessage.Visible = true;
					return;
				}
			} 
		}

	
/// <summary>
/// 当用户单击 DataGrid 中的“详细情况”链接时,该方法显示请假详细信息区域
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
		private void grdResult_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			//判断用户是否单击了“详细信息”链接。
			if ( e.CommandName == "Detail" ) 
			{

				//获取用户选中记录的审批者姓名和请假事由。
				lblApproverName.Text = e.Item.Cells[7].Text;  
				lblReason.Text = e.Item.Cells[8].Text; 

				if ( e.Item.Cells[4].Text.Trim() == "已否决" )
				{
					//如果该请假记录为否决状态,则显示否决理由。

					lblDeny.Visible = true;
					lblDenyReason.Visible = true;
					lblDenyReason.Text = e.Item.Cells[9].Text;
				}
				else
				{
					//如果该请假记录不为否决状态,则隐藏否决理由区域。

					lblDeny.Visible = false;
					lblDenyReason.Visible = false;
				}

				//显示请假详细信息区域。
				pnlDetail.Visible = true;

			}
		
		}

/// <summary>
/// 当用户更改要查看的员工时,该方法更新已保存的员工编号。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
		private void cmbEmpList_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			lblEmpID.Text =cmbEmpList.SelectedValue.ToString ();
		}

	}
}

⌨️ 快捷键说明

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