using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.Web.UI.WebControls; using System.ComponentModel; using System.Data.SqlClient; using System.Text; using System.Drawing; namespace OT.Controls { public class OrderCalendar : Calendar { DataSet dsOrderList;// = new Infrasys.BLL.OP_OrderDetail().GetOrderListForCarlendarByOrderDateStarAndEnd(strOrderDateStar, strOrderDateEnd); DataSet dsGoodDays;// = new Infrasys.BLL.MAG_GoodDay().GetList(); protected override void OnLoad(EventArgs e) { base.OnLoad(e); } private int _MaxLen = 8; public int MaxLen { set { _MaxLen = value; } get { return _MaxLen; } } protected override void OnDayRender(TableCell cell, CalendarDay day) { string strOrderDateStar = day.Date.AddDays(1 - day.Date.Day).ToString("yyyy/MM/dd"); if (day.Date.Day > 10) { strOrderDateStar = day.Date.AddDays(1 - day.Date.Day).AddMonths(1).ToString("yyyy/MM/dd"); } string strOrderDateEnd = day.Date.AddDays(1 - day.Date.Day).AddMonths(1).AddDays(-1).ToString("yyyy/MM/dd"); if (day.Date.Day > 10) { strOrderDateEnd = day.Date.AddDays(1 - day.Date.Day).AddMonths(2).AddDays(-1).ToString("yyyy/MM/dd"); } if (dsOrderList == null) { // dsOrderList = new OT.BLL.TB_AVA_OP_OrderHeader().GetOrderCarlendarDataByStartAndEndDate(strOrderDateStar, strOrderDateEnd); } if (dsGoodDays == null) { // dsGoodDays = new OT.BLL.TB_AVA_MAG_GoodDay().GetAllList(); } //總表格 Table otbAll = new Table(); otbAll.Attributes.Add("height", "100%"); otbAll.Attributes.Add("width", "100%"); otbAll.BorderStyle = System.Web.UI.WebControls.BorderStyle.None; otbAll.BorderWidth = 1; otbAll.BorderColor = Color.Black; otbAll.BackColor = Color.White; //ColorTranslator.FromHtml("#C2D5FC"); otbAll.CellPadding = 0; otbAll.CellSpacing = 0; //border="1" cellpadding="0" cellspacing="0" bordercolor="#FF9966" //日期行 TableRow trHeader = new TableRow(); trHeader.BackColor = ColorTranslator.FromHtml("#EBEFF4"); //每行日期的顏色 trHeader.BorderColor = ColorTranslator.FromHtml("#C2D5FC"); trHeader.Height = 10; //日期行-日期 TableCell otdDay = new TableCell(); Label lblDay = new Label(); lblDay.Text = day.Date.Day.ToString().PadLeft(2, '0'); if (day.IsWeekend) { lblDay.ForeColor = System.Drawing.Color.Red; } otdDay.Controls.Add(lblDay); otdDay.HorizontalAlign = HorizontalAlign.Left; otdDay.BorderColor = ColorTranslator.FromHtml("#CEFFFF"); otdDay.Font.Bold = true; trHeader.Controls.Add(otdDay); //日期行-吉日名稱 TableCell otdGoodDay = new TableCell(); otdGoodDay.HorizontalAlign = HorizontalAlign.Center; otdGoodDay.Attributes.Add("width", "100%"); otdGoodDay.BorderColor = ColorTranslator.FromHtml("#CEFFFF"); trHeader.Controls.Add(otdGoodDay); if (dsGoodDays != null && dsGoodDays.Tables.Count > 0 && dsGoodDays.Tables[0].Rows.Count > 0) { foreach (DataRow dr in dsGoodDays.Tables[0].Rows) { if (dr["Memo"].ToString().IndexOf(day.Date.ToString("yyyy/MM/dd")) > -1) { Label lblGoodDayName = new Label(); lblGoodDayName.Text = dr["GoodDayValue"].ToString(); lblGoodDayName.BackColor = ColorTranslator.FromHtml(dr["Color"].ToString()); lblGoodDayName.Font.Bold = true; otdGoodDay.Controls.Add(lblGoodDayName); } } } Table tbHeader = new Table(); tbHeader.CellPadding = 0; tbHeader.CellSpacing = 0; tbHeader.Attributes.Add("width", "100%"); tbHeader.Controls.Add(trHeader); TableRow otrHeader = new TableRow(); TableCell otdHeader = new TableCell(); otdHeader.VerticalAlign = VerticalAlign.Top; otdHeader.Controls.Add(tbHeader); otrHeader.Controls.Add(otdHeader); otbAll.Controls.Add(otrHeader); //資料行 TableRow trData = new TableRow(); //訂席日期 TableCell otdData = new TableCell(); //otdData.Height = 120; otdData.Attributes.Add("height", "100%"); otdData.Attributes.Add("width", "100%"); otdData.VerticalAlign = VerticalAlign.Top; if (dsOrderList != null && dsOrderList.Tables.Count > 0 && dsOrderList.Tables[0].Rows.Count > 0) { DataRow[] aryDataRow = dsOrderList.Tables[0].Select(" Date = '" + day.Date.ToString("yyyy/MM/dd") + "' "); if (aryDataRow.Length == 0) { otdData.BackColor = Color.White; Table tbEmptyOrderInfo = new Table(); tbEmptyOrderInfo.Attributes.Add("width", "100%"); tbEmptyOrderInfo.Attributes.Add("height", "100%"); //tbEmptyOrderInfo.Height = 120; tbEmptyOrderInfo.BorderColor = Color.White; tbEmptyOrderInfo.BorderStyle = System.Web.UI.WebControls.BorderStyle.None; tbEmptyOrderInfo.CellPadding = 0; tbEmptyOrderInfo.CellSpacing = 0; tbEmptyOrderInfo.BackColor = Color.White; TableRow trEmptyOrderInfo = new TableRow(); TableCell tdEmptyOrderInfo = new TableCell(); tdEmptyOrderInfo.Height = 100; tdEmptyOrderInfo.Attributes.Add("height", "100%"); trEmptyOrderInfo.Controls.Add(tdEmptyOrderInfo); tbEmptyOrderInfo.Controls.Add(trEmptyOrderInfo); otdData.Controls.Add(tbEmptyOrderInfo); } foreach (DataRow dr in aryDataRow) { Table tbData = new Table(); tbData.Attributes.Add("width", "100%"); tbData.BorderStyle = System.Web.UI.WebControls.BorderStyle.None; tbData.CellPadding = 0; tbData.CellSpacing = 0; TableRow trOrderDateSE = new TableRow(); TableRow trOrderData = new TableRow(); //訂席開始結束 TableCell tdOrderDateSE = new TableCell(); Label lblOrderDateSE = new Label(); lblOrderDateSE.Text = dr["Date"].ToString(); lblOrderDateSE.CssClass = "CarlendarDate"; tdOrderDateSE.Controls.Add(lblOrderDateSE); //tdOrderDateSE.ColumnSpan = 3; tdOrderDateSE.HorizontalAlign = HorizontalAlign.Left; trOrderDateSE.Controls.Add(tdOrderDateSE); //資料 //顏色塊 Start //TableCell tdOrderColor = new TableCell(); //Label lblOrderStatusColor = new Label(); //lblOrderStatusColor.Text = " "; //lblOrderStatusColor.Width = 10; //lblOrderStatusColor.Height = 16; //lblOrderStatusColor.BackColor = ColorTranslator.FromHtml("#F0E68C"); //tdOrderColor.HorizontalAlign = HorizontalAlign.Left; //tdOrderColor.Controls.Add(lblOrderStatusColor); //trOrderData.Controls.Add(tdOrderColor); //顏色塊 End //圖片塊 Start //TableCell tdOrderBook = new TableCell(); //System.Web.UI.WebControls.HyperLink hlBook = new System.Web.UI.WebControls.HyperLink(); //hlBook.ImageUrl = "~/App_Themes/Default/Images/book.jpg"; //hlBook.NavigateUrl = "~/Pages/OP/ManageOrderRealValue_Add.aspx?OrderID=" + dr["OrderID"].ToString(); //tdOrderBook.Controls.Add(hlBook); //tdOrderBook.HorizontalAlign = HorizontalAlign.Left; //trOrderData.Controls.Add(tdOrderBook); //圖片塊 End //內容塊 Start TableCell tdOrderInfo = new TableCell(); HyperLink hlOrderInfo = new HyperLink(); string strOrderInfo = string.Format("[{0}]{1}", dr["PRENAME"].ToString(), dr["NAME"].ToString()); hlOrderInfo.Text = strOrderInfo.Length <= MaxLen ? strOrderInfo : strOrderInfo.Substring(0, MaxLen) + "..."; hlOrderInfo.ToolTip = strOrderInfo; if (dr["URL"] != null && !dr["URL"].ToString().Equals("")) { hlOrderInfo.NavigateUrl = dr["URL"].ToString(); } tdOrderInfo.CssClass = "CarlendarA"; tdOrderInfo.Controls.Add(hlOrderInfo); tdOrderInfo.HorizontalAlign = HorizontalAlign.Left; trOrderData.Controls.Add(tdOrderInfo); //內容塊 End tbData.Controls.Add(trOrderDateSE); tbData.Controls.Add(trOrderData); otdData.Controls.Add(tbData); //otdData.BackColor = ColorTranslator.FromHtml("#FFFFCE"); //cell.BackColor = ColorTranslator.FromHtml("#FFFFCE"); } } else { otdData.BackColor = Color.White; Table tbEmptyOrderInfo = new Table(); tbEmptyOrderInfo.Attributes.Add("width", "100%"); //tbEmptyOrderInfo.Height = 120; tbEmptyOrderInfo.Attributes.Add("height", "100%"); tbEmptyOrderInfo.BorderColor = Color.White; tbEmptyOrderInfo.BorderStyle = System.Web.UI.WebControls.BorderStyle.None; tbEmptyOrderInfo.CellPadding = 0; tbEmptyOrderInfo.CellSpacing = 0; tbEmptyOrderInfo.BackColor = Color.White; TableRow trEmptyOrderInfo = new TableRow(); TableCell tdEmptyOrderInfo = new TableCell(); //tdEmptyOrderInfo.Height = 100; tdEmptyOrderInfo.Attributes.Add("height", "100%"); trEmptyOrderInfo.Controls.Add(tdEmptyOrderInfo); tbEmptyOrderInfo.Controls.Add(trEmptyOrderInfo); otdData.Controls.Add(tbEmptyOrderInfo); } trData.Controls.Add(otdData); otbAll.Controls.Add(trData); cell.Controls.Clear(); cell.VerticalAlign = VerticalAlign.Top; cell.Attributes.Add("height", "100%"); cell.BackColor = Color.White; //ColorTranslator.FromHtml("#C2D5FC"); //非本月不加載資料 if (!day.IsOtherMonth) { cell.BorderStyle = System.Web.UI.WebControls.BorderStyle.Dotted; cell.BorderWidth = 1; cell.Height = 120; cell.Controls.Add(otbAll); } else { cell.BackColor = ColorTranslator.FromHtml("#C2D5FC"); } //base.OnDayRender(cell, day); } } }