/******************************************************************************* * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential * 类的信息: * 1.程序名称:S_CMN_003.cs * 2.功能描述:员工选择列表页面 * 编辑履历: * 作者 日期 版本 修改内容 * 张国印 2014/09/12 1.00 新建 *******************************************************************************/ using System; using System.ComponentModel; using System.Data; using System.Text; using System.Windows.Forms; using Dongke.IBOSS.PRD.Basics.BaseControls; using Dongke.IBOSS.PRD.Basics.BaseResources; using Dongke.IBOSS.PRD.Basics.Library; using Dongke.IBOSS.PRD.Client.CommonModule; using Dongke.IBOSS.PRD.Client.DataModels; namespace Dongke.IBOSS.PRD.Client.Controls { /// /// 员工选择列表页面 /// public partial class S_CMN_003 : FormBase { #region 成员变量 private DataTable _dataSource; // 画面的数据源 private DataRow _userRow; // 返回用户的DataRow private string _whereCondition; // 查询条件 private DKStaffEntity _staffEntity = new DKStaffEntity(); // 员工档案实体 #endregion #region 构造函数 /// /// 构造函数 /// public S_CMN_003() : this("") { } /// /// 重载的构造函数 /// /// 用户名称 public S_CMN_003(string userName) { InitializeComponent(); this.txtStaffName.Text = userName; // 按钮 this.btnSearch.Text = ButtonText.BTN_SEARCH; this.btnOK.Text = ButtonText.BTN_OK; this.btnClose.Text = ButtonText.BTN_CANCEL; this.btnClearCondition.Text = ButtonText.BTN_CLEARCONDITION; } /// /// 重载的构造函数 /// /// 用户名称 public S_CMN_003(string userName, string whereCondition) { InitializeComponent(); this.txtStaffName.Text = userName; this._whereCondition = whereCondition; // 按钮 this.btnSearch.Text = ButtonText.BTN_SEARCH; this.btnOK.Text = ButtonText.BTN_OK; this.btnClose.Text = ButtonText.BTN_CLOSE; this.btnClearCondition.Text = ButtonText.BTN_CLEARCONDITION; } #endregion #region 属性 /// /// 获取或者设定画面的数据源。 /// [Description("获取或者设定画面的数据源。")] public new DataTable DataSource { get { return _dataSource; } set { _dataSource = value; } } /// /// 返回选择的组织行 /// public DataRow UserRow { get { return _userRow; } set { _userRow = value; } } /// /// 返回选择的员工档案信息 /// public DKStaffEntity StaffEntity { get { return _staffEntity; } set { _staffEntity = value; } } #endregion #region 控件事件 /// /// 页面加载事件 /// /// /// private void S_CMN_003_Load(object sender, EventArgs e) { try { this.dgvUser.AutoGenerateColumns = false; if (!string.IsNullOrEmpty(this.txtStaffName.Text)) { Search(); } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 查询按钮按下事件 /// /// /// private void btnSearch_Click(object sender, EventArgs e) { try { Search(); } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 确定按钮按下事件 /// /// /// private void btnOK_Click(object sender, EventArgs e) { try { Commit(); } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 关闭按钮按下事件 /// /// /// private void btnClose_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; this.Close(); } /// /// KeyDown事件 /// /// /// private void dgvUser_KeyDown(object sender, KeyEventArgs e) { try { // 拷贝单元格文本到剪切板 if (e.KeyData == (Keys.Control | Keys.C)) { if (dgvUser.CurrentRow != null && !string.IsNullOrEmpty(dgvUser.CurrentRow.Cells[dgvUser.CurrentCell.ColumnIndex].EditedFormattedValue + "")) { Clipboard.SetText(dgvUser.CurrentRow.Cells[dgvUser.CurrentCell.ColumnIndex].EditedFormattedValue + ""); } } else if (e.KeyData == Keys.Enter) { Commit(); } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 双击DataGridView窗体,返回选中记录 /// /// /// private void dgvUser_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) { try { // 判断是否是双击列头,如果是双击列头的话,不做任何操作 if (-1 < e.RowIndex && -1 < e.ColumnIndex) { Commit(); } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } #endregion #region 私有方法 /// /// 查询方法 /// private void Search() { // 清空之前的查询结果 this.dgvUser.DataSource = null; // 根据查询条件查询数据源中的数据,并显示 DataTable userTable = this.DataSource.Copy(); userTable.DefaultView.RowFilter = GetFilterExpression(); this.dgvUser.DataSource = userTable.DefaultView.ToTable(); this.dgvUser.Focus(); // 当没有查询结果时,提示无查询结构消息 if (this.dgvUser.RowCount <= 0) { MessageBox.Show(ControlsTips.DK_SearchBox_NoResult, this.Text,MessageBoxButtons.OK,MessageBoxIcon.Warning); this.txtStaffCode.Focus(); this.btnOK.Enabled = false; return; } this.btnOK.Enabled = true; } /// /// 根据画面输入内容拼接过滤条件 /// /// private string GetFilterExpression() { StringBuilder strbFilterExpressions = new StringBuilder(); strbFilterExpressions.Append("(1=1 and " + _whereCondition); if (!string.IsNullOrEmpty(this.txtStaffCode.Text)) { // 用户编码条件 strbFilterExpressions.Append(string.Format(" AND StaffCode LIKE '%{0}%' ", Utility.SelectFilterLike(this.txtStaffCode.Text.Trim()))); } if (!string.IsNullOrEmpty(this.txtStaffName.Text)) { // 用户名称条件 strbFilterExpressions.Append(string.Format(" AND StaffName LIKE '%{0}%' ", Utility.SelectFilterLike(this.txtStaffName.Text.Trim()))); } strbFilterExpressions.Append(")"); return strbFilterExpressions.ToString(); } /// /// 提交时给取得的行赋值 /// private void Commit() { if (this.dgvUser.CurrentCell != null) { this.UserRow = this.dgvUser.GetDataRow(this.dgvUser.CurrentCell.RowIndex); //员工ID this._staffEntity.StaffID = int.Parse(this.UserRow["StaffID"].ToString().Trim()); //员工编码 this._staffEntity.StaffCode = this.UserRow["StaffCode"].ToString().Trim(); //员工姓名 this._staffEntity.StaffName = this.UserRow["StaffName"].ToString().Trim(); //员工状态 this._staffEntity.StaffStatus = int.Parse(this.UserRow["StaffStatus"].ToString().Trim()); //工种 if (!string.IsNullOrEmpty(this.UserRow["Jobs"].ToString())) { this._staffEntity.Jobs = int.Parse(this.UserRow["Jobs"].ToString().Trim()); } this._staffEntity.JobsName = this.UserRow["Jobsname"].ToString().Trim(); //所属部门 if (!string.IsNullOrEmpty(this.UserRow["OrganizationID"].ToString())) { this._staffEntity.OrganizationID = int.Parse(this.UserRow["OrganizationID"].ToString().Trim()); } this._staffEntity.OrganizationName = this.UserRow["Organizationname"].ToString().Trim(); //职务 if (!string.IsNullOrEmpty(this.UserRow["Post"].ToString())) { this._staffEntity.Post = int.Parse(this.UserRow["Post"].ToString().Trim()); } this._staffEntity.PostName = this.UserRow["Postname"].ToString().Trim(); //预计试用期结束日期 if (!string.IsNullOrEmpty(this.UserRow["ExProbationEndDate"].ToString())) { this._staffEntity.ExProbationEndDate = DateTime.Parse(this.UserRow["ExProbationEndDate"].ToString().Trim()); } this._staffEntity.OPTimeStamp = Convert.ToDateTime(this.UserRow["OPTimeStamp"]); //if (!string.IsNullOrEmpty(this.UserRow["UserID"].ToString().Trim())) //{ // this._staffEntity.UserID = int.Parse(this.UserRow["UserID"].ToString().Trim()); //} //this._staffEntity.UserCode = this.UserRow["UserCode"].ToString().Trim(); // this._staffEntity.UserName = this.UserRow["UserName"].ToString().Trim(); this.DialogResult = DialogResult.OK; this.Close(); } } #endregion private void btnClearCondition_Click(object sender, EventArgs e) { this.txtStaffCode.Clear(); this.txtStaffName.Clear(); } } }