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

📄 showdetail.aspx.cs

📁 基于.net(c#+sql)人事管理系统
💻 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.Performance
{
	/// <summary>
	/// ShowDetail 的摘要说明。
	/// </summary>
	public class ShowDetail : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.Panel pnlPageFix;
		protected System.Web.UI.WebControls.Label lblIsManager;
		protected System.Web.UI.WebControls.Label lblPerformID;
		protected System.Web.UI.WebControls.Label lblEmpID;
		protected System.Web.UI.WebControls.Label lblYear;
		protected System.Web.UI.WebControls.Label lblSeason;
		protected System.Web.UI.WebControls.Label lblPerformItemID;
		protected System.Web.UI.WebControls.Label lblOrgSelfScore;
		protected System.Web.UI.WebControls.Label lblOrgReviewScore;
		protected System.Web.UI.WebControls.Label lblNoLast;
		protected System.Web.UI.WebControls.Label lblPerformStatusText;
		protected System.Web.UI.WebControls.Label lblPerformStatus;
		protected System.Web.UI.WebControls.Panel pnlStatus;
		protected System.Web.UI.WebControls.Label lblLastObject;
		protected System.Web.UI.WebControls.DataGrid grdLast;
		protected System.Web.UI.WebControls.Label lblSelfComment;
		protected System.Web.UI.WebControls.TextBox txtSelfComment;
		protected System.Web.UI.WebControls.Label lblReviewComment;
		protected System.Web.UI.WebControls.TextBox txtReviewComment;
		protected System.Web.UI.WebControls.Label lblSelfScore;
		protected System.Web.UI.WebControls.DropDownList cmbSelfScore;
		protected System.Web.UI.WebControls.Label lblReviewScore;
		protected System.Web.UI.WebControls.DropDownList cmbReviewScore;
		protected System.Web.UI.WebControls.Button btnSave;
		protected System.Web.UI.WebControls.Button btnCheckOver;
		protected System.Web.UI.WebControls.Panel pnlLast;
		protected System.Web.UI.WebControls.Label lblNextObject;
		protected System.Web.UI.WebControls.TextBox txtNewObject;
		protected System.Web.UI.WebControls.Button btnAdd;
		protected System.Web.UI.WebControls.DataGrid grdNext;
		protected System.Web.UI.WebControls.Panel pnlNext;
		protected System.Web.UI.WebControls.Panel pnlBody;
	
		/// <summary>
		/// 网页初始化时执行该方法。
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void Page_Load(object sender, System.EventArgs e)
		{
			// 在此处放置用户代码以初始化页面
			if ( !IsPostBack )
			{
				//如果网页是第一次生成时,执行如下操作:
        
				bool bLastReviewed = true;

				int iEmpID, iYear, iSeason;

				//从网页的查询字符串中获取员工编号、年份和季度信息。
				iEmpID = int.Parse(Request["EmpID"]);
				iYear = int.Parse(Request["Year"]);
				iSeason = int.Parse(Request["Season"]);

				//保存员工编号、年份和季度信息。
				lblEmpID.Text = Request["EmpID"];
				lblYear.Text = Request["Year"];
				lblSeason.Text = Request["Season"];


				//判定是修改本人的报告,还是经理审批,并保存该信息。
				if ( (string)Session["EmployeeID"] == Request["EmpID"] )
				{
					//如果是员工查看或修改自己的业绩报告,则不能填写经理总评和评分。
				
					lblIsManager.Text = "false";
					cmbReviewScore.Enabled = false;	//禁用“经理总评分”下拉框。
					txtReviewComment.ReadOnly = true;	//将“经理总评”文本框设为只读。
					btnCheckOver.Visible = false;
				}
                else
				{
					//如果是经理查看员工的业绩报告,则不可修改员工自己的评价。
				
					lblIsManager.Text = "true";
					cmbSelfScore.Enabled = false;		//禁用“员工总评分”下拉框。
					txtSelfComment.ReadOnly = true;		//将“对本季度的总评”文本框设为只读。
                
					//只有员工才能设定下一季度的目标,故应隐藏该部分。
					pnlNext.Visible = false;
                
				}

				DataSet dsLastItem = new DataSet();

				//从数据库中获取本季度的业绩报告的具体目标。
				DBUtils.Performance.GetPerformItem(iEmpID, iYear, iSeason, ref dsLastItem);

				if ( dsLastItem.Tables[0].Rows.Count == 0 )
				{
					//如果找不到本季度的业绩报告的具体目标,则说明该业绩报告不存在,则仅显示提示信息。
					pnlLast.Visible = false;
					lblNoLast.Visible = true;
					pnlStatus.Visible = false;
				}
				else
				{
					//如果检索到本季度的业绩报告的具体目标,则继续显示其他信息。
            
					lblNoLast.Visible = false;
					pnlLast.Visible = true;
                
					//将业绩报告的具体目标以 DataGrid 的形式显示。
					grdLast.DataSource = dsLastItem.Tables[0];
					grdLast.DataBind();
					grdLast.Visible = true;

					//检索数据库,看该报告经理是否已审核结束。
					DBUtils.Performance.CheckIfReviewed(iEmpID, iYear, iSeason,ref  bLastReviewed);

					if ( bLastReviewed )
					{
						//经理已经审核过,所以不允许修改。
						grdLast.Columns[4].Visible = false;
						txtSelfComment.ReadOnly = true;
						txtReviewComment.ReadOnly = true;
						cmbSelfScore.Enabled = false;
						cmbReviewScore.Enabled = false;
                    
						//在界面上显示该报告的状态为不可修改。
						lblPerformStatus.Text = "审核已结束,不可修改!";
					}
					else
					{
						//经理未审核过,则在界面上显示该报告的状态为可修改。
						lblPerformStatus.Text = "可修改";
					}

					//检索数据库,获取该业绩报告的总体信息,如员工总评,经理总评等。
					DataSet dsPerform = new DataSet();
					DBUtils.Performance.GetPerformance(iEmpID, iYear, iSeason, ref dsPerform);

					//With dsPerform.Tables[0].Rows(0);
					DataTable dt = dsPerform.Tables[0];
					//如果检索到相应数据,则执行如下操作:

					//保存该业绩报告的编号。
					lblPerformID.Text = dt.Rows[0]["PerformID"].ToString();
                    
					//显示员工自己的总评价。
					txtSelfComment.Text = dt.Rows[0]["SelfComment"].ToString().Trim();
                    
					//显示经理的总评价。
					txtReviewComment.Text = dt.Rows[0]["ReviewComment"].ToString ().Trim();

					if ( dt.Rows[0]["SelfScore"] == DBNull.Value )
					{
						//如果以前没有设定过员工总评分,则“员工总评分”下拉框应不选中任何项。
						cmbSelfScore.SelectedIndex = -1;
					}
					else
					{
						//否则“员工总评分”下拉框显示数据库中保存的内容。
						cmbSelfScore.SelectedValue = dt.Rows[0]["SelfScore"].ToString() ;
					}

					if ( ( dt.Rows[0]["ReviewScore"] == DBNull.Value ))
					{
						//如果以前没有设定过经理总评分,则“经理总评分”下拉框应不选中任何项。
						cmbReviewScore.SelectedIndex = -1;
					}
					else
					{
						//否则“经理总评分”下拉框显示数据库中保存的内容。
						cmbReviewScore.SelectedValue = dt.Rows[0]["ReviewScore"].ToString ();
					}
                    

					//End With

				}

				//如果是员工自己填写业绩报告,则根据系统日期判断是否为当前季度,若是则允许员工填写下一季度的目标。
				if ( pnlNext.Visible == true )
				{
                
					iYear = int.Parse(Request["Year"]);
					iSeason = int.Parse(Request["Season"]);

					if ( !(iYear == DateTime.Now.Year && iSeason == (int)((DateTime.Now.Month + 2) / 3)))
					{
						//不是本季度,不能设定下一季度的目标
						pnlNext.Visible = false;
					}
					else
					{
						//是本季度,可以设定下一季度的目标。
                
						//通过调用 RebindNextGrd 方法来设定并显示下季度目标对应的控件。
						RebindNextGrd();
					}


				}

			}
		}
		/// <summary>
		/// 该方法设定并显示本季度业绩报告所对应的 DataGrid 控件。
		/// </summary>
		/// <param name="e"></param>
		/// 
		void RebindLastGrd()
		{
			DataSet dsLastItem = new DataSet();
			int iEmpID, iYear, iSeason;

			//获取在网页中保存的员工编号、年份和季度。
			iEmpID = int.Parse(lblEmpID.Text);
			iYear = int.Parse(lblYear.Text);
				iSeason = int.Parse(lblSeason.Text);

					//从数据库中获取本季度的业绩报告的具体目标。
					DBUtils.Performance.GetPerformItem(iEmpID, iYear, iSeason, ref dsLastItem);

			//将业绩报告的具体目标以 DataGrid 的形式显示。
			grdLast.DataSource = dsLastItem.Tables[0];
			grdLast.DataBind();
			grdLast.Visible = true;


		}

		/// <summary>
		/// //该方法设定并显示下一季度业绩报告所对应的 DataGrid 控件。
		/// </summary>
		/// <param name="e"></param>
		/// 							 
		void RebindNextGrd()
		{
			DataSet dsNextItem = new DataSet();
			int iEmpID, iYear, iSeason;

			//获取在网页中保存的员工编号、年份和季度。
			iEmpID = int.Parse(lblEmpID.Text);
			iYear = int.Parse(lblYear.Text);
			iSeason = int.Parse(lblSeason.Text);

			//将季度数目加一。
			iSeason += 1;
        
			//如果季度数目为 5,则应调整为下一年的第一季度。
			if ( iSeason == 5 )
			{
				iYear += 1;
				iSeason = 1;
			}

			//从数据库中获取该季度的业绩报告的具体目标。
			DBUtils.Performance.GetPerformItem(iEmpID, iYear, iSeason, ref dsNextItem);

			//将业绩报告的具体目标以 DataGrid 的形式显示。
			if ( dsNextItem.Tables[0].Rows.Count > 0 )
			{
				grdNext.DataSource = dsNextItem.Tables[0];
				grdNext.DataBind();
				grdNext.Visible = true;
			}
			else
			{
				grdNext.Visible = false;
			}
													
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.grdLast.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.grdLast_ItemCreated);
			this.grdLast.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdLast_CancelCommand);
			this.grdLast.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdLast_EditCommand);
			this.grdLast.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdLast_UpdateCommand);
			this.grdLast.SelectedIndexChanged += new System.EventHandler(this.grdLast_SelectedIndexChanged);
			this.txtSelfComment.TextChanged += new System.EventHandler(this.txtSelfComment_TextChanged);
			this.txtReviewComment.TextChanged += new System.EventHandler(this.txtReviewComment_TextChanged);
			this.cmbSelfScore.SelectedIndexChanged += new System.EventHandler(this.cmbSelfScore_SelectedIndexChanged);
			this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
			this.btnCheckOver.Click += new System.EventHandler(this.btnCheckOver_Click);
			this.txtNewObject.TextChanged += new System.EventHandler(this.txtNewObject_TextChanged);
			this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
			this.grdNext.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdNext_CancelCommand);
			this.grdNext.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdNext_EditCommand);
			this.grdNext.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdNext_UpdateCommand);
			this.grdNext.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdNext_DeleteCommand);
			this.grdNext.SelectedIndexChanged += new System.EventHandler(this.grdNext_SelectedIndexChanged);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		/// <summary>
		/// 当用户单击“添加”按钮时,该方法将在数据库中添加下季度业绩报告的具体目标。
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void btnAdd_Click(object sender, System.EventArgs e)
		{
		
			//检查用户所设定的新目标是否为空,如果是,则退出。
			if ( txtNewObject.Text.Trim() == "" )
			{
				return;
			}
		
			int iEmpID, iYear, iSeason;

			//获取在网页中保存的员工编号、年份和季度。
			iEmpID = int.Parse(lblEmpID.Text);
			iYear = int.Parse(lblYear.Text);
			iSeason = int.Parse(lblSeason.Text);

			//将季度数目加一。
			iSeason += 1;
        
			//如果季度数目为 5,则应调整为下一年的第一季度。
			if ( iSeason == 5 )
			{
				iYear += 1;
				iSeason = 1;
			}

			//将“设定下一季度的目标”文本框中所设定的目标添加到数据库。
			DBUtils.Performance.AddPerformObject(iEmpID, iYear, iSeason, txtNewObject.Text.Trim());

			DataSet dsItem = new DataSet();

			//从数据库中重新获取该季度的业绩报告的具体目标。
			DBUtils.Performance.GetPerformItem(iEmpID, iYear, iSeason, ref dsItem);

			//将业绩报告的具体目标以 DataGrid 的形式显示。
			grdNext.DataSource = dsItem.Tables[0];
			grdNext.DataBind();
			grdNext.Visible = true;
		}
		/// <summary>
		/// 当用户单击“保存”按钮时,该方法将用户对本季度业绩报告的修改保存到数据库中。
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void btnSave_Click(object sender, System.EventArgs e)
		{
		
			int iPerformID, iSelfScore, iReviewScore;
			string strSelfComment, strReviewComment;

			//获取在网页中保存的业绩报告编号。

⌨️ 快捷键说明

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