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

📄 timeentry.aspx.cs

📁 asp.net办公自动化实例导航——非常经典的OA源代码
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Collections;
using System.Data;
using System.Text;
using System.Web.UI.WebControls;

using qminoa.BLL;
using qminoa.Common.Data;
using qminoa.BLL.PM;
using qminoa.DA;

namespace qminoa.Webs.PM
{
	public class TimeEntry : qminoa.Webs.PageBase
	{
		protected qminoa.BLL.PM.TimeEntry	_userInput = new qminoa.BLL.PM.TimeEntry(0, 0, 0, 0, DateTime.MinValue, null, -1M);
		protected DataTable						_dayListTable = null;
		private PMUser	 _user;
		private DateTime _weekEndingDate = DateTime.Today;
		private DateTime _weekStartingDate = DateTime.Today;

		protected System.Web.UI.WebControls.Button					AddEntry;
		protected System.Web.UI.WebControls.CompareValidator		CompareValidator1;
		protected System.Web.UI.WebControls.Button					Cancel;
		protected System.Web.UI.WebControls.DropDownList			CategoryList;
		protected System.Web.UI.WebControls.DropDownList			Days;
		protected System.Web.UI.WebControls.TextBox					Description;
		protected System.Web.UI.WebControls.TextBox					Hours;
		protected System.Web.UI.WebControls.DropDownList			ProjectList;
		protected System.Web.UI.WebControls.RangeValidator			RangeValidator1;
		protected System.Web.UI.WebControls.RequiredFieldValidator	Requiredfieldvalidator1;
		protected System.Web.UI.WebControls.RequiredFieldValidator	RequiredFieldValidator2;
		protected System.Web.UI.WebControls.DataGrid				TimeEntryGrid;
		protected System.Web.UI.WebControls.DropDownList			UserList;
		protected System.Web.UI.WebControls.TextBox					WeekEnding;
		protected System.Web.UI.WebControls.DropDownList BranchDropList;
		protected System.Web.UI.WebControls.DropDownList DepartmentDropList;

		private void Page_Load(object sender, System.EventArgs e)
		{
			this.PageBegin("项目管理",true);
			_user = new PMUser(Convert.ToInt16(this.Empid));
			if (!Page.IsPostBack)
			{
				BLL.PM.TimeEntry.FillCorrectStartEndDates(DateTime.Today, 
					ref _weekStartingDate, ref _weekEndingDate);
				WeekEnding.Text = _weekEndingDate.ToShortDateString();
				BindUserList();
				BindEntryFields();
				BindTimeSheet(_user.UserID, _weekStartingDate, _weekEndingDate);
			}
			else
			{
				BLL.PM.TimeEntry.FillCorrectStartEndDates(Convert.ToDateTime(WeekEnding.Text), 
					ref _weekStartingDate, ref _weekEndingDate);
				_dayListTable = BLL.PM.TimeEntry.GetWeek(Convert.ToDateTime(WeekEnding.Text));
			}
		}
		
		private void BindCategoryList()
		{
			if (ProjectList.SelectedItem != null) 
			{
				CategoryList.DataSource = Project.GetCategories(Convert.ToInt32(ProjectList.SelectedItem.Value));
				CategoryList.DataValueField = "CategoryID";
				CategoryList.DataTextField = "Abbreviation";
				CategoryList.DataBind();
			}
		}

		private void BindDates()
		{
			_dayListTable = BLL.PM.TimeEntry.GetWeek(Convert.ToDateTime(WeekEnding.Text));
			Days.DataSource = _dayListTable;
			Days.DataValueField = "Date";
			Days.DataTextField = "Day";
			Days.DataBind();
			Days.Items.FindByText(Convert.ToDateTime(DateTime.Today).ToString("ddd")).Selected= true;
		}

		private void BindEntryFields()
		{
			BindDates();
			BindProjectList();
			BindCategoryList();
		}
		
		private void BindProjectList()
		{
			if (ProjectList.SelectedItem != null)
				_userInput.ProjectID = Convert.ToInt32(ProjectList.SelectedItem.Value);

			ProjectList.DataSource = ListUserProjects();
			ProjectList.DataTextField = "Name";
			ProjectList.DataValueField = "ProjectID";
			ProjectList.DataBind();

			if (ProjectList.Items.FindByValue(_userInput.ProjectID.ToString()) != null)
				ProjectList.Items.FindByValue(_userInput.ProjectID.ToString()).Selected = true;
		}

		private void BindTimeSheet(int userID, DateTime start, DateTime end)
		{
			BindTimeSheet(userID, userID, start, end);
		}

		private void BindTimeSheet(int queryUserID, int userID, DateTime start, DateTime end)
		{
			TimeEntriesCollection entryList = BLL.PM.TimeEntry.GetEntries(queryUserID, userID, start, end);

			if (entryList != null) 
			{
				SortGridData(entryList, SortField, SortAscending);
			}
			TimeEntryGrid.DataSource = entryList;
			TimeEntryGrid.DataBind();
		}

		private void BindUserList()
		{
			DataTable empTB = (new EmpSystem()).GetEmpTB_By_EmpID(_user.UserID);
			DataRow row = empTB.Rows[0];
			int depID = (int)row[DepData.DEPID_FIELD];
			DataTable depTB = (new DepSystem()).GetDepTB_By_DepID(depID);
			row = depTB.Rows[0];
			int branchID = (int)row[DepData.BRANCHID_FIELD];

			AdminDB admin = new AdminDB();
			BranchDropList.DataSource=admin.GetAllBranch();
			BranchDropList.DataBind();
			BranchDropList.Items.FindByValue(branchID.ToString()).Selected=true;

			DepartmentDropList.DataSource=admin.GetDepByBranch(Int32.Parse(BranchDropList.SelectedItem.Value));
			DepartmentDropList.DataBind();
			DepartmentDropList.Items.FindByValue(depID.ToString()).Selected=true;

			UserList.DataSource = PMUser.GetUsers(_user.UserID, _user.Role,Int32.Parse(DepartmentDropList.SelectedItem.Value));
			UserList.DataBind();

			UserList.Items.FindByValue(_user.UserID.ToString()).Selected=true;
		}

		private void ClearEntryFields()
		{
			BindEntryFields();

			TimeEntryGrid.EditItemIndex = -1;

			BindTimeSheet(_user.UserID, Convert.ToInt32(UserList.SelectedItem.Value), _weekStartingDate, _weekEndingDate);
			Description.Text = string.Empty;
			Hours.Text = string.Empty;
		}
	
		protected CategoriesCollection ListGridCategories(int projectID)
		{
			return BLL.PM.Project.GetCategories(projectID);
		}

		protected ProjectsCollection ListUserProjects()
		{
			return BLL.PM.Project.GetProjects(_user.UserID, Convert.ToInt32(UserList.SelectedItem.Value));
		}

		private void SortGridData(TimeEntriesCollection list, string sortField, bool asc)
		{
			TimeEntriesCollection.TimeEntryFields sortCol = TimeEntriesCollection.TimeEntryFields.InitValue;

			switch(sortField)
			{
				case "EntryDate":
					sortCol = TimeEntriesCollection.TimeEntryFields.Day;
					break;
				case "ProjectName":
					sortCol = TimeEntriesCollection.TimeEntryFields.Project;
					break;
				case "CategoryName":
					sortCol = TimeEntriesCollection.TimeEntryFields.Category;
					break;
				case "Duration":
					sortCol = TimeEntriesCollection.TimeEntryFields.Hours;
					break;
				case "Description":
					sortCol = TimeEntriesCollection.TimeEntryFields.Description;
					break;
				default:
					break;
			}

			list.Sort(sortCol, asc);
		}

		#region Web Form Designer generated code
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		///	<summary>
		///	Required method for Designer support - do not modify
		///	the contents of this method with the code editor.
		///	</summary>
		private void InitializeComponent()
		{    
			this.WeekEnding.TextChanged += new System.EventHandler(this.WeekEnding_TextChanged);
			this.ProjectList.SelectedIndexChanged += new System.EventHandler(this.ProjectList_SelectedIndexChanged);
			this.AddEntry.Click += new System.EventHandler(this.AddEntry_Click);
			this.Cancel.Click += new System.EventHandler(this.Cancel_Click);
			this.BranchDropList.SelectedIndexChanged += new System.EventHandler(this.BranchDropList_SelectedIndexChanged);
			this.DepartmentDropList.SelectedIndexChanged += new System.EventHandler(this.DepartmentDropList_SelectedIndexChanged);
			this.UserList.SelectedIndexChanged += new System.EventHandler(this.UserList_OnChange);
			this.TimeEntryGrid.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.TimeEntryGrid_OnCancel);
			this.TimeEntryGrid.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.TimeEntryGrid_OnEdit);
			this.TimeEntryGrid.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.TimeEntryGrid_Sort);
			this.TimeEntryGrid.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.TimeEntryGrid_OnUpdate);
			this.TimeEntryGrid.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.TimeEntryGrid_OnDelete);
			this.TimeEntryGrid.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.TimeEntryGrid_Itembound);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion
		
		private void AddEntry_Click(object sender, System.EventArgs e)
		{
			Requiredfieldvalidator1.Validate();
			RequiredFieldValidator2.Validate();
			RangeValidator1.Validate();
			CompareValidator1.Validate();

⌨️ 快捷键说明

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