📄 dailyreport.aspx.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using DBUtils;
namespace BlueHill.Attendance
{
/// <summary>
/// DailyReport 的摘要说明。
/// </summary>
public class DailyReport : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Panel pnlPageFix;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.Label lblToday;
protected System.Web.UI.WebControls.Panel pnlToday;
protected System.Web.UI.WebControls.Label lblDept;
protected System.Web.UI.WebControls.DropDownList cmbDeptList;
protected System.Web.UI.WebControls.Button btnSearch;
protected System.Web.UI.WebControls.Label lblDeptID;
protected System.Web.UI.WebControls.Panel pnlChooseDept;
protected System.Web.UI.WebControls.Label lblMessage;
protected System.Web.UI.WebControls.DataGrid grdResult;
protected System.Web.UI.WebControls.Panel pnlBody;
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.cmbDeptList.SelectedIndexChanged += new System.EventHandler(this.cmbDeptList_SelectedIndexChanged);
this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
/// <summary>
/// 网页初始化时执行该方法。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!IsPostBack)
{
//如果网页是第一次生成时,执行如下操作:
//设置与界面显示有关的控件属性。
////???"yyyy \"年\" M \"月\" d \"日\""转换不确定
lblToday.Text = DateTime.Now.ToString("yyyy \"年\" M \"月\" d \"日\"");
pnlChooseDept.Visible = false;
lblMessage.Visible = false;
Employee emp = new Employee();
int iEmpID;
//判断登录信息是否存在,不存在则显示出错信息。
if (Session["EmployeeID"] == null)
{
pnlToday.Visible = false;
lblMessage.Text = "登录信息丢失,请重新登录!";
lblMessage.Visible = true;
return;
}
//获取存放在 Session 中的用户员工编号。
iEmpID =int.Parse((string)Session["EmployeeID"]);
//通过检索数据库,获取其他员工信息。
Employee.GetEmployeeInfo(iEmpID, emp);
//判断用户是否具为经理,不是则显示出错信息。
if (!emp.IsManager)
{
pnlToday.Visible = false;
lblMessage.Text = "对不起,该网页属经理专用,请退出!";
lblMessage.Visible = true;
return;
}
//保存员工的部门编号。
lblDeptID.Text = emp.DeptID.ToString();
//检索数据库,得到总经理的员工编号。
int iCEOID=0;
Employee.GetCEOInfo( ref iCEOID );
if (iEmpID == iCEOID)
{
//如果是总经理登录,则执行如下操作:
//显示选择部门的下拉框。
pnlChooseDept.Visible = true;
DataSet dsDept = new DataSet();
//从数据库中获取部门的全部列表,然后用该列表填充下拉框。
DBUtils.Attendance.GetDeptList(ref dsDept);
cmbDeptList.DataSource = dsDept.Tables[0];
cmbDeptList.DataTextField = "DeptName";
cmbDeptList.DataValueField = "DeptID";
cmbDeptList.DataBind();
//默认情况下,选中第一个部门。
cmbDeptList.SelectedIndex = 0;
lblDeptID.Text = cmbDeptList.SelectedValue.ToString();
}
else
//如果是一般的部门经理,则显示该部门的当日考勤信息。
SearchResult();
}
}
/// <summary>
/// 该方法用 DataGrid 显示部门当日的考勤信息,如果没有记录则显示相应的提示信息。
/// </summary>
/// <param name="e"></param>
void SearchResult()
{
DataSet dsResult = new DataSet();
int iDeptID;
string strStartTime, strEndTime;
//获取部门编号。
iDeptID = int.Parse(lblDeptID.Text);
strStartTime = DateTime.Now.ToString("yyyy/MM/dd");
strEndTime = DateTime.Now.AddDays(1).ToString("yyyy/MM/dd");
//检索数据库中该部门当日考勤不合格的所有员工列表,将结果保存在 DataSet 中。
DBUtils.Attendance.QueryDailyAttend(iDeptID, strStartTime, strEndTime, ref dsResult);
if ( dsResult.Tables[0].Rows.Count > 0 )
{
//找到了考勤不合格的记录
grdResult.DataSource = dsResult.Tables[0];
grdResult.DataBind();
lblMessage.Text = "考勤不合格的名单如下:";
lblMessage.Visible = true;
grdResult.Visible = true;
}
else
{
//没有找到任何记录
lblMessage.Text = "全部考勤合格!";
lblMessage.Visible = true;
grdResult.Visible = false;
return;
}
}
/// <summary>
/// 当用户单击“确定”按钮时,执行该方法。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSearch_Click(object sender, System.EventArgs e)
{
//显示部门当日的考勤信息
SearchResult();
}
private void cmbDeptList_SelectedIndexChanged(object sender, System.EventArgs e)
{
lblDeptID.Text = cmbDeptList.SelectedValue.ToString();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -