ShowDay.aspx.cs
上传用户:cha0314
上传日期:2014-03-02
资源大小:12522k
文件大小:7k
源码类别:

C#编程

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Data.SqlClient;
  6. using System.Drawing;
  7. using System.Web;
  8. using System.Web.SessionState;
  9. using System.Web.UI;
  10. using System.Web.UI.WebControls;
  11. using System.Web.UI.HtmlControls;
  12. using UDS.Components;
  13. namespace UDS.SubModule.WorkAttendance
  14. {
  15. /// <summary>
  16. /// ShowDay 的摘要说明。
  17. /// </summary>
  18. public class ShowDay : System.Web.UI.Page
  19. {
  20. protected System.Web.UI.HtmlControls.HtmlTable daytable;
  21. protected System.Web.UI.HtmlControls.HtmlInputHidden hcellstatus;
  22. protected string indaycolor;//应该出勤天数的背景色
  23. protected System.Web.UI.WebControls.Button btnsubmit;
  24. protected System.Web.UI.WebControls.Button lblMessage;
  25. protected string outdaycolor;//无需出勤天数的背景色
  26. private void Page_Load(object sender, System.EventArgs e)
  27. {
  28. // 
  29. indaycolor = "#EBFFE5";
  30. outdaycolor = "#ffffef";
  31. if(!Page.IsPostBack)
  32. {
  33. try
  34. {
  35. UDS.Components.WA_Duty wa = new UDS.Components.WA_Duty();
  36. string begintime,endtime;
  37. begintime = (Request.QueryString["begintime"]==null)?DateTime.Now.ToString():Request.QueryString["begintime"].ToString();
  38. endtime = (Request.QueryString["endtime"]==null)?DateTime.Now.ToString():Request.QueryString["endtime"].ToString();
  39. BindData(begintime,endtime);
  40. }
  41. catch(Exception ex)
  42. {
  43. UDS.Components.Error.Log(ex.Message);
  44. Server.Transfer("../Error.aspx");
  45. }
  46. }
  47. }
  48. #region Web Form Designer generated code
  49. override protected void OnInit(EventArgs e)
  50. {
  51. //
  52. // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  53. //
  54. InitializeComponent();
  55. base.OnInit(e);
  56. }
  57. /// <summary>
  58. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  59. /// 此方法的内容。
  60. /// </summary>
  61. private void InitializeComponent()
  62. {    
  63. this.btnsubmit.Click += new System.EventHandler(this.btnsubmit_Click);
  64. this.lblMessage.Click += new System.EventHandler(this.lblMessage_Click);
  65. this.Load += new System.EventHandler(this.Page_Load);
  66. }
  67. #endregion
  68. private void BindData(string begintime,string endtime)
  69. {
  70. int j = 0;
  71. Database db = new Database();
  72. SqlDataReader dr;
  73. SqlParameter[] prams = {
  74.    db.MakeInParam("@begintime",SqlDbType.DateTime,8,begintime),
  75.    db.MakeInParam("@endtime",SqlDbType.DateTime,8,endtime)
  76.    };
  77. db.RunProc("sp_WA_GetDayData",prams,out dr);
  78. bool outwhile = false;
  79. while(!outwhile)
  80. {
  81. HtmlTableRow row = new HtmlTableRow();
  82. row.Height = "30";
  83. while(row.Cells.Count<7)
  84. {
  85. if(!dr.Read())
  86. {
  87. //填补空余列
  88. int blankcells = 7-row.Cells.Count;
  89. for(int i=0;i<blankcells;i++)
  90. {
  91. HtmlTableCell tmpcell = new HtmlTableCell();
  92. tmpcell.InnerHtml = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  93. row.Cells.Add(tmpcell);
  94. }
  95. daytable.Rows.Add(row);
  96. outwhile = true;
  97. break;
  98. }
  99. HtmlTableCell col = new HtmlTableCell();
  100. switch(DateTime.Parse(dr[0].ToString()).DayOfWeek.ToString())
  101. {
  102. case "Monday"   : j = 1;break;
  103. case "Tuesday"  : j = 2;break;
  104. case "Wednesday": j = 3;break;
  105. case "Thursday" : j = 4;break;
  106. case "Friday"   : j = 5;break;
  107. case "Saturday" : j = 6;break;
  108. case "Sunday"   : j = 7;break;
  109. default:
  110. break;
  111. }
  112. col.ID = dr["id"].ToString();
  113. col.Align = "center";
  114. if(Convert.ToBoolean(dr["needduty"])==true)
  115. {
  116. col.Style.Add("background-color",indaycolor);
  117. }
  118. else
  119. {
  120. col.Style.Add("background-color",outdaycolor);
  121. }
  122. col.InnerText = DateTime.Parse(dr["datetime"].ToString()).Month.ToString()+"-"+DateTime.Parse(dr["datetime"].ToString()).Day.ToString();
  123. //如果当前日期紧接前面的日期就添加列
  124. if((row.Cells.Count+1)==j)
  125. {
  126. col.Style.Add("cursor", "hand");
  127. row.Cells.Add(col);
  128. col.Attributes["onclick"] = "Click_Cell(this);";
  129. }
  130. else
  131. {
  132. int blankcell = j-row.Cells.Count-1;
  133. //补充缺掉的cell
  134. if (blankcell>0)
  135. {
  136. for(int k=0;k<blankcell;k++)
  137. {
  138. HtmlTableCell tmpcol = new HtmlTableCell();
  139. //tmpcol.BgColor = outdaycolor;
  140. tmpcol.InnerText = "";
  141. row.Cells.Add(tmpcol);
  142. }
  143. col.Style.Add("cursor", "hand");
  144. row.Cells.Add(col);
  145. col.Attributes["onclick"] = "Click_Cell(this);";
  146. }
  147. else
  148. {
  149. blankcell = j + 6 - row.Cells.Count;
  150. for(int k=0;k<blankcell;k++)
  151. {
  152. if(row.Cells.Count==7)
  153. {
  154. daytable.Rows.Add(row);
  155. }
  156. else
  157. {
  158. HtmlTableCell tmpcol = new HtmlTableCell();
  159. //tmpcol.BgColor = outdaycolor;
  160. tmpcol.InnerText = "";
  161. row.Cells.Add(tmpcol);
  162. }
  163. col.Style.Add("cursor", "hand");
  164. row.Cells.Add(col);
  165. col.Attributes["onclick"] = "if(this.style.backgroundColor=='"+indaycolor+"') this.style.backgroundColor = '"+outdaycolor+"';else this.style.backgroundColor = '"+indaycolor+"';Click_Cell(this);this.blur();";
  166. }
  167. }
  168. }
  169. //添加完列判断是否需要添加行
  170. if(row.Cells.Count==7)
  171. {
  172. daytable.Rows.Add(row);
  173. }
  174. }
  175. }
  176. dr.Close();
  177. }
  178. private void btnsubmit_Click(object sender, System.EventArgs e)
  179. {
  180. string tmpstr = hcellstatus.Value;
  181. string indaystr,outdaystr;
  182. indaystr = outdaystr = "";
  183. string[] arrdate = tmpstr.Split(',');
  184. string[] tmp = new string[2];
  185. Database db = new Database();
  186. SqlParameter[] prams = new SqlParameter[2]; 
  187. for(int i=0;i<arrdate.Length;i++)
  188. {
  189. if(arrdate[i].Trim()!="")
  190. {
  191. tmp = arrdate[i].Split(':');
  192. if(Int32.Parse(tmp[1].ToString())%2==0) //偶数上班日期
  193. indaystr = indaystr + tmp[0] + ",";
  194. else
  195. outdaystr = outdaystr + tmp[0] + ",";
  196. }
  197. }
  198. outdaystr = (outdaystr.Length==0)?"":outdaystr.Substring(0,outdaystr.Length-1);
  199. indaystr = (indaystr.Length==0)?"":indaystr.Substring(0,indaystr.Length-1);
  200. try
  201. {
  202. if(indaystr!="")
  203. {
  204. prams[0] = db.MakeInParam("@datetimestr",SqlDbType.VarChar,8000,indaystr);
  205. prams[1] = db.MakeInParam("@type",SqlDbType.Bit,1,1);
  206. db.RunProc("sp_WA_ChangeDaySetting",prams);
  207. }
  208. if(outdaystr!="")
  209. {
  210. prams[0] = db.MakeInParam("@datetimestr",SqlDbType.VarChar,8000,outdaystr);
  211. prams[1] = db.MakeInParam("@type",SqlDbType.Bit,1,0);
  212. db.RunProc("sp_WA_ChangeDaySetting",prams);
  213. }
  214. daytable.Visible = false;
  215. btnsubmit.Visible = false;
  216. lblMessage.Visible = true;
  217. db.Dispose();
  218. }
  219. catch(Exception ex)
  220. {
  221. UDS.Components.Error.Log(ex.Message);
  222. Server.Transfer("../Error.aspx");
  223. }
  224. }
  225. private void lblMessage_Click(object sender, System.EventArgs e)
  226. {
  227. Response.Write("<script>window.close();</script>");
  228. }
  229. }
  230. }