📄 summary.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.Salary
{
/// <summary>
/// Summary 的摘要说明。
/// </summary>
public class Summary : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Panel pnlPageFix;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.TextBox txtStartTime;
protected System.Web.UI.WebControls.CompareValidator CompareValidator1;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.TextBox txtEndTime;
protected System.Web.UI.WebControls.CompareValidator CompareValidator2;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
protected System.Web.UI.WebControls.CheckBox chkSort;
protected System.Web.UI.WebControls.RadioButtonList rdoAscendList;
protected System.Web.UI.WebControls.Panel pnlOption;
protected System.Web.UI.WebControls.Label lblDept;
protected System.Web.UI.WebControls.DropDownList cmbDeptList;
protected System.Web.UI.WebControls.Label lblDeptID;
protected System.Web.UI.WebControls.Panel pnlChooseDept;
protected System.Web.UI.WebControls.Button btnSearch;
protected System.Web.UI.WebControls.Label lblMessage;
protected System.Web.UI.WebControls.DataGrid grdResult;
protected System.Web.UI.WebControls.Panel pnlBody;
/// <summary>
/// 网页初始化时执行该方法。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if ( !IsPostBack )
{
//如果网页是第一次生成时,执行如下操作:
//设定“开始时间”文本框的显示内容为上一个月。
txtStartTime.Text = DateTime.Now.AddMonths(-1).ToString("yyyy/M/d");
//设定“结束时间”文本框的显示内容为第二天。
txtEndTime.Text = DateTime.Now.AddDays(1).ToString("yyyy/M/d");
//设置界面控件的显示方式。
pnlChooseDept.Visible = false;
pnlOption.Visible = false;
lblMessage.Visible = false;
Employee emp = new Employee();
int iEmpID;
//检查员工的登录信息是否丢失,是则显示出错信息。
if ( Session["EmployeeID"] == null )
{
lblMessage.Text = "登录信息丢失,请重新登录!";
lblMessage.Visible = true;
return;
}
//获取保存在 Session 中的员工编号信息。
iEmpID = int.Parse ((string)(Session["EmployeeID"]));
//从数据库中获取员工的其他信息。
Employee.GetEmployeeInfo(iEmpID, emp);
//如果员工不是部门经理,则显示出错信息。
if ( !emp.IsManager )
{
lblMessage.Text = "对不起,该网页属经理专用,请退出!";
lblMessage.Visible = true;
btnSearch.Visible = false;
return;
}
pnlOption.Visible = true;
//保存部门编号。
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();
}
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.chkSort.CheckedChanged += new System.EventHandler(this.chkSort_CheckedChanged);
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>
/// 当用户单击“显示结果”按钮时,该方法将部门工资汇总信息以 DataGrid 的形式显示。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSearch_Click(object sender, System.EventArgs e)
{
DataSet dsResult = new DataSet();
//校验用户输入的合法性。
Validate();
if ( Page.IsValid )
{
//如果输入正确,则继续执行以下操作来显示工资汇总信息。
int iDeptID;
//获取保存在网页中的部门编号。
iDeptID = int.Parse(lblDeptID.Text);
//检索数据库中的工资汇总信息。
SalaryInfo.DeptSummary(iDeptID, txtStartTime.Text.Trim(), txtEndTime.Text.Trim(), dsResult );
//创建工资汇总表的数据视图。
DataView dv = new DataView(dsResult.Tables[0]);
if ( chkSort.Checked )
{
//如果用户选中“按工资排序”复选框,则按“最终所得”对数据视图中的数据进行排序。
string strSQL;
if ( rdoAscendList.SelectedValue == "1" )
{
//如果用户选择“降序”单选按钮。
strSQL = " Desc";
}
else
{
//否则选中的是“升序”单选按钮。
strSQL = " Asc";
}
//根据 ActualSalary 字段对数据视图进行排序。
dv.Sort = "ActualSalary" + strSQL;
}
if ( dv.Table.Rows.Count > 0 )
{
//如果数据视图中存在记录则将记录绑定到 DataGrid,并显示。
grdResult.DataSource = dv;
grdResult.DataBind();
grdResult.SelectedIndex = -1;
grdResult.Visible = true;
lblMessage.Visible = false;
}
else
{
//没有找到记录,显示提示信息。
lblMessage.Text = "没有找到任何记录!";
grdResult.Visible = false;
lblMessage.Visible = true;
return;
}
}
}
/// <summary>
/// 当用户更改选中部门时,该方法更新已保存的部门编号。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cmbDeptList_SelectedIndexChanged(object sender, System.EventArgs e)
{
lblDeptID.Text = cmbDeptList.SelectedValue.ToString();
}
/// <summary>
/// 用户选中或清除“按工资排序”复选框时,启用或禁用单选按钮列表。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void chkSort_CheckedChanged(object sender, System.EventArgs e)
{
if ( chkSort.Checked )
{
rdoAscendList.Enabled = true;
}
else
{
rdoAscendList.Enabled = false;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -