📄 timeentry.aspx.cs
字号:
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 + -