ResourceReport.aspx.cs
上传用户:autodoor
上传日期:2022-08-04
资源大小:9973k
文件大小:4k
源码类别:

.net编程

开发平台:

Others

  1. using System;
  2. using System.Web.UI.WebControls;
  3. using qminoa.BLL.PM;
  4. namespace qminoa.Webs.PM
  5. {
  6. public class ResourceReportForm : qminoa.Webs.PageBase
  7. {
  8. protected System.Web.UI.WebControls.DataList UserList;
  9. protected System.Web.UI.WebControls.HyperLink BackLink1;
  10. protected System.Web.UI.WebControls.HyperLink BackLink2;
  11. protected System.Web.UI.WebControls.Label NoData;
  12. protected DateTime _startDate = DateTime.MinValue;
  13. protected DateTime _endDate = DateTime.MinValue;
  14. private string _userIDs;
  15. protected PMUser  _user;
  16. public const string UserRoleAdministrator = "1";
  17. public const string UserRoleProjectManager = "2";
  18. private void Page_Load(object sender, System.EventArgs e)
  19. {
  20. this.PageBegin("项目统计报告",true);
  21. _user = new PMUser(Convert.ToInt16(this.Empid));
  22. if(_user.Role != UserRoleAdministrator && _user.Role != UserRoleProjectManager)
  23. {
  24. Response.Redirect(Application["vRoot"]+"/login.aspx");  
  25. }
  26. _userIDs = Request.QueryString["IDs"]==null? "0" : Request.QueryString["IDs"];
  27. _startDate = Convert.ToDateTime(Request.QueryString["Start"]==null? 
  28. DateTime.MinValue.ToShortDateString() : Request.QueryString["Start"]);
  29. _endDate = Convert.ToDateTime(Request.QueryString["End"]==null? 
  30. DateTime.MinValue.ToShortDateString() : Request.QueryString["End"]);
  31. BackLink1.NavigateUrl = "Reports.aspx";
  32. BackLink2.NavigateUrl = "Reports.aspx";
  33. BindList(_userIDs, _startDate, _endDate);
  34. }
  35. private void BindList(string userIDs, DateTime start, DateTime end)
  36. {
  37. ResourceReportUserCollection userData = ResourceReportUser.GetUserSummary(_user .UserID, userIDs, start, end);
  38. UserList.DataSource = userData;
  39. UserList.DataBind();
  40. if (userData.Count == 0) 
  41. {
  42. UserList.Visible = false;
  43. NoData.Visible = true;
  44. }
  45. }
  46. private void SortGridData(TimeEntriesCollection list, string sortField, bool asc)
  47. {
  48. TimeEntriesCollection.TimeEntryFields sortCol = TimeEntriesCollection.TimeEntryFields.InitValue;
  49. switch(sortField)
  50. {
  51. case "EntryDate":
  52. sortCol = TimeEntriesCollection.TimeEntryFields.Day;
  53. break;
  54. case "ProjectName":
  55. sortCol = TimeEntriesCollection.TimeEntryFields.Project;
  56. break;
  57. case "CategoryName":
  58. sortCol = TimeEntriesCollection.TimeEntryFields.Category;
  59. break;
  60. case "Duration":
  61. sortCol = TimeEntriesCollection.TimeEntryFields.Hours;
  62. break;
  63. case "Description":
  64. sortCol = TimeEntriesCollection.TimeEntryFields.Description;
  65. break;
  66. }
  67. list.Sort(sortCol, asc);
  68. }
  69. protected TimeEntriesCollection ListTimeEntry(int mgrID, int userID, DateTime start, DateTime end)
  70. {
  71. TimeEntriesCollection entryList = BLL.PM.TimeEntry.GetEntries(mgrID, userID, start, end);
  72. if (entryList.Count > 0) 
  73. SortGridData(entryList, SortField, SortAscending);
  74. else
  75. entryList = null;
  76. return entryList;
  77. }
  78. protected void TimeEntryGrid_Sort(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
  79. {
  80. SortField = e.SortExpression;
  81. BindList(_userIDs, _startDate, _endDate);
  82. }
  83. #region Web Form Designer generated code
  84. override protected void OnInit(EventArgs e)
  85. {
  86. //
  87. // CODEGEN: This call is required by the ASP.NET Web Form Designer.
  88. //
  89. InitializeComponent();
  90. base.OnInit(e);
  91. }
  92. /// <summary>
  93. /// Required method for Designer support - do not modify
  94. /// the contents of this method with the code editor.
  95. /// </summary>
  96. private void InitializeComponent()
  97. {    
  98. this.ID = "ResourceReportForm";
  99. this.Load += new System.EventHandler(this.Page_Load);
  100. }
  101. #endregion
  102. string SortField 
  103. {
  104. get 
  105. {
  106. object o = ViewState["SortField"];
  107. if (o == null) 
  108. {
  109. return string.Empty;
  110. }
  111. return (string)o;
  112. }
  113. set 
  114. {
  115. if (value == SortField) 
  116. {
  117. SortAscending = !SortAscending;
  118. }
  119. ViewState["SortField"] = value;
  120. }
  121. }
  122. bool SortAscending 
  123. {
  124. get 
  125. {
  126. object o = ViewState["SortAscending"];
  127. if (o == null) 
  128. {
  129. return true;
  130. }
  131. return (bool)o;
  132. }
  133. set 
  134. {
  135. ViewState["SortAscending"] = value;
  136. }
  137. }
  138. }
  139. }