📄 employeerecordquery.aspx.cs
字号:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
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.Data.SqlClient;
public partial class EmployeeRecordQuery : System.Web.UI.Page
{
private static string ConnString = ConfigurationManager.AppSettings["SQLCONNECTION"];
private static int Overtime_ID;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// Session["LoginName"] = "aaaaa";///待删除
// Session["DeptID"] = "3";
// Session["EmployeeLevel"] = "3";
FirstShow();
ddlSelectDeptShow();
ddlSelectEmployeeShow();
}
}
protected void FirstShow()
{
if (Session["EmployeeLevel"].ToString() == "1")
{
lblEmploeePurview.Visible = true;
pnlSelectDepartment.Visible = false;
pnlSelectItem.Visible = false;
pnlApprover.Visible = false; ///三个标签显示
pnlReason.Visible = false; ///员工加班
pnlDenyReason.Visible = false; ///记录明细
gvwDetails.Visible = false;
btnBack.Visible = false;
NoRecord.Visible = false;
return;
}
DateTime Dt = DateTime.Today;///设置文本框默认显示
int y = Dt.Year;
int m = Dt.Month - 1;
int d = Dt.Day;
tbxStartTime.Text = y.ToString() + "/" + m.ToString() + "/" + d.ToString();
d += 1;
m += 1;
tbxEndTime.Text = y.ToString() + "/" + m.ToString() + "/" + d.ToString();
if (Session["EmployeeLevel"].ToString() == "2")
{
lblEmploeePurview.Visible = false;
pnlSelectDepartment.Visible = false;
pnlSelectItem.Visible = true;
pnlApprover.Visible = false; ///三个标签显示
pnlReason.Visible = false; ///员工加班
pnlDenyReason.Visible = false; ///记录明细
gvwDetails.Visible = false;
btnBack.Visible = false;
NoRecord.Visible = false;
return;
}
if (Session["EmployeeLevel"].ToString() == "3")
{
lblEmploeePurview.Visible = false;
pnlSelectDepartment.Visible = true;
pnlSelectItem.Visible = true;
pnlApprover.Visible = false; ///三个标签显示
pnlReason.Visible = false; ///员工加班
pnlDenyReason.Visible = false; ///记录明细
gvwDetails.Visible = false;
btnBack.Visible = false;
NoRecord.Visible = false;
return;
}
}
protected void ddlSelectDeptShow()///部门下拉框显示
{
string cmdText;
SqlConnection myConn = new SqlConnection(ConnString);
cmdText = "SELECT * FROM tblDepartment WHERE DeptID <> 84";///84号是总经理的ID
SqlCommand myComm = new SqlCommand(cmdText, myConn);
myConn.Open();
SqlDataReader Dr = myComm.ExecuteReader();
ddlSelectDepartment.DataSource = Dr;
ddlSelectDepartment.DataTextField = "DeptName";
ddlSelectDepartment.DataValueField = "DeptID";
ddlSelectDepartment.DataBind();
ddlSelectDepartment.SelectedIndex = 0;
ddlSelectDepartment.SelectedValue = "3";///3号代表人事部,此句保证默认显示人事部
Dr.Dispose();
myConn.Close();
}
protected void ddlSelectEmployeeShow()///某部门员工下拉框显示
{
string cmdText, cmdTextsm;
SqlConnection myConn = new SqlConnection(ConnString);
cmdText = "SELECT EmployeeID,Name AS EmployeeName FROM tblEmployee WHERE DeptID =" + ddlSelectDepartment.SelectedValue;
SqlCommand myComm = new SqlCommand(cmdText, myConn);
myConn.Open();
SqlDataReader Dr = myComm.ExecuteReader();
ddlSelectEmployee.DataSource = Dr;
ddlSelectEmployee.DataTextField = "EmployeeName";
ddlSelectEmployee.DataValueField = "EmployeeID";
ddlSelectEmployee.DataBind();
Dr.Dispose();
cmdTextsm = "SELECT EmployeeID,Name FROM tblEmployee WHERE DeptID =" + ddlSelectDepartment.SelectedValue + " AND EmployeeLevel = 2";
SqlCommand SearchManager = new SqlCommand(cmdTextsm, myConn);
SqlDataReader Drsm = SearchManager.ExecuteReader();///搜一下该部门的经理
///ddlSelectEmployee.SelectedIndex = 0;
Drsm.Read();
ddlSelectEmployee.SelectedValue = Drsm["EmployeeID"].ToString();///设置员工下拉框默认显示
Drsm.Dispose();
myConn.Close();
}
protected int WhichRadio()///根据不同的radiobutton,返回不同的值
{
if (rbnShowAll.Checked == true)
return 0;
if (rbnOnlyShowType1.Checked == true)
return 1;
if (rbnOnlyShowType2.Checked == true)
return 2;
return -1;
}
protected string ChangeDateFormat(string Time)///该函数将形如2007/10/12的日期转换为10/12/2007
{///Time格式样例2007/10/12
char[] Change = { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' };
int i, j;
for (i = 5; Time[i] != '/'; i++)
{
Change[i - 5] = Time[i];
}
Change[i - 5] = '/';
for (i++; i < Time.Length; i++)
{
Change[i - 5] = Time[i];
}
Change[i - 5] = '/';
i++;
for (j = 0; Time[j] != '/'; j++)
{
Change[i - 5] = Time[j];
i++;
}
///Change[i - 5] = '\0';///竟然就把\和0给赋值过去,使得back变成“2007/10/12\0”这样的
string back = new string(Change);
return back;
}
protected bool IsPermitFormat(string Time)///该函数判断输入的日期格式是否符合要求,符合则返回TRUE
{
char[] Change = { ' ', ' ', ' ', ' ' };
int i, j, k;
for (i = 0; i < Time.Length; i++)
{///看看Time串里有没有不是数字或“/”的字符
if ((Time[i] < '0' || Time[i] > '9') && Time[i] != '/')
return false;
}
for (i = 5, j = 0; Time[i] != '/'; i++)
{
Change[j] = Time[i];
j++;
}
string m = new string(Change);///截取出月份
if (m[0] == ' ') return false;
///Change[0] = ' ';
for (k = 0; k < 4; k++)///清空Change[]
{
Change[k] = ' ';
}
for (i++, j = 0; i < Time.Length; i++)
{
Change[j] = Time[i];
j++;
}
string d = new string(Change);///截取出日
if (d[0] == ' ') return false;
///Change[0] = ' ';
for (k = 0; k < 4; k++)///清空Change[]
{
Change[k] = ' ';
}
for (j = 0; Time[j] != '/'; j++)
{
Change[j] = Time[j];
}
string y = new string(Change);///截取出年
if (y[0] == ' ') return false;
if (Convert.ToInt32(y) < 1900 || int.Parse(y) > 9999) return false;
if (int.Parse(m) < 1 || int.Parse(m) > 12) return false;
if (int.Parse(d) < 1 || int.Parse(d) > 31) return false;
return true;
}
protected bool IsShorter(string StartTime, string EndTime)
{
DateTime StartDt, EndDt;
if (IsPermitFormat(StartTime) && IsPermitFormat(EndTime))
{
StartDt = DateTime.Parse(ChangeDateFormat(StartTime));
EndDt = DateTime.Parse(ChangeDateFormat(EndTime));
if (StartDt < EndDt)
return true;
else return false;
}
else return false;
}
protected void DetailsShow(int WhichRadioButton)///显示某员工加班记录
{
string cmdText, WhereText = "";
string StartDate, EndDate;
StartDate = ChangeDateFormat(tbxStartTime.Text.Trim());
EndDate = ChangeDateFormat(tbxEndTime.Text.Trim());
StartDate += " 0:00:00";
EndDate += " 0:00:00";
switch (WhichRadioButton)
{
case 1: WhereText = " AND (tblOvertime.Type=1) "; break;
case 2: WhereText = " AND (tblOvertime.Type=2) "; break;
default: break;
}
SqlConnection myConn = new SqlConnection(ConnString);
cmdText = "SELECT OvertimeID,StartTime,EndTime,SubmitTime,Description,Status,Hours " +
"FROM tblOvertime,tblOvertimeType " +
"WHERE EmployeeID = " + ddlSelectEmployee.SelectedValue +
"AND (tblOvertime.StartTime>='" + StartDate + "' AND tblOvertime.EndTime<='" + EndDate + "') " +
WhereText +
" AND tblOvertime.Type=tblOvertimeType.Type ";
SqlCommand myComm = new SqlCommand(cmdText, myConn);
myConn.Open();
SqlDataReader Dr = myComm.ExecuteReader();
gvwDetails.DataSource = Dr;
gvwDetails.DataBind();
if (gvwDetails.Rows.Count == 0)
{
NoRecord.Visible = true;
btnBack.Visible = false;
}
Dr.Dispose();
myConn.Close();
}
protected void btnSearch_Click(object sender, EventArgs e)
{
gvwDetails.Visible = true;
pnlApprover.Visible = false;
pnlDenyReason.Visible = false;
pnlReason.Visible = false;
btnBack.Visible = true;
NoRecord.Visible = false;
if (IsShorter(tbxStartTime.Text.Trim(), tbxEndTime.Text.Trim()))
{
DetailsShow(WhichRadio());
}
else
{
gvwDetails.Visible = false;
btnBack.Visible = false;
Response.Write("输入的日期格式错误!请输入形如“1900/1/1”的日期。");
return;
}
}
protected void EmployeeOvertimeDetails(int OvertimeID)///员工加班记录明细
{
string cmdText;
SqlConnection myConn = new SqlConnection(ConnString);
cmdText = "SELECT Name AS Approver,Reason,DenyReason,Status FROM tblEmployee,tblOvertime WHERE tblEmployee.EmployeeID=tblOvertime.ApproverID AND OvertimeID=";
cmdText += OvertimeID.ToString();
SqlCommand myComm = new SqlCommand(cmdText, myConn);
myConn.Open();
SqlDataReader Dr = myComm.ExecuteReader();
Dr.Read();
lblApprover.Text = "审批者:" + Dr["Approver"].ToString();
lblReason.Text = "加班事由:" + Dr["Reason"].ToString();
if (Dr["Status"].ToString() == "已否决 ") ///“已否决”后面有七个空格,没有它们的话就会出错(if条件永远为假)
lblDenyReason.Text = "否决理由:" + Dr["DenyReason"].ToString();
else pnlDenyReason.Visible = false;
Dr.Dispose();
myConn.Close();
}
protected void gvwDetails_RowCommand(object sender, GridViewCommandEventArgs e)
{
Overtime_ID = Convert.ToInt32(e.CommandArgument.ToString());
pnlApprover.Visible = true;
pnlReason.Visible = true;
pnlDenyReason.Visible = true;
EmployeeOvertimeDetails(Overtime_ID);
}
protected void ddlSelectDepartment_SelectIndexChanged(object sender, EventArgs e)
{
ddlSelectEmployeeShow();
gvwDetails.Visible = false;
pnlApprover.Visible = false;
pnlDenyReason.Visible = false;
pnlReason.Visible = false;
btnBack.Visible = false;
NoRecord.Visible = false;
}
protected void ddlSelectEmployee_SelectIndexChanged(object sender, EventArgs e)
{
gvwDetails.Visible = false;
pnlApprover.Visible = false;
pnlDenyReason.Visible = false;
pnlReason.Visible = false;
btnBack.Visible = false;
NoRecord.Visible = false;
}
protected void btnBack_Click(object sender, EventArgs e)
{
gvwDetails.Visible = false;
pnlApprover.Visible = false;
pnlDenyReason.Visible = false;
pnlReason.Visible = false;
btnBack.Visible = false;
NoRecord.Visible = false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -