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

📄 checkotreq.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.CheckOvertime
{
	/// <summary>
	/// CheckOTReq 的摘要说明。
	/// </summary>
	public class CheckOTReq : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.Panel pnlPageFix;
		protected System.Web.UI.WebControls.Label lblMessage;
		protected System.Web.UI.WebControls.Label Label2;
		protected System.Web.UI.WebControls.Label lblReason;
		protected System.Web.UI.WebControls.Panel pnlDetail;
		protected System.Web.UI.WebControls.Label Label3;
		protected System.Web.UI.WebControls.TextBox txtDenyReason;
		protected System.Web.UI.WebControls.Button btnOK;
		protected System.Web.UI.WebControls.Button btnCancel;
		protected System.Web.UI.WebControls.Label lblOTID;
		protected System.Web.UI.WebControls.Panel pnlDenyReason;
		protected System.Web.UI.WebControls.DataGrid grdResult;
		protected System.Web.UI.WebControls.Panel pnlBody;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			// 在此处放置用户代码以初始化页面
			if ( !IsPostBack )
			{
				//如果网页是第一次生成时,执行如下操作:
        
				//设置界面控件的显示方式。
				pnlDetail.Visible = false;
				pnlDenyReason.Visible = false;

				DataSet dsResult = new DataSet();

				Employee emp = new Employee();
				int iEmpID;

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

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

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

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

				//通过调用 RefreshPage 方法来在页面上显示所有要审核的记录。
				RefreshPage();

			}
		}

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

		}
		#endregion
		/// <summary>
		/// 当用户选中 DataGrid 中的其他记录时,该方法将隐藏加班详细信息区域和否决理由区域。
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void grdResult_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			pnlDetail.Visible = false;
			pnlDenyReason.Visible = false;
		}


		/// <summary>
		/// 当用户单击“确定”按钮时,该方法将该在数据库中更改加班记录的状态并保存否决理由。
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void btnOK_Click(object sender, System.EventArgs e)
		{
			int iRetValue;
			DataSet dsResult = new DataSet();
			string strDenyReason;

			//检查“否决理由”文本框是否为空,为空则退出。
			strDenyReason = txtDenyReason.Text.Trim();
			if ( strDenyReason == "" )
			{
				Response.Write("<script>alert('否决理由不能为空!')</script>");
				return;
			}

			//在数据库中更改加班记录的状态并保存否决理由。
			iRetValue = DBUtils.CheckOTReq.ChangeOTStatus(int.Parse(lblOTID.Text), "已否决", strDenyReason);

			if ( iRetValue == (int)DBResult.Success )
				//如果数据库操作成功,则调用 RefreshPage 方法来刷新网页显示。
				RefreshPage();
			else
			{
				//如果数据库操作失败,则显示出错信息。
				lblMessage.Text = "对不起,提交失败!";
				lblMessage.Visible = true;
			}
		}

		//该方法将在数据库中查找登录者要审核的所有加班记录,并以 DataGrid 的形式来显示返回结果。
		void RefreshPage()
		{

			int iApproverID;

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

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

			DataSet dsResult = new DataSet();

			//重设界面控件的显示方式。
			pnlDetail.Visible = false;
			pnlDenyReason.Visible = false;
			grdResult.Visible = false;
			lblMessage.Visible = false;

			//在数据库中查找登录者要审核的所有加班记录。
			DBUtils.CheckOTReq.QuerySubmittedReq(iApproverID, ref dsResult);

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


		/// <summary>
		/// 当用户单击“取消”按钮时,该方法将隐藏否决理由区域。
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void btnCancel_Click(object sender, System.EventArgs e)
		{
			pnlDenyReason.Visible = false;
		}
		/// <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" ) 
			{

				//获取用户单击的记录所对应的加班事由信息。
				lblReason.Text = e.Item.Cells[11].Text;
				pnlDetail.Visible = true;
				pnlDenyReason.Visible = false;
			}

			//判断用户是否单击了“否决”按钮。
			if ( e.CommandName == "Deny" )
			{

				//获取用户单击的记录所对应的记录编号。
				lblOTID.Text = e.Item.Cells[0].Text;
				txtDenyReason.Text = "";
				pnlDenyReason.Visible = true;
				pnlDetail.Visible = false;

			}


			//判断用户是否单击了“批准”按钮。
			if ( e.CommandName == "Approve" )
			{
				int iOTID;
				int iRetValue;

				//获取用户单击的记录所对应的记录编号。
				iOTID = int.Parse(e.Item.Cells[0].Text);

				//将审批操作保存到数据库中。
				iRetValue =DBUtils.CheckOTReq.ChangeOTStatus(iOTID, "已批准","");

				if ( iRetValue == (int)DBResult.Success )
				{
					//如果数据库操作成功,则调用 RefreshPage 方法来刷新网页显示。
					RefreshPage();
				}
				else
				{
					//如果数据库操作失败,则显示出错信息。
					lblMessage.Text = "对不起,提交失败!";
					lblMessage.Visible = true;
				}

			}
		
		}
	}
}

⌨️ 快捷键说明

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