某模块

作者: 小兔哈尼 | 来源:发表于2018-09-21 10:52 被阅读0次

    普通模块,主要记录各种按钮功能的实现

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using DevExpress.XtraEditors;
    using Bizcent.Client.Common;
    using Bizcent.IManager.MDM;
    using Bizcent.IManager.Common;
    using Bizcent.Model.MDM;
    using XtraMessageBox = Bizcent.Client.Common.XtraMessageBox;
    using Bizcent.Common.OptReturn;
    using Bizcent.Model.Common;
    using System.Collections;
    using Bizcent.IManager.SMS;
    using System.IO;
    using DevExpress.XtraGrid.Views.Grid.ViewInfo;
    using System.Text.RegularExpressions;
    using DevExpress.XtraGrid;
    
    namespace Bizcent.Client.MDM
    {
        public partial class FrmGoodsRetraCtrlListMainte : BaseForm
        {
            #region 接口和变量
            private IManagerGoodsRetraceMaintenceList GoodsRetraceMaintenceListManager_OMP { get; set; }
            private IManagerAssociate AssociateManager { get; set; }
            private IDictionary<string, string> dicHanye = null;
            private GridAssociate associateSupplierCode;
            private GridAssociate associateSupplierName;
            private GridAssociate associateGoodsCode;
            private GridAssociate associateGoodsName;
            private NodeInfo dbNode = CurrentLogin.Node;
            private NodeInfo OrderCenterNode = CurrentLogin.OrderCenter;
            FormatMaster _PrintTemp = null;
            private IManagerIO IOManager { get; set; }
            private IManagerGoods GoodsManager { get; set; }
            private IManagerSupplier SupplierManager { get; set; }
            private IManagerUser UserManager { get; set; }
            string fileName = string.Empty;
            string userCode = CurrentLogin.CurrentUser.Employee.EmployeeCode;
            string userName = CurrentLogin.CurrentUser.Employee.EmployeeName;
            #endregion
    
            #region 私有方法
            /// <summary>
            /// 读取导入模板
            /// </summary>
            private void LoadImportTemp()
            {
                IList types = IOManager.LoadIOFormatFrm(dbNode, this.Name);
                if (types != null && types.Count != 0)
                {
                    FormatMaster fm = types[0] as FormatMaster;
                    this.bsTencil.DataSource = types;
                    bsTencil.ResetBindings(true);
                    _PrintTemp = fm;
                    this.btnImportTencil.EditValue = fm.FormatCode;
                }
            }
    
            /// <summary>
            /// 权限
            /// </summary>
            /// <returns></returns>
            private bool SetPurview()
            {
                bool allow = true;
                IList purviewList = null;
                try
                {
                    purviewList = UserManager.LoadUserModulePurviews(dbNode, CurrentLogin.CurrentUser.Employee.EmployeeCode, this.Tag.ToString());
                }
                catch (Exception ex)
                {
                    XtraMessageBox.Show(ex);
                    allow = false;
                    return allow;
                }
                if (!purviewList.Contains(OperateInfo.Browse))
                {
                    allow = false;
                    return allow;
                }
                if (!purviewList.Contains(OperateInfo.Maintain))
                {
                    btnAdd.Enabled = false;
                    btnDelete.Enabled = false;
                    btnSave.Enabled = false;
                    btnImportTencil.Enabled = false;
                    btnImport.Enabled = false;
                    btnQuery.Enabled = false;
                    gvMaintenanceList.OptionsBehavior.Editable = false;
                    allow = false;
                    return allow;
                }
                return allow;
            }
            #endregion
    
            #region 按钮事件
    
            //增行
            private void btnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
            {
                try
                {
                    GoodsRetraceMaintenceListInfo currentrow = bsMaintenceList.Current as GoodsRetraceMaintenceListInfo;
                    if (currentrow != null)
                    {
                        if ((currentrow.GoodsCode == null || currentrow.GoodsCode == ""))
                        {
                            XtraMessageBox.ShowErrorMessage("请联想商品信息");
                            return;
                        }
                        if ((currentrow.GoodsName == null || currentrow.GoodsName == ""))
                        {
                            XtraMessageBox.ShowErrorMessage("请联想商品信息");
                            return;
                        }
                        if ((currentrow.SupplierCode == null || currentrow.SupplierCode == ""))
                        {
                            XtraMessageBox.ShowErrorMessage("请联想供应商信息");
                            return;
                        }
                        if ((currentrow.SupplierName == null || currentrow.SupplierName == ""))
                        {
                            XtraMessageBox.ShowErrorMessage("请联想供应商信息");
                            return;
                        }
                        if (currentrow.RemainDDays == null)
                        {
                            XtraMessageBox.ShowErrorMessage("请填写档期提醒天数");
                            return;
                        }
                    }
                    gvMaintenanceList.CloseEditor();
                    GoodsRetraceMaintenceListInfo MaintenceInfo = new GoodsRetraceMaintenceListInfo();
                    MaintenceInfo.IsNew = true;
                    bsMaintenceList.Add(MaintenceInfo);
                    bsMaintenceList.ResetBindings(false);
                    this.gvMaintenanceList.FocusedRowHandle = this.gvMaintenanceList.DataRowCount - 1;
                    gvMaintenanceList.FocusedColumn = gcolSupplierCode;
                    gvMaintenanceList.Columns[1].OptionsColumn.AllowEdit = true;
                    gvMaintenanceList.Columns[2].OptionsColumn.AllowEdit = true;
                    gvMaintenanceList.Columns[3].OptionsColumn.AllowEdit = true;
                    gvMaintenanceList.Columns[4].OptionsColumn.AllowEdit = true;
                    gvMaintenanceList.Columns[5].OptionsColumn.AllowEdit = true;
                    gvMaintenanceList.ShowEditor();
                }
                catch (Exception ex)
                {
    
                    XtraMessageBox.Show(ex);
                }
            }
    
            //删除
            private void btnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
            {
                try
                {
                    labelControl1.Focus();
                    string LogTime = CurrentLogin.SysParam.GetCurrentDate().ToString("yyyyMMddHHmmss");
                    IList<GoodsRetraceMaintenceListInfo> AllItem = bsMaintenceList.List as IList<GoodsRetraceMaintenceListInfo>;
                    int allItemNum = AllItem.Count;
                    if (allItemNum > 0)
                    {
                        if (XtraMessageBox.Show("确认删除?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
                        {
                            IList<GoodsRetraceMaintenceListInfo> deleteItem = new List<GoodsRetraceMaintenceListInfo>();
                            for (int i = 0; i < allItemNum; i++)
                            {
                                if (AllItem[i].IsChoosen == true)
                                {
                                    deleteItem.Add(AllItem[i]);
                                    if (AllItem[i].IsNew == false)
                                    {
                                        #region 记录删除日志
                                        AllItem[i].OperatorTime = LogTime;
                                        AllItem[i].OperatorCode = userCode;
                                        AllItem[i].OperatorName = userName;
                                        AllItem[i].OperatorType = 1;
                                        AllItem[i].OperateContent = "删除供应商编码为" + AllItem[i].SupplierCode.ToString() + "商品编码为"
                                            + AllItem[i].GoodsCode.ToString() + "档期提醒天数为" + AllItem[i].RemainDDays.ToString();
                                        #endregion
                                    }
                                }
                            }
                            if (deleteItem.Count == 0)
                            {
                                XtraMessageBox.ShowWarningMessage("未勾选要删除的数据");
                                return;
                            }
                            OperateReturnInfo Msg = GoodsRetraceMaintenceListManager_OMP.DeleteGoodsRetrace(OrderCenterNode, deleteItem);
                            if (Msg.ReturnCode == OperateCodeEnum.Success)
                            {
                                foreach (GoodsRetraceMaintenceListInfo item in deleteItem)
                                {
                                    bsMaintenceList.Remove(item);
                                }
                            }
                            else
                            {
                                foreach (GoodsRetraceMaintenceListInfo item in deleteItem)
                                {
                                    if (item.IsNew == true)
                                        bsMaintenceList.Remove(item);
                                }
                            }
                            bsMaintenceList.ResetBindings(false);
                        }
                    }
                }
                catch (Exception ex)
                {
    
                    XtraMessageBox.Show(ex);
                }
            }
    
            //查询
            private void btnQuery_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
            {
                try
                {
                    string ConditionGoodsCode = string.Empty;
                    if (!string.IsNullOrEmpty(txtGoodsCode.Text.ToString().Trim()))
                    {
                        ConditionGoodsCode = txtGoodsCode.Text.ToString().Trim();
                    }
                    string ConditionSupplierCode = string.Empty;
                    if (!string.IsNullOrEmpty(txtSupplierCode.Text.ToString().Trim()))
                    {
                        ConditionSupplierCode = txtSupplierCode.Text.ToString().Trim();
                    }
    
                    bsMaintenceList.Clear();
                    IList<GoodsRetraceMaintenceListInfo> TempList = GoodsRetraceMaintenceListManager_OMP.LoadGoodsRetraceMaintenceList(OrderCenterNode, ConditionGoodsCode, ConditionSupplierCode);
                    if (TempList.Count == 0) { return; }
                    IList<GoodsRetraceMaintenceListInfo> QueryList = GoodsRetraceMaintenceListManager_OMP.LoadGoodsNameAndSupplierName(OrderCenterNode, TempList);
                    if (QueryList.Count != 0)
                    {
                        bsMaintenceList.DataSource = QueryList;
                        bsMaintenceList.ResetBindings(false);
                    }
                }
                catch (Exception ex)
                {
    
                    XtraMessageBox.Show(ex);
                }
    
            }
    
            //保存
            private void btnSave_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
            {
                try
                {
                    gvMaintenanceList.CloseEditor();
                    string LogTime = CurrentLogin.SysParam.GetCurrentDate().ToString("yyyyMMddHHmmss");
                    IList<GoodsRetraceMaintenceListInfo> ListToSave = new List<GoodsRetraceMaintenceListInfo>();
                    IList<GoodsRetraceMaintenceListInfo> AllItem = bsMaintenceList.List as IList<GoodsRetraceMaintenceListInfo>;
                    for (int i = 0; i < AllItem.Count; i++)
                    {
                        if (AllItem[i].IsNew == true && !string.IsNullOrEmpty(AllItem[i].GoodsCode) && !string.IsNullOrEmpty(AllItem[i].SupplierCode) && !string.IsNullOrEmpty(AllItem[i].GoodsName) 
                            && !string.IsNullOrEmpty(AllItem[i].SupplierName) && !string.IsNullOrEmpty(AllItem[i].RemainDDays.ToString()))
                        {
                            AllItem[i].IsNew = false;
                            #region 记录增行日志
                            AllItem[i].OperatorTime = LogTime;
                            AllItem[i].OperatorCode = userCode;
                            AllItem[i].OperatorName = userName;
                            AllItem[i].OperatorType = 0;
                            AllItem[i].OperateContent = "增加供应商编码为" + AllItem[i].SupplierCode.ToString() + "商品编码为"
        + AllItem[i].GoodsCode.ToString() + "档期提醒天数为" + AllItem[i].RemainDDays.ToString();
                            ListToSave.Add(AllItem[i]);
                            #endregion
                        }
                        else if (AllItem[i].IsNew == true && (!string.IsNullOrEmpty(AllItem[i].GoodsCode) || !string.IsNullOrEmpty(AllItem[i].SupplierCode) || !string.IsNullOrEmpty(AllItem[i].GoodsName) 
                            || !string.IsNullOrEmpty(AllItem[i].SupplierName) || !string.IsNullOrEmpty(AllItem[i].RemainDDays.ToString())))
                        {
                            XtraMessageBox.ShowWarningMessage("请完善第" + (i + 1) + "行数据后再保存!");
                            return;
                        }
                    }
                    if (ListToSave.Count == 0) { XtraMessageBox.Show("没有可保存的数据"); return; }
                    OperateReturnInfo Msg = GoodsRetraceMaintenceListManager_OMP.SaveGoodsRetraceMaintenceList(OrderCenterNode, ListToSave);
                    if (Msg.ReturnCode == OperateCodeEnum.Success)
                        bsMaintenceList.Clear();
                    XtraMessageBox.Show(Msg);
                }
                catch (Exception ex)
                {
    
                    XtraMessageBox.Show(ex);
                }
    
            }
    
            //导入
            private void btnImport_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
            {
                try
                {
                    if (bsMaintenceList.Count > 0)
                    {
                        GoodsRetraceMaintenceListInfo currentrow = bsMaintenceList.List[bsMaintenceList.Count - 1] as GoodsRetraceMaintenceListInfo;
                        if (currentrow != null)
                        {
                            if ((currentrow.GoodsCode == null || currentrow.GoodsCode == "") && (currentrow.SupplierCode == null || currentrow.SupplierCode == ""))
                            {
                                bsMaintenceList.RemoveAt(bsMaintenceList.Count - 1);
                            }
                            else
                            {
                                if ((currentrow.GoodsCode == null || currentrow.GoodsCode == ""))
                                {
                                    XtraMessageBox.ShowErrorMessage("请联想商品信息");
                                    return;
                                }
                                if ((currentrow.GoodsName == null || currentrow.GoodsName == ""))
                                {
                                    XtraMessageBox.ShowErrorMessage("请联想商品信息");
                                    return;
                                }
                                if ((currentrow.SupplierCode == null || currentrow.SupplierCode == ""))
                                {
                                    XtraMessageBox.ShowErrorMessage("请联想供应商信息");
                                    return;
                                }
                                if ((currentrow.SupplierName == null || currentrow.SupplierName == ""))
                                {
                                    XtraMessageBox.ShowErrorMessage("请联想供应商信息");
                                    return;
                                }
                                if (currentrow.RemainDDays == null)
                                {
                                    XtraMessageBox.ShowErrorMessage("请填写档期提醒天数");
                                    return;
                                }
                            }
                        }
                    }
    
                    if (_PrintTemp == null)
                    {
                        XtraMessageBox.ShowWarningMessage("无导入模板!");
                        return;
                    }
                    if (bsMaintenceList.List.Count > 0)
                    {
                        if (XtraMessageBox.ShowQuestionMessage("是否清空界面数据?") == DialogResult.OK)
                        {
                            bsMaintenceList.Clear();
                        }
                    }
    
                    FormatMaster fm = IOManager.LoadIOFormat(dbNode, this.btnImportTencil.EditValue.ToString());
                    DataTable dt = new EasyImporter(IOManager).File2DataTable(fm.FormatCode);
                    if (dt == null || dt.Rows.Count == 0) return;
                    int ImportNumber = dt.Rows.Count;//导入的文件中数据的条数
                    if (!dt.Columns.Contains("GoodsCode") || !dt.Columns.Contains("SupplierCode"))
                    {
                        XtraMessageBox.ShowErrorMessage("导入必须包含字段:商品编码,供应商编码!");
                        return;
                    }
                    List<string> errorInfos = new List<string>();
                    IList<GoodsRetraceMaintenceListInfo> resultList = new List<GoodsRetraceMaintenceListInfo>();
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        DataRow dr = dt.Rows[i];
                        if (dr == null) continue;
    
                        #region 验证数据有效性
    
                        if (!string.IsNullOrEmpty(dr["GoodsCode"].ToString()))
                        {
                            GoodsInfo goods = GoodsManager.LoadGoods(OrderCenterNode, dr["GoodsCode"].ToString(), new ArrayList());
                            if (goods == null || string.IsNullOrEmpty(goods.GoodsCode))
                            {
                                errorInfos.Add("第" + (i + 1) + "行" + "商品编码不存在!");
                                continue;
                            }
                        }
                        if (!string.IsNullOrEmpty(dr["SupplierCode"].ToString()))
                        {
                            SupplierInfo supplier = SupplierManager.LoadSupplier(OrderCenterNode, dr["SupplierCode"].ToString());
                            if (supplier == null || string.IsNullOrEmpty(supplier.SupplierCode))
                            {
                                errorInfos.Add("第" + (i + 1) + "行" + "供应商编码不存在!");
                                continue;
                            }
                        }
                        if (!string.IsNullOrEmpty(dr["Remainddays"].ToString()))
                        {
                            string remainday = dr["Remainddays"].ToString();
                            string pattern = "^[1-9]\\d*$|0$";
                            if (!Regex.IsMatch(remainday, pattern))
                            {
                                errorInfos.Add("第" + (i + 1) + "行" + "档案提醒天数只能输入非负整数!");
                                continue;
                            }
                        }
                        #endregion
    
                        resultList.Add(new GoodsRetraceMaintenceListInfo()
                        {
                            IsNew = true,
                            GoodsCode = dr["GoodsCode"].ToString(),
                            SupplierCode = dr["SupplierCode"].ToString(),
                            RemainDDays = int.Parse(dr["RemainDDays"].ToString()),
                        });
    
                    }
    
                    for (int i = 0; i < resultList.Count; i++)
                    {
                        string errorInfo = (GoodsRetraceMaintenceListManager_OMP.CheckIsExsited(OrderCenterNode, resultList[i]));
                        if (errorInfo != "")
                        {
                            errorInfos.Add("供应商编码为" + resultList[i].SupplierCode + "商品编码为" + resultList[i].GoodsCode + errorInfo);
                            resultList.Remove(resultList[i]);
                        }
                    }
    
                    #region 导入数据自身去重
                    for (int i = 0; i < resultList.Count; i++)
                    {
                        int CopyNumber = 0;
                        for (int j = 0; j < resultList.Count; j++)
                        {
                            if (resultList[i].GoodsCode == resultList[j].GoodsCode && resultList[i].SupplierCode == resultList[j].SupplierCode)
                            {
                                if (i != j)
                                {
                                    CopyNumber++;
                                    errorInfos.Add("第" + (i + 1) + "行与第" + (j + 1) + "行重复");
                                }
                            }
                        }
                        if (CopyNumber > 0)
                        {
                            resultList.Remove(resultList[i]);
                        }
                    }
                    #endregion
    
                    resultList = GoodsRetraceMaintenceListManager_OMP.LoadGoodsNameAndSupplierName(OrderCenterNode, resultList);//填补/修正 商品名称和供应商名称信息
    
                    #region 界面原有数据和导入数据去重
                    IList<GoodsRetraceMaintenceListInfo> ExistedData = bsMaintenceList.List as IList<GoodsRetraceMaintenceListInfo>;
                    //IList<GoodsRetraceMaintenceListInfo> preImport = new List<GoodsRetraceMaintenceListInfo>();
                    int ExistedNumber = ExistedData.Count;//原先界面数据的条数
                    if (ExistedData != null && ExistedData.Count != 0 && resultList.Count != 0 && resultList != null)
                    {
                        for (int i = 0; i < resultList.Count; i++)
                        {
                            ExistedData.Add(resultList[i]);
                        }
                        for (int i = 0; i < ExistedData.Count; i++)
                        {
                            int sameNum = 0;
                            for (int j = i + 1; j < ExistedData.Count; j++)
                            {
                                if (ExistedData[i].GoodsCode == ExistedData[j].GoodsCode && ExistedData[j].SupplierCode == ExistedData[i].SupplierCode)
                                {
                                    sameNum++;
                                }
                            }
                            if (sameNum > 0)
                            {
                                errorInfos.Add("商品编码为" + ExistedData[i].GoodsCode + "供应商编码为" + ExistedData[i].SupplierCode + "的数据界面上已存在!");
                                ExistedData.RemoveAt(i);
                            }
                        }
                        //for (int i = 0; i < ExistedData.Count; i++)
                        //{
                        //    for (int j = 0; j < resultList.Count; j++)
                        //    {
                        //        if (resultList[j].GoodsCode != ExistedData[i].GoodsCode || resultList[j].SupplierCode != ExistedData[i].SupplierCode)
                        //        {
                        //            errorInfos.Add("商品编码为" + resultList[j].GoodsCode + "供应商编码为" + resultList[j].SupplierCode + "的数据界面上已存在!");
                        //            continue;
                        //        }
                        //        else
                        //        {
                        //            preImport.Add(resultList[j]);
                        //        }
                        //    }
                        //}
                        //if (preImport.Count > 0)
                        //{
                        //    foreach (GoodsRetraceMaintenceListInfo ImportItem in preImport)
                        //    {
                        //        ExistedData.Add(ImportItem);
                        //    }
                        //}
                    }
                    else
                    {
                        foreach (GoodsRetraceMaintenceListInfo ImportItem in resultList)
                        {
                            ExistedData.Add(ImportItem);
                        }
                    }
                    #endregion
    
                    StringBuilder sb = new StringBuilder();
                    sb.Append("导入成功[" + (ExistedData.Count - ExistedNumber) + "]行\r\n导入失败[" + (ImportNumber - (ExistedData.Count - ExistedNumber)) + "]行" + "\r\n");//ExistedData.Count为导入完成后界面的数据总条数
                    if (errorInfos.Count > 0)
                    {
                        sb.Append("以下数据验证失败:" + "\r\n");
                        foreach (var error in errorInfos)
                        {
                            sb.Append(error + "\r\n");
                        }
                        XtraMessageBox.Show(new OperateReturnInfo() { ReturnCode = OperateCodeEnum.Failed, ReturnInfo = sb.ToString() });
                        return;
                    }
                    else
                    { XtraMessageBox.Show("已成功导入" + (ExistedData.Count - ExistedNumber) + "行"); }
                    bsMaintenceList.ResetBindings(false);
                }
                catch (Exception ex)
                {
    
                    XtraMessageBox.Show(ex);
                }
    
            }
    
            //导出
            private void btnExport_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
            {
                try
                {
                    if ((this.gvMaintenanceList != null))
                    {
                        if (this.bsMaintenceList.Count == 0) { return; }
                        FrmExport2CSV frm = new FrmExport2CSV(this.gvMaintenanceList);
                        frm.ShowDialog();
                    }
                }
                catch (Exception ex)
                {
    
                    XtraMessageBox.Show(ex);
                }
            }
    
            //全清
            private void btnAllClear_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
            {
                try
                {
                    if (bsMaintenceList.List.Count > 0)
                    {
                        if (XtraMessageBox.Show("将清除所有商品追溯控制清单数据是否继续?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
                        {
                            bsMaintenceList.Clear();
                            txtGoodsCode.Text = string.Empty;
                            txtSupplierCode.Text = string.Empty;
                            btnQuery_ItemClick(null, null);
                            bsMaintenceList.ResetBindings(false);
    
                            #region 记录全清日志
                            string LogTime = CurrentLogin.SysParam.GetCurrentDate().ToString("yyyyMMddHHmmss");
                            IList<GoodsRetraceMaintenceListInfo> allItemList = GoodsRetraceMaintenceListManager_OMP.LoadGoodsRetraceMaintenceList(OrderCenterNode, "", "");
                            foreach (GoodsRetraceMaintenceListInfo item in allItemList)
                            {
                                item.OperatorTime = LogTime;
                                item.OperatorCode = userCode;
                                item.OperatorName = userName;
                                item.OperatorType = 2;
                                string operateContent = string.Empty;
                                item.OperateContent = "全清" + "供应商编码为" + item.SupplierCode + "商品编码为" + item.GoodsCode + "档期提醒天数" + item.RemainDDays;
                            }
                            #endregion
                            OperateReturnInfo Msg = GoodsRetraceMaintenceListManager_OMP.DeleteAll(OrderCenterNode, allItemList);
                            if (Msg.ReturnCode == OperateCodeEnum.Success)
                            {
                                bsMaintenceList.Clear();
                                XtraMessageBox.Show("数据库数据已全部清空");
                            }
    
                        }
                    }
                }
                catch (Exception ex)
                {
    
                    XtraMessageBox.Show(ex);
                }
            }
    
            //退出
            private void btnExit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
            {
                try
                {
                    int newItem = 0;
                    foreach (GoodsRetraceMaintenceListInfo item in bsMaintenceList.List)
                    {
                        if (item.IsNew) { newItem++; }
                        if (newItem > 0) { break; }
                    }
                    if (newItem > 0)
                    {
                        if (XtraMessageBox.Show("放弃已有数据?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.Cancel)
                        {
                            return;
                        }
                    }
                    this.Close();
                }
                catch (Exception ex)
                {
    
                    XtraMessageBox.Show(ex);
                }
            }
    
            private void bbiChooseall_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
            {
                try
                {
                    foreach (GoodsRetraceMaintenceListInfo item in bsMaintenceList.List)
                    {
                        item.IsChoosen = true;
                    }
                    bsMaintenceList.ResetBindings(false);
                }
                catch (Exception ex)
                {
    
                    XtraMessageBox.Show(ex);
                }
            }
    
            private void bbiChoosenone_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
            {
                try
                {
                    foreach (GoodsRetraceMaintenceListInfo item in bsMaintenceList.List)
                    {
                        item.IsChoosen = false;
                    }
                    bsMaintenceList.ResetBindings(false);
                }
                catch (Exception ex)
                {
    
                    XtraMessageBox.Show(ex);
                }
            }
    
            private void bbiChooseinverse_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
            {
                try
                {
                    foreach (GoodsRetraceMaintenceListInfo item in bsMaintenceList.List)
                    {
                        item.IsChoosen = !item.IsChoosen;
                    }
                    bsMaintenceList.ResetBindings(false);
                }
                catch (Exception ex)
                {
    
                    XtraMessageBox.Show(ex);
                }
            }
            #endregion
    
            #region 窗体加载
            public FrmGoodsRetraCtrlListMainte()
            {
                InitializeComponent();
            }
            private void FrmGoodsRetraCtrlListMainte_Shown(object sender, EventArgs e)
            {
                try
                {
                    if (!SetPurview())
                    {
                        Close();
                        return;
                    }
                    LoadImportTemp();
                    AssociateGoodsInitGoodsCode();
                    AssociateSuppInitGoodsCode();
                    btnAllClear.Enabled = false;
                    this.kdStripToolStripMenuItem.Click += new System.EventHandler(this.kdStripToolStripMenuItem_Click);
                    #region 创建日志文件
                    //string CurrentDate = CurrentLogin.SysParam.GetCurrentDate().ToString("yyyyMMdd");
                    //string Path = "D:\\";
                    //string fileName = Path + CurrentDate + ".txt";
                    //if (!File.Exists(fileName))
                    //{
                    //    StreamWriter sw = File.CreateText(fileName);
                    //    sw.WriteLine("/*商品追溯控制清单维护日志*/ ");
                    //    sw.WriteLine("/操作人编码/操作人名称/操作时间/操作类型/供应商编码/商品编码/档案提醒天数");
                    //    sw.Flush();
                    //    sw.Close();
                    //}
                    #endregion
                }
                catch (Exception ex)
                {
    
                    XtraMessageBox.Show(ex);
                }
            }
            #endregion
    
            #region 联想
            private void AssociateGoodsInitGoodsCode()
            {
                associateGoodsCode = new GridAssociate(OrderCenterNode, "Code", AssociateManager, AssociateModeEnum.GoodsCode, null);
                associateGoodsCode.BaseAssociate.Associated += new AssociateBase.AssociateEventHandler(BaseAssociate_Associated);
                gcolGoodsCode.ColumnEdit = associateGoodsCode;
                associateGoodsName = new GridAssociate(OrderCenterNode, "Name", AssociateManager, AssociateModeEnum.GoodsName, null);
                associateGoodsName.BaseAssociate.Associated += new AssociateBase.AssociateEventHandler(BaseAssociate_Associated);
                gcolGoodsName.ColumnEdit = associateGoodsName;
            }
    
            void BaseAssociate_Associated(Bizcent.Client.Common.AssociateControl.AssociateEventArgs e)
            {
                try
                {
                    if (e.CurrentState == AssociateStateEnum.Normal)
                    {
                        gvMaintenanceList.CloseEditor();
                        DataRow dr = e.CurrentDataRow;
                        GoodsRetraceMaintenceListInfo MaintenceInfo = bsMaintenceList.Current as GoodsRetraceMaintenceListInfo;
                        GoodsRetraceMaintenceListInfo item = new GoodsRetraceMaintenceListInfo();
                        if (MaintenceInfo == null) { return; }
                        if (MaintenceInfo.IsNew == false)
                        {
                            XtraMessageBox.ShowWarningMessage("已有数据不允许修改");
                            return;
                        }
                        if (dr[0].ToString() != "" && MaintenceInfo.SupplierCode != "")
                        {
                            item.SupplierCode = MaintenceInfo.SupplierCode;
                            item.GoodsCode = dr[0].ToString();
                            string errorInfo = GoodsRetraceMaintenceListManager_OMP.CheckIsExsited(OrderCenterNode, item);
                            if (errorInfo != "")
                            {
                                XtraMessageBox.ShowErrorMessage(errorInfo);
                                return;
                            }
                        }
    
                        IList<GoodsRetraceMaintenceListInfo> allItemList = bsMaintenceList.List as IList<GoodsRetraceMaintenceListInfo>;
                        int sameNum = 0;
                        foreach (GoodsRetraceMaintenceListInfo grmi in allItemList)
                        {
                            if (!string.IsNullOrEmpty(grmi.GoodsCode.ToString()) && !string.IsNullOrEmpty(grmi.SupplierCode.ToString()))
                            {
                                if (MaintenceInfo.SupplierCode == grmi.SupplierCode && dr[0].ToString() == grmi.GoodsCode && dr[1].ToString() == grmi.GoodsName && MaintenceInfo.SupplierName == grmi.SupplierName)
                                {
                                    sameNum++;
                                }
                            }
                        }
                        if (sameNum > 0)
                        {
                            XtraMessageBox.ShowErrorMessage("无法输入重复数据!");
                            return;
                        }
                        MaintenceInfo.GoodsCode = dr[0].ToString();
                        MaintenceInfo.GoodsName = dr[1].ToString();
    
                        associateGoodsCode.CurrentValue = dr[0].ToString();
                        associateGoodsName.CurrentValue = dr[1].ToString();
                        bsMaintenceList.ResetBindings(false);
                        gvMaintenanceList.FocusedColumn = gcolRemainDDays;
                        gvMaintenanceList.ShowEditor();
                    }
                }
                catch (Exception ex)
                { Bizcent.Client.Common.XtraMessageBox.Show(ex); }
            }
    
            private void AssociateSuppInitGoodsCode()
            {
                associateSupplierCode = new GridAssociate(OrderCenterNode, "Code", AssociateManager, AssociateModeEnum.SuppCode, null);
                associateSupplierCode.BaseAssociate.Associated += new AssociateBase.AssociateEventHandler(SuppBaseAssociate_Associated);
                gcolSupplierCode.ColumnEdit = associateSupplierCode;
                associateSupplierName = new GridAssociate(OrderCenterNode, "Name", AssociateManager, AssociateModeEnum.SuppName, null);
                associateSupplierName.BaseAssociate.Associated += new AssociateBase.AssociateEventHandler(SuppBaseAssociate_Associated);
                gcolSupplierName.ColumnEdit = associateSupplierName;
            }
    
            void SuppBaseAssociate_Associated(Bizcent.Client.Common.AssociateControl.AssociateEventArgs e)
            {
                try
                {
                    gvMaintenanceList.CloseEditor();
                    if (e.CurrentState == AssociateStateEnum.Normal)
                    {
                        DataRow dr = e.CurrentDataRow;
                        GoodsRetraceMaintenceListInfo MaintenceInfo = bsMaintenceList.Current as GoodsRetraceMaintenceListInfo;
                        GoodsRetraceMaintenceListInfo item = new GoodsRetraceMaintenceListInfo();
                        if (MaintenceInfo == null) { return; }
                        if (MaintenceInfo.IsNew == false)
                        {
                            XtraMessageBox.ShowWarningMessage("已有数据不允许修改");
                            return;
                        }
                        if (dr[0].ToString() != "" && MaintenceInfo.GoodsCode != "")
                        {
                            item.SupplierCode = dr[0].ToString();
                            item.GoodsCode = MaintenceInfo.GoodsCode;
                            string errorInfo = GoodsRetraceMaintenceListManager_OMP.CheckIsExsited(OrderCenterNode, item);
                            if (errorInfo != "")
                            {
                                XtraMessageBox.ShowErrorMessage(errorInfo);
                                return;
                            }
                        }
    
                        IList<GoodsRetraceMaintenceListInfo> allItemList = bsMaintenceList.List as IList<GoodsRetraceMaintenceListInfo>;
                        int sameNum = 0;
                        foreach (GoodsRetraceMaintenceListInfo grmi in allItemList)
                        {
                            if (!string.IsNullOrEmpty(grmi.GoodsCode.ToString()) && !string.IsNullOrEmpty(grmi.SupplierCode.ToString()))
                            {
                                if (dr[0].ToString() == grmi.SupplierCode && MaintenceInfo.GoodsCode == grmi.GoodsCode && dr[1].ToString() == grmi.SupplierName && MaintenceInfo.GoodsName == grmi.GoodsName)
                                {
                                    sameNum++;
                                }
                            }
                        }
                        if (sameNum > 0)
                        {
                            XtraMessageBox.ShowErrorMessage("无法输入重复数据!");
                            return;
                        }
                        MaintenceInfo.SupplierCode = dr[0].ToString();
                        MaintenceInfo.SupplierName = dr[1].ToString();
    
                        associateSupplierCode.CurrentValue = dr[0].ToString();
                        associateSupplierName.CurrentValue = dr[1].ToString();
                        bsMaintenceList.ResetBindings(false);
                        gvMaintenanceList.FocusedColumn = gcolGoodsCode;
                        gvMaintenanceList.ShowEditor();
                    }
                }
                catch (Exception ex)
                { Bizcent.Client.Common.XtraMessageBox.Show(ex); }
            }
            #endregion
    
            #region 窗体和表格事件
    
            private void gvMaintenanceList_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
            {
                try
                {
                    if (this.gvMaintenanceList.FocusedRowHandle < this.bsMaintenceList.Count - 1)
                    {
                        int gvMaintenanceListCount = bsMaintenceList.Count;
                        IList<GoodsRetraceMaintenceListInfo> List = bsMaintenceList.List as IList<GoodsRetraceMaintenceListInfo>;
                        if (List.Count != 0)
                        {
                            if ((List[gvMaintenanceListCount - 1].GoodsCode == null || List[gvMaintenanceListCount - 1].SupplierCode == ""))
                            {
                                bsMaintenceList.Remove(List[gvMaintenanceListCount - 1]);
                            }
                            gvMaintenanceList.CloseEditor();
                            GoodsRetraceMaintenceListInfo currentRow = bsMaintenceList.Current as GoodsRetraceMaintenceListInfo;
                            if (currentRow.IsNew == false)
                            {
                                gvMaintenanceList.Columns[1].OptionsColumn.AllowEdit = false;
                                gvMaintenanceList.Columns[2].OptionsColumn.AllowEdit = false;
                                gvMaintenanceList.Columns[3].OptionsColumn.AllowEdit = false;
                                gvMaintenanceList.Columns[4].OptionsColumn.AllowEdit = false;
                                gvMaintenanceList.Columns[5].OptionsColumn.AllowEdit = false;
                            }
                            else
                            {
                                gvMaintenanceList.Columns[1].OptionsColumn.AllowEdit = true;
                                gvMaintenanceList.Columns[2].OptionsColumn.AllowEdit = true;
                                gvMaintenanceList.Columns[3].OptionsColumn.AllowEdit = true;
                                gvMaintenanceList.Columns[4].OptionsColumn.AllowEdit = true;
                                gvMaintenanceList.Columns[5].OptionsColumn.AllowEdit = true;
                            }
                        }
                        GoodsRetraceMaintenceListInfo preRow = new GoodsRetraceMaintenceListInfo();
                        if (e.PrevFocusedRowHandle != GridControl.InvalidRowHandle && bsMaintenceList.Current != null
                        && bsMaintenceList.Count != 0 && bsMaintenceList.Count > e.PrevFocusedRowHandle)
                        {
                            preRow = bsMaintenceList[e.PrevFocusedRowHandle] as GoodsRetraceMaintenceListInfo;
                        }
                        else
                        { return; }
                        if (string.IsNullOrEmpty(preRow.GoodsCode))
                        {
                            XtraMessageBox.ShowWarningMessage("商品信息不能为空!");
                            this.gvMaintenanceList.FocusedColumn = this.gcolGoodsCode;
                            this.gvMaintenanceList.FocusedRowHandle = e.PrevFocusedRowHandle;
                            return;
                        }
                        if (string.IsNullOrEmpty(preRow.GoodsName))
                        {
                            XtraMessageBox.ShowWarningMessage("商品信息不能为空!");
                            this.gvMaintenanceList.FocusedColumn = this.gcolGoodsCode;
                            this.gvMaintenanceList.FocusedRowHandle = e.PrevFocusedRowHandle;
                            return;
                        }
                        if (string.IsNullOrEmpty(preRow.SupplierCode))
                        {
                            XtraMessageBox.ShowWarningMessage("供应商信息不能为空!");
                            this.gvMaintenanceList.FocusedColumn = this.gcolSupplierCode;
                            this.gvMaintenanceList.FocusedRowHandle = e.PrevFocusedRowHandle;
                            return;
                        }
                        if (string.IsNullOrEmpty(preRow.SupplierName))
                        {
                            XtraMessageBox.ShowWarningMessage("供应商信息不能为空!");
                            this.gvMaintenanceList.FocusedColumn = this.gcolSupplierCode;
                            this.gvMaintenanceList.FocusedRowHandle = e.PrevFocusedRowHandle;
                            return;
                        }
                        if (string.IsNullOrEmpty(preRow.RemainDDays.ToString()))
                        {
                            XtraMessageBox.ShowWarningMessage("档期提醒天数信息不能为空!");
                            this.gvMaintenanceList.FocusedColumn = this.gcolRemainDDays;
                            this.gvMaintenanceList.FocusedRowHandle = e.PrevFocusedRowHandle;
                            return;
                        }
                    }
                    else
                    {
                        gvMaintenanceList.CloseEditor();
                        GoodsRetraceMaintenceListInfo currentRow = bsMaintenceList.Current as GoodsRetraceMaintenceListInfo;
                        if (currentRow.IsNew == false)
                        {
                            gvMaintenanceList.Columns[1].OptionsColumn.AllowEdit = false;
                            gvMaintenanceList.Columns[2].OptionsColumn.AllowEdit = false;
                            gvMaintenanceList.Columns[3].OptionsColumn.AllowEdit = false;
                            gvMaintenanceList.Columns[4].OptionsColumn.AllowEdit = false;
                            gvMaintenanceList.Columns[5].OptionsColumn.AllowEdit = false;
                        }
                        else
                        {
                            gvMaintenanceList.Columns[1].OptionsColumn.AllowEdit = true;
                            gvMaintenanceList.Columns[2].OptionsColumn.AllowEdit = true;
                            gvMaintenanceList.Columns[3].OptionsColumn.AllowEdit = true;
                            gvMaintenanceList.Columns[4].OptionsColumn.AllowEdit = true;
                            gvMaintenanceList.Columns[5].OptionsColumn.AllowEdit = true;
                        }
                    }
                }
                catch (Exception ex)
                {
    
                    XtraMessageBox.Show(ex);
                }
            }
    
            private void repositoryItemCheckEdit1_EditValueChanged(object sender, EventArgs e)
            {
                try
                {
                    CheckEdit check = sender as CheckEdit;
                    GoodsRetraceMaintenceListInfo CurrentRow = bsMaintenceList.Current as GoodsRetraceMaintenceListInfo;
                    if (CurrentRow == null) return;
                    CurrentRow.IsChoosen = !CurrentRow.IsChoosen;
                    bsMaintenceList.ResetBindings(false);
                }
                catch (Exception ex)
                {
    
                    XtraMessageBox.Show(ex);
                }
            }
    
            private void gvMaintenanceList_MouseUp(object sender, MouseEventArgs e)
            {
                try
                {
                    gvMaintenanceList.CloseEditor();
                    GridHitInfo hInfo = gvMaintenanceList.CalcHitInfo(new Point(e.X, e.Y));
                    if (hInfo.HitTest.ToString() == "EmptyRow")
                    {
                        btnAdd_ItemClick(null, null);
                    }
                    gvMaintenanceList.ShowEditor();
                }
                catch (Exception ex)
                {
    
                    XtraMessageBox.Show(ex);
                }
    
            }
    
            private void gvMaintenanceList_KeyDown(object sender, KeyEventArgs e)
            {
                try
                {
                    if (e.KeyCode == Keys.Enter)
                    {
                        switch (gvMaintenanceList.FocusedColumn.Name)
                        {
                            case "gcolRemainDDays":
                                if (gvMaintenanceList.FocusedRowHandle == bsMaintenceList.Count - 1)
                                {
                                    GoodsRetraceMaintenceListInfo CurrentRow = bsMaintenceList.Current as GoodsRetraceMaintenceListInfo;
                                    if (CurrentRow.RemainDDays != 0)
                                    { btnAdd_ItemClick(null, null); }
                                }
                                break;
                            default:
                                break;
                        }
                    }
                    else if (e.KeyCode == Keys.Down)
                    {
                        if (gvMaintenanceList.FocusedRowHandle == bsMaintenceList.Count - 1)
                        {
                            btnAdd_ItemClick(null, null);
                        }
                    }
                }
                catch (Exception ex)
                {
    
                    XtraMessageBox.Show(ex);
                }
            }
    
            private void kdStripToolStripMenuItem_Click(object sender, EventArgs e)
            {
    
                btnAllClear.Enabled = true;
    
            }
    
            private void bbiOption_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
            {
                CustomColumnSelectForm f = new CustomColumnSelectForm(this.gvMaintenanceList);
                f.ShowDialog();
            }
    
            //protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
            //{
            //    if (keyData == (Keys.Control | Keys.F12))
            //    {
            //        btnAllClear.Enabled = true;
            //        return true;
            //    }
            //    return base.ProcessCmdKey(ref msg, keyData);
            //}
    
            #endregion
    
        }
    }
    

    相关文章

      网友评论

          本文标题:某模块

          本文链接:https://www.haomeiwen.com/subject/ufranftx.html