ViewDayTask.aspx.cs
上传用户:xgw_05
上传日期:2009-12-11
资源大小:20208k
文件大小:10k
源码类别:

OA系统

开发平台:

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.Schedule
  14. {
  15. /// <summary>
  16. /// ViewDayTask 的摘要说明。
  17. /// </summary>
  18. public class ViewDayTask : System.Web.UI.Page
  19. {
  20. protected System.Web.UI.WebControls.Table Table1;
  21. protected System.Web.UI.WebControls.Label lblTitle;
  22. protected static string CookieUsername;
  23. private void Page_Load(object sender, System.EventArgs e)
  24. {
  25. if(!Page.IsPostBack)
  26. {
  27. //System.Globalization.DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek = System.DayOfWeek.Monday;
  28. //System.Globalization.DateTimeFormatInfo.CurrentInfo.DayNames=new String[]{"七","一","二","三","四","五","六"};
  29. //显示一周记录
  30. //PopulateDateToTable(DateTime.Today.AddDays(-(Convert.ToInt32(DateTime.Today.DayOfWeek))+1),6);
  31. //显示一天
  32. HttpCookie UserCookie = Request.Cookies["Username"];
  33. CookieUsername = UserCookie.Value.ToString();
  34. string UnameStr = Request.QueryString["UnameStr"]!=null?Request.QueryString["UnameStr"]:CookieUsername;
  35. string CurrDate = Request.QueryString["Date"]!=null?Request.QueryString["Date"]:DateTime.Today.ToShortDateString();
  36. Schedule.Manage .UnameStr=UnameStr;
  37. DateTime dt = Convert.ToDateTime(CurrDate);
  38. // 绑定数据至table,参数 1,开始日期 2,日期周期 3,用户名字符串
  39. PopulateDateToTable(dt,1,UnameStr);
  40. if(UnameStr=="")
  41. {
  42. this.lblTitle .Text = "现无执行人!请至少选择一个";
  43. }
  44. }
  45. }
  46. public void PopulateDateToTable(DateTime sDate,int dayCount,string Username)
  47. {
  48.  
  49. string[] UnameStr = System.Text.RegularExpressions.Regex.Split(Username,",");
  50. Task task = new Task();
  51. #region 初始化日程数据
  52. int[][] TaskData = new int[1][];
  53. // 初始化天数据至ArrayList
  54. // ArrayList demoDayData = new ArrayList();
  55. // demoDayData.Add(9);
  56. // demoDayData.Add(10);
  57. // demoDayData.Add(11);
  58. // demoDayData.Add(12);
  59. // int[][] TaskData = new int[5][];  //每日的任务数据
  60. // TaskData[0] = new int[]{0,0,0,0,0,13,14,15,16,17,18};
  61. // TaskData[1] = new int[]{8,9,10,11,0,0,0,0,0,0,0};
  62. // TaskData[2] = new int[]{0,9,10,11,12,13,0,0,0,0,0};
  63. // TaskData[3] = new int[]{8,9,10,11,12,13,14,15,0,0,0};
  64. // TaskData[4] = new int[]{0,0,0,0,0,0,0,0,0,17,18};
  65. // demoData[5] = new int[]{0,0,0,0,0,0,0,0};
  66. // demoData[6] = new int[]{0,0,0,0,0,0,0,0};
  67. // demoData[7] = new int[]{0,0,0,0,0,0,0,0};
  68. // 生成行和单元格
  69. ArrayList DaySch = new ArrayList(dayCount+1);//根据选择的天数生成数组 加1是因为会增加一信息列
  70. ArrayList DayTask = new ArrayList(dayCount+1); //记录每天的前五条任务ID
  71. DaySch.Add(new int[5][]);  //加入一个废列
  72. DayTask.Add(new String[5]);
  73. for(int p=0;p<UnameStr.Length;p++)
  74. {
  75. TaskData = new int[5][];
  76. string tmpDate = sDate.ToShortDateString();
  77. String[] a = new String[5];
  78. a = task.GetTop5DayTaskList(tmpDate,UnameStr[p].ToString());
  79. // TaskData[0] = new int[]{0,0,0,0,0,13,14,15,16,17,18};
  80. // TaskData[1] = new int[]{8,9,10,11,0,0,0,0,0,0,0};
  81. // TaskData[2] = new int[]{0,9,10,11,12,13,0,0,0,0,0};
  82. // TaskData[3] = new int[]{8,9,10,11,12,13,14,15,0,0,0};
  83. // TaskData[4] = new int[]{0,0,0,0,0,0,0,0,0,17,18};
  84. for(int k=0;k<a.Length;k++)
  85. {
  86. TaskData[k] = task.GetTaskPeriod(tmpDate,UnameStr[p],Int32.Parse(a[k].ToString()));
  87. }
  88. DaySch.Add(TaskData);
  89. DayTask.Add(a);
  90. }
  91. #endregion
  92. int numcells = UnameStr.Length;
  93. // int startTimeNo = 8;
  94. SqlDataReader dataReader = null;
  95. dataReader =  task.GetPeriodInfo();
  96. ArrayList period = new ArrayList();
  97. while(dataReader.Read())
  98. period.Add(dataReader[1].ToString());
  99. int numrows = period.Count;
  100. #region 颜色代码
  101. ArrayList colorlist = new ArrayList(5);
  102. Random ro=new Random();
  103. string[] colorArray = task.GetTop5ConfirmedTaskList(sDate.ToShortDateString(),Username);
  104. for(int p=0;p<colorArray.Length;p++)
  105. {
  106. int ca = ro.Next(0,255);
  107. int cb = ro.Next(0,255);
  108. int cc = ro.Next(0,255);
  109. colorlist.Add(System.Drawing.Color.FromArgb(ca,cb,cc).ToArgb().ToString("X").Substring(2));
  110. // if(colorArray[p].ToString()=="0")
  111. // colorlist.Add(Color.FromName("#A692F5"));
  112. // else
  113. // colorlist.Add(Color.BlanchedAlmond);
  114. }
  115. #endregion
  116. //  初始化表头
  117. #region 初始化表头
  118. TableRow r = new TableRow();
  119. // 生成一个第一列,列头为时间
  120. TableCell c = null;
  121. c = new TableCell();
  122. c.CssClass = "top";
  123. c.Controls.Add(new LiteralControl("<font size=3>"+sDate.ToString("yyyy/MM/dd")+"</font>&nbsp;&nbsp;&nbsp;    "));
  124. r.Cells.Add(c);
  125. if(Username!="")
  126. {
  127. for (int i=0; i<numcells; i++) 
  128. {
  129. string tmp = "";
  130. if(UnameStr.Length>1)
  131. {
  132. for(int cu=0;cu<UnameStr.Length;cu++)
  133. {
  134. if(cu!=i)
  135. {
  136. tmp+=UnameStr[cu].ToString()+",";
  137. }
  138. }
  139. }
  140. if(tmp.Length!=0)
  141. tmp = tmp.Substring(0,tmp.Length-1);
  142. string s = "<a href='ViewDayTask.aspx?UnameStr="+tmp+"'>"+UDS.Components .Staff.GetRealNameByUsername(UnameStr[i].ToString())+"</a>";
  143. c = new TableCell();
  144. c.CssClass = "top";
  145. c.Controls.Add(new LiteralControl("&nbsp;"+s+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"));
  146. //c.Controls.Add(new LiteralControl((i==0)?"&nbsp;&nbsp; "+sDate.ToShortDateString()+"&nbsp;&nbsp;&nbsp;    ":s+"&nbsp;&nbsp;&nbsp;"+UDS.Components.Tools.ConvertDayOfWeekToZh(sDate.AddDays(i-1).DayOfWeek)));
  147. r.Cells.Add(c);
  148. }
  149. #endregion
  150. // Table1.CellPadding = 0;
  151. // Table1.CellSpacing = 0;
  152. Table1.Rows.Add(r);
  153. // 初始化表头结束
  154. // 根据时间段共生成8行
  155. for (int j=0; j<numrows; j++) 
  156. {
  157.             
  158. r = new TableRow();
  159.                 
  160. // 每行根据选择的天数生成列
  161. for (int i=0; i<UnameStr.Length+1; i++) 
  162. {
  163. c = new TableCell();
  164. Table newtable = new Table();
  165. if (i==0)
  166. if(j%2==0)
  167. {
  168. string []a = period[j].ToString().Split('-');
  169. //c.Controls.Add(new LiteralControl("<div style='position:absolute; width:86px; height:76px; z-index:1'><font size=3>aa"+a[0].ToString()+"</font></div>"));
  170. c.Controls.Add(new LiteralControl("<font size=3>"+a[0].ToString()+"</font>"));
  171. }
  172. else
  173. c.Controls.Add(new LiteralControl(""));
  174. else
  175. { //如果不是第一列
  176. // newtable.BorderWidth = 0;
  177. //newtable.GridLines = System.Web.UI.WebControls .GridLines.Vertical;
  178. // 在某列中新table设置开始
  179. newtable = new Table();
  180. TableRow nr = new TableRow();
  181. for(int q=0;q<TaskData.Length;q++)
  182. {
  183. int[][] tmp =  (int[][])DaySch[i];
  184. String[] a = (String[])DayTask[i];
  185. TableCell nc = new TableCell();
  186. bool flag=false;
  187. string col = "";
  188. // 遍历五个任务时间数组,看有没有被占
  189. for(int co=0;co<TaskData.Length;co++)
  190. {
  191. if(Int32.Parse(tmp[co][j].ToString())!=0)
  192. {
  193. flag = true;
  194. col  = colorlist[co].ToString();
  195. }
  196. }
  197. // Response.Write(flag.ToString());
  198. if(flag)
  199. {
  200. nc.Controls.Add(new LiteralControl("<font color="+col+">*"+"</font>"));
  201. nc.BackColor=Color.FromName(col);
  202. nc.Height = 20;
  203. // nc.BackColor=(System.Drawing.Color)colorlist[q];
  204. // nc.Attributes.Add("onclick","return dialwinprocess('"+sDate.AddDays(i-1).ToShortDateString()+"','"+(startTimeNo+j).ToString()+"','2','"+a[q]+"')");
  205. // nc.Style.Add("cursor","hand");
  206. }
  207. else
  208. {
  209. nc.Controls.Add(new LiteralControl("<font color=#FFFFFF>0</font>"));
  210. nc.Height=20;
  211. // nc.BackColor=Color.FromName("#FFF8F7");
  212. // nc.Attributes.Add("onclick","return dialwinprocess('"+sDate.AddDays(i-1).ToShortDateString()+"','"+(startTimeNo+j).ToString()+"','1','0')");
  213. // nc.Attributes.Add("OnMouseOver","return high( this );");
  214. // nc.Attributes.Add("OnMouseOut","return low( this );");
  215. //nc.Attributes.Add("onclick","return dialwinprocess('"+q.ToString()+j.ToString()+tmp[q][j].ToString()+"')");
  216. // nc.Style.Add("cursor","hand");
  217. // System.Drawing.ColorConverter cc=new System.Drawing.ColorConverter();
  218. // newtable.BackColor=(System.Drawing.Color)cc.ConvertFromString("#FF9900");
  219. //
  220. }
  221. nr.Cells.Add(nc);
  222. }
  223. newtable.CellPadding = 0;
  224. newtable.CellSpacing = 0;
  225. newtable.GridLines = System.Web.UI.WebControls .GridLines.Both;
  226. newtable.BorderWidth = 0;
  227. newtable.Rows.Add(nr);
  228. // 新table设置结束
  229. c.Controls.Add(newtable);
  230. }
  231. r.Cells.Add(c);
  232. }
  233. Table1.CellPadding = 0;
  234. Table1.CellSpacing = 0;
  235. Table1.GridLines = System.Web.UI.WebControls .GridLines.Horizontal;
  236. Table1.BorderWidth = 1;
  237. Table1.Rows.Add(r);
  238. }
  239. }
  240. }
  241. #region Web Form Designer generated code
  242. override protected void OnInit(EventArgs e)
  243. {
  244. //
  245. // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  246. //
  247. InitializeComponent();
  248. base.OnInit(e);
  249. }
  250. /// <summary>
  251. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  252. /// 此方法的内容。
  253. /// </summary>
  254. private void InitializeComponent()
  255. {    
  256. this.Load += new System.EventHandler(this.Page_Load);
  257. }
  258. #endregion
  259. }
  260. }