/******************************************************************************* * Copyright(c) 2014 dongke All rights reserved. / Confidential * 类的信息: * 1.程序名称:F_MST_0801.cs * 2.功能描述:商标管理 * 编辑履历: * 作者 日期 版本 修改内容 * 王鑫 2015/11/12 1.00 新建 *******************************************************************************/ using System; using System.Data; using System.Windows.Forms; using Dongke.IBOSS.PRD.Basics.BaseResources; using Dongke.IBOSS.PRD.Basics.BaseControls; using Dongke.IBOSS.PRD.Client.CommonModule; using Dongke.IBOSS.PRD.Basics.Library; using Dongke.IBOSS.PRD.WCF.Proxys; using Dongke.IBOSS.PRD.Client.DataModels; namespace Dongke.IBOSS.PRD.Client.SystemModule { /// /// 商标管理 /// public partial class F_MST_0801 : FormBase { #region 成员变量 // 窗体的单例模式 private static F_MST_0801 _instance; // 工种数据源 private DataTable _dtSourse; #endregion #region 构造函数 /// /// 构造函数 /// public F_MST_0801() { InitializeComponent(); // 窗口标题 this.Text = FormTitles.F_MST_0801; // 按钮 this.btnSave.Text = ButtonText.BTN_SAVE; this.btnCancel.Text = ButtonText.BTN_CLOSE; } #endregion #region 单例模式 /// /// 单例模式,防止重复创建窗体 /// public static F_MST_0801 Instance { get { if (_instance == null) { _instance = new F_MST_0801(); } return _instance; } } #endregion #region 事件 /// /// 窗体加载 /// /// /// private void F_MST_0801_Load(object sender, System.EventArgs e) { try { // 设置datagridview不自动创建列 this.dgvDataLogo.AutoGenerateColumns = false; // 加载商标管理数据 this.GetAllLogo(); this.RefreshDataGridViewData(); this.dgvDataLogo.IsSetInputColumnsColor = true; FormPermissionManager.FormPermissionControl(this.Name, this, LogInUserInfo.CurrentUser.CurrentUserEntity.UserRightData, LogInUserInfo.CurrentUser.CurrentUserEntity.FunctionData); this.dgvDataLogo.SelectionMode = DataGridViewSelectionMode.RowHeaderSelect; BindReadOnly(); } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } private void BindReadOnly() { foreach (DataGridViewRow row in this.dgvDataLogo.Rows) { if (row.Cells["AddFlag"].Value != null && row.Cells["AddFlag"].Value.ToString() == "0") { row.Cells["LogoCode"].ReadOnly = true; } } this.dgvDataLogo.IsSetInputColumnsColor = true; } /// /// 点击右上角关闭按钮 /// /// /// private void F_MST_0801_FormClosing(object sender, FormClosingEventArgs e) { try { // 关闭的时候需要判断是否有数据变化 if (DataJudge.IsChange((DataTable)this.dgvDataLogo.DataSource)) { DialogResult dialogResult = MessageBox.Show(Messages.MSG_CMN_Q001, this.Text, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); // 保存改变的数据 if (dialogResult == DialogResult.Yes) { DataGridViewRow row = dgvDataLogo.CurrentRow; if (!row.IsNewRow) { // 判断商标编码不能为空 if (row.Cells["LogoCode"].Value == null || string.IsNullOrEmpty(row.Cells["LogoCode"].Value + string.Empty)) { // 错误消息 MessageBox.Show(string.Format(Messages.MSG_CMN_W005, "商标编码"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); e.Cancel = true; this.btnSave.Enabled = false; return; } // 判断商标名称不能为空 if (row.Cells["LogoName"].Value == null || string.IsNullOrEmpty(row.Cells["LogoName"].Value + string.Empty)) { // 单元格的错误消息 MessageBox.Show(string.Format(Messages.MSG_CMN_W005, "商标名称"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); e.Cancel = true; this.btnSave.Enabled = false; return; } } // 异步处理 object result = DoAsync(new BaseAsyncMethod(SaveLogoData)); if (result.Equals(Constant.INT_IS_ONE)) { MessageBox.Show(string.Format(Messages.MSG_CMN_W006, "商标编码"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); e.Cancel = true; this.btnSave.Enabled = false; return; } // 如果保存出错,不关闭窗体 if (Convert.ToInt32(result) > Constant.INT_IS_ZERO) { e.Cancel = true; MessageBox.Show(string.Format(Messages.MSG_CMN_I001, "商标", "保存"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); this.btnSave.Enabled = false; this._dtSourse.AcceptChanges(); } else if (Convert.ToInt32(result) == (int)Constant.RETURN_IS_EXIST) { e.Cancel = true; MessageBox.Show(string.Format(Messages.MSG_CMN_W006, "商标名称"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { e.Cancel = true; MessageBox.Show(string.Format(Messages.MSG_CMN_W001, "商标", "保存"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else if (dialogResult == DialogResult.Cancel) { e.Cancel = true; } } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 窗体关闭后,释放单例资源 /// /// /// private void F_MST_0801_FormClosed(object sender, FormClosedEventArgs e) { _instance = null; } /// /// 选中新行时,设置默认值 /// /// /// private void dgvDataJobs_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e) { // 设置有效属性为选中状态 e.Row.Cells["ValueFlag"].Value = Constant.INT_IS_ONE; e.Row.Cells["DisplayNo"].Value = e.Row.Index + 1; } /// /// 工种管理信息输入格式控制 /// /// /// private void dgvDataJobs_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { try { TextBox tb = (e.Control as TextBox); if (tb != null) { string colName = this.dgvDataLogo.Columns[this.dgvDataLogo.CurrentCell.ColumnIndex].Name; if ("LogoCode" == colName) { tb.CharacterCasing = CharacterCasing.Upper; } else if ("TagCode" == colName) { tb.KeyPress += tb_KeyPress; tb.CharacterCasing = CharacterCasing.Upper; } else { tb.CharacterCasing = CharacterCasing.Normal; } } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } void tb_KeyPress(object sender, KeyPressEventArgs e) { if (((e.KeyChar < 'a' || e.KeyChar > 'z') && (e.KeyChar < 'A' || e.KeyChar > 'Z') && (e.KeyChar < '0' || e.KeyChar > '9')) && !char.IsControl(e.KeyChar)) { e.Handled = true; } } /// /// 单元格验证,检查 /// /// /// private void dgvDataJobs_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) { try { if (this.ActiveControl != null && "btnClose".Equals(this.ActiveControl.Name)) { return; } if (!dgvDataLogo.CurrentRow.IsNewRow) { DataGridViewRow rowItem = dgvDataLogo.Rows[e.RowIndex]; DataGridViewColumn columnItem = dgvDataLogo.Columns[e.ColumnIndex]; object columnvalue = rowItem.Cells[columnItem.Name].EditedFormattedValue; // 商标编码 if ("LogoCode".Equals(columnItem.Name)) { if (columnvalue != null && !string.IsNullOrEmpty(columnvalue + string.Empty)) { if (!Utility.IsUnique(columnvalue.ToString(), dgvDataLogo.CurrentRow.Index, this.dgvDataLogo, "LogoCode")) { // 单元格的错误消息 this.dgvDataLogo.CurrentRow.ErrorText = string.Format( Messages.MSG_CMN_W006, "商标编码"); e.Cancel = true; this.btnSave.Enabled = false; return; } } } // 清除单元格的错误消息 this.dgvDataLogo.CurrentRow.ErrorText = string.Empty; BindReadOnly(); } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 根据数据是否变化,设置保存按钮的可用状态 /// /// /// private void dgvDataJobs_CellValidated(object sender, DataGridViewCellEventArgs e) { try { this.SetSaveBtnStatus(); BindReadOnly(); } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 行校验 /// /// /// private void dgvDataJobs_RowValidating(object sender, DataGridViewCellCancelEventArgs e) { try { // 按Esc键时不校验 if (!dgvDataLogo.IsCurrentRowDirty) { this.dgvDataLogo.IsSetInputColumnsColor = true; return; } if (this.ActiveControl != null && "btnClose".Equals(this.ActiveControl.Name)) { // 清除单元格的错误消息 this.dgvDataLogo.CurrentRow.ErrorText = string.Empty; return; } DataGridViewRow row = dgvDataLogo.CurrentRow; if (!row.IsNewRow) { // 判断商标编码能为空 if (row.Cells["LogoCode"].Value == null || string.IsNullOrEmpty(row.Cells["LogoCode"].Value + string.Empty)) { // 单元格的错误消息 this.dgvDataLogo.CurrentRow.ErrorText = string.Format(Messages.MSG_CMN_W005, "商标编码"); e.Cancel = true; this.btnSave.Enabled = false; return; } // 判断商标名称不能为空 if (row.Cells["LogoName"].Value == null || string.IsNullOrEmpty(row.Cells["LogoName"].Value + string.Empty)) { // 单元格的错误消息 this.dgvDataLogo.CurrentRow.ErrorText = string.Format(Messages.MSG_CMN_W005, "商标名称"); e.Cancel = true; this.btnSave.Enabled = false; return; } // 清除单元格的错误消息 this.dgvDataLogo.CurrentRow.ErrorText = string.Empty; } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 根据数据是否变化,设置保存按钮的可用状态 /// /// /// private void dgvDataJobs_RowValidated(object sender, DataGridViewCellEventArgs e) { try { this.SetSaveBtnStatus(); } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 根据是否选中停用数据,加载数据 /// /// /// private void chkDisplayDisabledData_CheckedChanged(object sender, EventArgs e) { try { this.RefreshDataGridViewData(); this.SetSaveBtnStatus(); BindReadOnly(); this.dgvDataLogo.IsSetInputColumnsColor = true; } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 单元格输入时,给自动生成的行设置颜色 /// /// /// private void dgvDataJobs_UserAddedRow(object sender, DataGridViewRowEventArgs e) { this.dgvDataLogo.IsSetInputColumnsColor = true; } /// /// 保存工种数据 /// /// /// private void btnSave_Click(object sender, EventArgs e) { try { int results = Conservation(); if (results == Constant.INT_IS_ONE) { MessageBox.Show(string.Format(Messages.MSG_CMN_W005, "商标编码"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); this.btnSave.Enabled = false; return; } if (results == Constant.INT_IS_TWO) { MessageBox.Show(string.Format(Messages.MSG_CMN_W005, "商标名称"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); this.btnSave.Enabled = false; return; } if (results == Constant.INT_IS_TWO) { MessageBox.Show(string.Format(Messages.MSG_CMN_W005, "显示顺序"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); this.btnSave.Enabled = false; return; } if (results == Constant.INT_IS_THREE) { MessageBox.Show("只能允许有一个默认商标", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); this.btnSave.Enabled = false; return; } if (results == Constant.INT_IS_FOUR) { MessageBox.Show("请选择一个默认商标", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); this.btnSave.Enabled = false; return; } // 异步处理 this.btnSave.Enabled = false; this.btnCancel.Enabled = false; int result = (int)DoAsync(new BaseAsyncMethod(SaveLogoData)); this.btnSave.Enabled = true; this.btnCancel.Enabled = true; // 工种数据保存成功 if (result == Constant.INT_IS_TWO) { MessageBox.Show(string.Format(Messages.MSG_CMN_I001, "商标", "保存"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); // 加载工种管理数据 this._dtSourse.AcceptChanges(); foreach (DataRow r in this._dtSourse.Rows) { r["AddFlag"] = 0; } this._dtSourse.AcceptChanges(); this.btnSave.Enabled = false; } else if (result == Constant.INT_IS_ONE) { MessageBox.Show(string.Format(Messages.MSG_CMN_W006, "商标编码"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { MessageBox.Show(string.Format(Messages.MSG_CMN_W001, "商标", "保存"), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } foreach (DataGridViewRow row in this.dgvDataLogo.Rows) { if (row.Cells["LogoCode"].Value != null) { row.Cells["LogoCode"].ReadOnly = true; } } this.dgvDataLogo.IsSetInputColumnsColor = true; } catch (Exception ex) { this.btnSave.Enabled = true; this.btnCancel.Enabled = true; // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 设置排序时列表的颜色 /// private void dgvDataJobs_Sorted(object sender, EventArgs e) { BindReadOnly(); this.dgvDataLogo.IsSetInputColumnsColor = true; } /// /// 点击关闭按钮 /// /// /// private void btnCancel_Click(object sender, EventArgs e) { this.Close(); } #endregion #region 私有方法 /// /// 加载工种管理数据 /// /// private DataSet GetJobsData() { try { byte valueFlag = Convert.ToByte(chkDisplayDisabledData.Checked); return SystemModuleProxy.Service.GetJobsData(valueFlag); } catch (Exception ex) { throw ex; } } /// /// 获取工种管理的全部数据 /// /// 用户信息 /// /// /// 2014.10.30 任海 新建 /// private void GetAllLogo() { try { DataSet dsResultAccount = (DataSet)DoAsync(new BaseAsyncMethod(() => { return SystemModuleProxy.Service.GetAllLogoInfo(); })); this._dtSourse = dsResultAccount.Tables[0]; } catch (Exception ex) { throw ex; } } /// /// 得到工种信息 /// /// private void RefreshDataGridViewData() { try { if (this.chkDisplayDisabledData.Checked == false) { this._dtSourse.DefaultView.RowFilter = "ValueFlag=1"; } else { this._dtSourse.DefaultView.RowFilter = null; } this.dgvDataLogo.DataSource = _dtSourse; this.btnSave.Enabled = false; } catch (Exception ex) { throw ex; } } /// /// 保存工种数据 /// /// 是否成功 private object SaveLogoData() { try { // 获取当前datatJobsData数据源 DataTable datatJobsData = (DataTable)this.dgvDataLogo.DataSource; int result = SystemModuleProxy.Service.SaveLogoData(datatJobsData); return result; } catch (Exception ex) { throw ex; } } /// /// 设置保存按钮的可用状态 /// private void SetSaveBtnStatus() { if (DataJudge.IsChange((DataTable)this.dgvDataLogo.DataSource)) { this.btnSave.Enabled = true; } else { this.btnSave.Enabled = false; } } /// /// 保存时单元格必输项不能为空 /// private int Conservation() { int isConservation = Constant.INT_IS_ZERO; DataTable datatJobsData = (DataTable)this.dgvDataLogo.DataSource; foreach (DataRow drproductionData in datatJobsData.Rows) { if (drproductionData["LogoCode"].ToString() == string.Empty) { isConservation = Constant.INT_IS_ONE; break; } if (drproductionData["LogoName"].ToString() == string.Empty) { isConservation = Constant.INT_IS_TWO; break; } if (drproductionData["displayno"].ToString() == string.Empty) { isConservation = Constant.INT_IS_THREE; break; } } if (isConservation == 0) { DataRow[] drLength = datatJobsData.Select("valueflag=1 and isdefault=1"); if (drLength.Length > 1) { isConservation = Constant.INT_IS_THREE; } else if (drLength.Length == 0) { isConservation = Constant.INT_IS_FOUR; } } return isConservation; } #endregion private void dgvDataLogo_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex != -1) { if (this.dgvDataLogo.CurrentCell != null) { DataGridViewRow rowItem = dgvDataLogo.Rows[e.RowIndex]; DataGridViewColumn columnItem = dgvDataLogo.Columns[e.ColumnIndex]; object columnvalue = rowItem.Cells[columnItem.Name].EditedFormattedValue; //if ("ValueFlag".Equals(columnItem.Name)) //{ int checkValue = Convert.ToInt32(this.dgvDataLogo.Rows[e.RowIndex].Cells["isdefault"].EditedFormattedValue); if (checkValue == Constant.INT_IS_ONE) { SetCheckBoxSelected(checkValue, e.RowIndex); } else { this.dgvDataLogo.Rows[e.RowIndex].Cells["isdefault"].Value = 0; } // } } } } /// /// 清空以前所选中的缺陷 /// /// private void SetCheckBoxSelected(int checkValue, int rowIndex) { foreach (DataGridViewRow row in this.dgvDataLogo.Rows) { if(row.Index==rowIndex) { row.Cells["isdefault"].Value = 1; } else { row.Cells["isdefault"].Value = 0; } //if (row.Cells["AddFlag"].Value != null && row.Cells["AddFlag"].Value.ToString() == "0") //{ // row.Cells["LogoCode"].ReadOnly = true; //} } this.dgvDataLogo.IsSetInputColumnsColor = true; //DataTable dtOrgDataSource = this.dgvDataLogo.DataSource as DataTable; //for (int i = 0; i < dtOrgDataSource.Rows.Count; i++) //{ // if (i == rowIndex) // { // dtOrgDataSource.Rows[i]["isdefault"] = 1; // } // else // { // dtOrgDataSource.Rows[i]["isdefault"] = 0; // } //} } } }