156 lines
5.2 KiB
C#
156 lines
5.2 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.Configuration;
|
|
using System.Collections.Generic;
|
|
using System.Web;
|
|
using System.Web.Security;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using System.Web.UI.WebControls.WebParts;
|
|
using System.Web.UI.HtmlControls;
|
|
using System.Text;
|
|
using Wellan.Common;
|
|
|
|
public partial class forms_basedata_fmBhrd : Wellan.Web.UI.WUserControlBase
|
|
{
|
|
private string[] holidayData = null;
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (txtYear.Text == "")
|
|
{
|
|
txtYear.Text = DateTime.UtcNow.AddHours(8).ToString("yyyy");
|
|
ddlMonth.SelectedValue = DateTime.UtcNow.AddHours(8).ToString("MM");
|
|
Calendar1.VisibleDate = DateTime.UtcNow.AddHours(8).Date;
|
|
StoreYYMM();
|
|
}
|
|
}
|
|
|
|
private void StoreYYMM()
|
|
{
|
|
hfYear.Value = Calendar1.VisibleDate.ToString("yyyy", WGuard1.InvariantCulture);
|
|
hfMonth.Value = Calendar1.VisibleDate.ToString("MM");
|
|
}
|
|
|
|
protected void Calendar1_PreRender(object sender, EventArgs e)
|
|
{
|
|
// 取得節假日資料
|
|
holidayData = new BhrdDAC().GetYear(Calendar1.VisibleDate.Year);
|
|
}
|
|
|
|
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
|
|
{
|
|
e.Cell.Style["padding"] = "3px";
|
|
e.Cell.Style["border"] = "2px solid white";
|
|
|
|
// 非本月,結束處理
|
|
if (e.Day.IsOtherMonth)
|
|
return;
|
|
|
|
// 本月,清除重畫
|
|
e.Cell.Controls.Clear();
|
|
Label aLabel = new Label();
|
|
aLabel.Text = e.Day.Date.Day.ToString();
|
|
aLabel.Font.Name = "Tahoma";
|
|
aLabel.Font.Size = new FontUnit("16pt");
|
|
aLabel.Font.Bold = true;
|
|
aLabel.ForeColor = System.Drawing.Color.Black;
|
|
e.Cell.Controls.Add(aLabel);
|
|
|
|
// 加入換行的 Literal
|
|
Literal aBR = new Literal();
|
|
aBR.Text = "<br/>";
|
|
e.Cell.Controls.Add(aBR);
|
|
|
|
//加入 DropDownList 用以挑選假日型態
|
|
DropDownList aDDL = new DropDownList();
|
|
aDDL.ID = String.Format("HolidayType{0:00}", e.Day.Date.Day);
|
|
aDDL.Style.Add("width", "95%");
|
|
// aDDL.Style.Add("position", "relative");
|
|
aDDL.Style.Add("top", "2px");
|
|
aDDL.Style.Add("font-size", "9pt");
|
|
aDDL.Items.Add(new ListItem("上班", "-"));
|
|
aDDL.Items.Add(new ListItem("補班", "B"));
|
|
aDDL.Items.Add(new ListItem("國定/民俗", "N"));
|
|
aDDL.Items.Add(new ListItem("例假日", "H"));
|
|
aDDL.Items.Add(new ListItem("彈性休假", "V"));
|
|
aDDL.Items.Add(new ListItem("補假", "O"));
|
|
aDDL.Items.Add(new ListItem("颱風假", "T"));
|
|
aDDL.Items.Add(new ListItem("選舉假", "E"));
|
|
aDDL.Items.Add(new ListItem("公司活動", "A"));
|
|
|
|
//if (Request["HolidayType01"] == null || holidayData == null)
|
|
if (holidayData == null)
|
|
{
|
|
if (e.Day.IsWeekend)
|
|
aDDL.SelectedValue = "H";
|
|
else
|
|
aDDL.SelectedValue = "-";
|
|
}
|
|
else
|
|
{
|
|
aDDL.SelectedValue = holidayData[e.Day.Date.Month - 1].Substring(e.Day.Date.Day - 1, 1);
|
|
}
|
|
|
|
switch (aDDL.SelectedValue)
|
|
{
|
|
case "-":
|
|
e.Cell.BackColor = System.Drawing.Color.White;
|
|
break;
|
|
case "H":
|
|
e.Cell.BackColor = System.Drawing.Color.FromArgb(0xFF99CC);
|
|
break;
|
|
case "B":
|
|
e.Cell.BackColor = System.Drawing.Color.FromArgb(0xFFFF99);
|
|
break;
|
|
case "N":
|
|
e.Cell.BackColor = System.Drawing.Color.FromArgb(0x0099FF);
|
|
break;
|
|
case "V":
|
|
e.Cell.BackColor = System.Drawing.Color.FromArgb(0xFF9900);
|
|
break;
|
|
case "O":
|
|
e.Cell.BackColor = System.Drawing.Color.FromArgb(0x99CC00);
|
|
break;
|
|
case "T":
|
|
e.Cell.BackColor = System.Drawing.Color.FromArgb(0x999999);
|
|
break;
|
|
case "E":
|
|
e.Cell.BackColor = System.Drawing.Color.FromArgb(0xCC7FFF);
|
|
break;
|
|
case "A":
|
|
e.Cell.BackColor = System.Drawing.Color.FromArgb(0x7FCCFF);
|
|
break;
|
|
}
|
|
|
|
|
|
|
|
e.Cell.Controls.Add(aDDL);
|
|
}
|
|
|
|
protected void btnSave_Click(object sender, EventArgs e)
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
for (int i = 1; i <= 31; i++)
|
|
{
|
|
sb.Append(Request[String.Format("HolidayType{0:00}", i)]);
|
|
}
|
|
BhrdDAC bhrd = new BhrdDAC();
|
|
bhrd.SetMonth(Convert.ToInt32(hfYear.Value), Convert.ToInt32(hfMonth.Value), sb.ToString());
|
|
Calendar1.VisibleDate = Convert.ToDateTime(hfYear.Value + "/" + hfMonth.Value + "/01", WGuard1.InvariantCulture);
|
|
}
|
|
|
|
protected void btnGoto_Click(object sender, EventArgs e)
|
|
{
|
|
Calendar1.VisibleDate = Convert.ToDateTime(txtYear.Text + "/" + ddlMonth.SelectedValue + "/01");
|
|
StoreYYMM();
|
|
}
|
|
|
|
protected void Calendar1_VisibleMonthChanged(object sender, MonthChangedEventArgs e)
|
|
{
|
|
txtYear.Text = Calendar1.VisibleDate.ToString("yyyy");
|
|
ddlMonth.SelectedValue = Calendar1.VisibleDate.ToString("MM");
|
|
StoreYYMM();
|
|
}
|
|
}
|