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

📄 submitlvreq.aspx.cs

📁 该管理系统的主要功能是管理员工资料、管理员工考勤、计算员工薪资和业绩评定等。大部分涉及对敏感数据修改的工作都仅由人事部完成
💻 CS
📖 第 1 页 / 共 2 页
字号:
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.SubmitLeave
{
	/// <summary>
	/// SubmitLvReq_aspx 的摘要说明。
	/// </summary>
	public class SubmitLvReq_aspx : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.Label lblName;
		protected System.Web.UI.WebControls.Label lblALhours;
		protected System.Web.UI.WebControls.DropDownList cmbApproverList;
		protected System.Web.UI.WebControls.Calendar cldStartDate;
		protected System.Web.UI.WebControls.DropDownList cmbStartTime;
		protected System.Web.UI.WebControls.DropDownList cmbEndTime;
		protected System.Web.UI.WebControls.TextBox txtReason;
		protected System.Web.UI.WebControls.Button btnCalculate;
		protected System.Web.UI.WebControls.Button btnSubmit;
		protected System.Web.UI.WebControls.Label lblTotalHours;
		protected System.Web.UI.WebControls.Calendar cldEndDate;
		protected System.Web.UI.WebControls.Label lblStartDay;
		protected System.Web.UI.WebControls.Label lblEndDay;
		protected System.Web.UI.WebControls.Label lblErrorMsg;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			// 在此处放置用户代码以初始化页面

			//设置控件属性,获取员工信息
			//调用ReCalculateHoliday方法,计算指定月份所包含的国定假日
			//该过程调用 Employee.GetEmployeeInfo(iEmpID, emp) 函数,从数据库中获取员工的其他信息。
			//该过程还调用 Employee.GetEmployeeInfo(iCEOID, empCEO) 函数,
			
			if(!this.Page.IsPostBack)
			{
				//设置默认日期
				this.cldStartDate.SelectedDate = System.DateTime.Today.AddDays(1);
				this.cldEndDate.SelectedDate = System.DateTime.Today.AddDays(1);
				this.lblStartDay.Text = this.cldStartDate.SelectedDate.ToShortDateString();
				this.lblEndDay.Text = this.cldEndDate.SelectedDate.ToShortDateString();
                //默认请假时长:1小时
				this.lblTotalHours.Text = "1";

			    #region	//获取员工信息

				//通过页面 Session 传值获取员工编号
				int iEmpID = Convert.ToInt32(Session["EmployeeID"]);
				Employee employee = new Employee();
				Employee.GetEmployeeInfo(iEmpID,ref employee);
				

				//在页面上显示员工信息
				
				//员工姓名
				this.lblName.Text = employee.Name;
                
				//年度可用年假小时数
				this.lblALhours.Text = employee.ALhours.ToString();

				if(employee.EmployeeID != employee.ManagerID)
				{
					//当前登录者不是总经理


					//获取其经理的姓名及编号
					string strManageName = employee.ManagerName;
					string strManageID = employee.ManagerID.ToString();

					//将其经理设为审批者的一项
					System.Web.UI.WebControls.ListItem item = new ListItem(strManageName,strManageID);

					//绑定审批者
					if(employee.IsManager)
					{
						//登录者自己是部门经理,其经理即为总经理,则审批者只有总经理,绑定总经理
						this.cmbApproverList.Items.Add(item);

						//默认选中
						this.cmbApproverList.SelectedIndex = 0;
					}
					else
					{
						//登录者是普通员工,绑定其部门经理和总经理
						//绑定部门经理
						this.cmbApproverList.Items.Add(item);

						//默认选中部门经理
						this.cmbApproverList.SelectedIndex = 0;

						//获取总经理的信息,通过其经理的编号来获取,即获取经理的经理信息
						//创建一个部门经理对象
						Employee DeptCEOemployee = new Employee();
						Employee.GetEmployeeInfo(employee.ManagerID,ref DeptCEOemployee);

						//获取总经理信息
						string strCEOName = DeptCEOemployee.ManagerName;
						string strCEOID = DeptCEOemployee.ManagerID.ToString();

						//将总经理加入到审批者选项中
						System.Web.UI.WebControls.ListItem CEOItem = new ListItem(strCEOName,strCEOID);
						this.cmbApproverList.Items.Add(CEOItem);
					}
				}
				else
				{
					//当前登录者为总经理
				}

				#endregion

			}
		}


		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.cldStartDate.DayRender += new System.Web.UI.WebControls.DayRenderEventHandler(this.cldStartDate_DayRender);
			this.cldStartDate.VisibleMonthChanged += new System.Web.UI.WebControls.MonthChangedEventHandler(this.cldStartDate_VisibleMonthChanged);
			this.cldStartDate.SelectionChanged += new System.EventHandler(this.cldStartDate_SelectionChanged);
			this.cldEndDate.DayRender += new System.Web.UI.WebControls.DayRenderEventHandler(this.cldEndDate_DayRender);
			this.cldEndDate.VisibleMonthChanged += new System.Web.UI.WebControls.MonthChangedEventHandler(this.cldEndDate_VisibleMonthChanged);
			this.cldEndDate.SelectionChanged += new System.EventHandler(this.cldEndDate_SelectionChanged);
			this.btnCalculate.Click += new System.EventHandler(this.btnCalculate_Click);
			this.btnSubmit.Click += new System.EventHandler(this.btnSubmit_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion


		//存储开始日期所以在月的国定假日
		private ArrayList alHolidayL = new ArrayList();

		//存储结束日期所以在月的国定假日
		private ArrayList alHolidayR = new ArrayList();


		/// <summary>
		/// 计算指定月份所包含的国定假日
		/// </summary>
		private void ReCalculateHoliday()
		{
			//该过程调用 SubmitLvReq.GetHoliday(cldStartDate.SelectedDate, alHolidayL) 
			//和DBUtils.SubmitLvReq.GetHoliday(cldEndDate.SelectedDate, alHolidayR) 函数,
			//在数据库中检索该月的国定假日。

			//查询开始时间 月的国定假日
			DBUtils.SubmitLvReq.GetHoliday(cldStartDate.SelectedDate,ref alHolidayL);
			
			//查询结束时间 月的国定假日
			DBUtils.SubmitLvReq.GetHoliday(cldEndDate.SelectedDate,ref alHolidayR);
		}



	
		/// <summary>
		/// 当网页生成“开始时间”日历控件的每一个单元格时自动调用
		/// </summary>
		/// <param name="sender">发送该事件的对象</param>
		/// <param name="e">DayRender控件事件的基本参数</param>
		private void cldStartDate_DayRender(object sender, System.Web.UI.WebControls.DayRenderEventArgs e)
		{
			ArrayList alHolidayL = new ArrayList();
			DBUtils.SubmitLvReq.GetHoliday(cldStartDate.SelectedDate,ref alHolidayL);
			if(alHolidayL.Count != 0)
			{
				//数据库查询成功,且该月存在国定假日
				foreach(DateTime dt in alHolidayL)
				{
					if(e.Day.Date.Date == dt.Date)
					{
						e.Cell.BackColor = System.Drawing.Color.DarkGreen;
						e.Cell.Font.Bold = true;
						break;
					}
		
				}
			}
		}

		
		
		/// <summary>
		/// 当网页生成“结束时间”日历控件的每一个单元格时自动调用
		/// </summary>
		/// <param name="sender">发送该事件的对象</param>
		/// <param name="e">DayRender控件事件的基本参数</param>
		private void cldEndDate_DayRender(object sender, System.Web.UI.WebControls.DayRenderEventArgs e)
		{
			ArrayList alHolidayR = new ArrayList();
			DBUtils.SubmitLvReq.GetHoliday(cldEndDate.SelectedDate,ref alHolidayR);
			if(alHolidayR.Count != 0)
			{
				//数据库查询成功,且该月存在国定假日
				foreach(DateTime dt in alHolidayR)
				{
					if( e.Day.Date.Date == dt.Date )
					{
						e.Cell.BackColor = System.Drawing.Color.DarkGreen;
						e.Cell.Font.Bold = true;
						break;
					}
		
				}
			}
		
		}

	
		
		//显示开始时间
		private void cldStartDate_SelectionChanged(object sender, System.EventArgs e)
		{
			this.lblStartDay.Text = this.cldStartDate.SelectedDate.ToShortDateString();
		}

		
		
		//显示结束时间
		private void cldEndDate_SelectionChanged(object sender, System.EventArgs e)
		{
			this.lblEndDay.Text = this.cldEndDate.SelectedDate.ToShortDateString();
		}



		/// <summary>
		/// 当用户改变“开始时间”日历控件的当前月份时,该方法将重新设定日历控件的选中日期,并重新计算当前月份的国定假日。
		/// </summary>
		/// <param name="sender">发送该事件的对象</param>
		/// <param name="e">网页事件的基本参数</param>
		private void cldStartDate_VisibleMonthChanged(object sender, System.Web.UI.WebControls.MonthChangedEventArgs e)
		{
			//该过程调用 ReCalculateHoliday() 函数,计算日历控件当月所包含的国定假日。
			this.cldStartDate.SelectedDate = e.NewDate;
			this.lblStartDay.Text = this.cldStartDate.SelectedDate.ToShortDateString();
			ReCalculateHoliday();
		}


		/// <summary>
		/// 当用户改变“结束时间”日历控件的当前月份时,该方法将重新设定日历控件的选中日期,并重新计算当前月份的国定假日。
		/// </summary>
		/// <param name="sender">发送该事件的对象</param>
		/// <param name="e">网页事件的基本参数</param>
		private void cldEndDate_VisibleMonthChanged(object sender, System.Web.UI.WebControls.MonthChangedEventArgs e)
		{

⌨️ 快捷键说明

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