You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

276 lines
12 KiB

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);
}
}
}