/// <summary> /// 控件变量初始化方法 /// </summary> private void InitializeObject() { wnToolBarMain = this.AllObjects["wnToolBarMain"] as WnToolBar; tsLabelYear = this.AllObjects["tsLabelYear"] as WnTbLabel; tsComboYear = this.AllObjects["tsComboYear"] as WnCombo; tsLabelMonth = this.AllObjects["tsLabelMonth"] as WnTbLabel; tsComboMonth = this.AllObjects["tsComboMonth"] as WnCombo; tsButtonLoad = this.AllObjects["tsButtonLoad"] as WnTbButton; tsSeparator1 = this.AllObjects["tsSeparator1"] as WnSeparator; tsButtonCarry = this.AllObjects["tsButtonCarry"] as WnTbButton; tsSeparator2 = this.AllObjects["tsSeparator2"] as WnSeparator; tsButtonAppend = this.AllObjects["tsButtonAppend"] as WnTbButton; tsButtonImport = this.AllObjects["tsButtonImport"] as WnTbButton; tsSeparator3 = this.AllObjects["tsSeparator3"] as WnSeparator; tsButtonSeal = this.AllObjects["tsButtonSeal"] as WnTbButton; tsSeparator4 = this.AllObjects["tsSeparator4"] as WnSeparator; tsButtonSave = this.AllObjects["tsButtonSave"] as WnTbButton; tsSeparator5 = this.AllObjects["tsSeparator5"] as WnSeparator; tsButtonAudit = this.AllObjects["tsButtonAudit"] as WnTbButton; tsButtonUnAudit = this.AllObjects["tsButtonUnAudit"] as WnTbButton; tsSeparator6 = this.AllObjects["tsSeparator6"] as WnSeparator; tsButtonHelp = this.AllObjects["tsButtonHelp"] as WnTbButton; tsSeparator7 = this.AllObjects["tsSeparator7"] as WnSeparator; tsButtonExit = this.AllObjects["tsButtonExit"] as WnTbButton; tsLabelYsh = this.AllObjects["tsLabelYsh"] as WnTbLabel; tsSeparator8 = this.AllObjects["tsSeparator8"] as WnSeparator; tsButtonSealManage = this.AllObjects["tsButtonSealManage"] as WnTbButton; wnGridMain = this.AllObjects["wnGridMain"] as WnGrid; }
/// <summary> /// 控件变量初始化方法 /// </summary> private void InitializeObject() { wnToolBarSealManage = this.AllObjects["wnToolBarSealManage"] as WnToolBar; tsButtonUnSeal = this.AllObjects["tsButtonUnSeal"] as WnTbButton; tsSeparator9 = this.AllObjects["tsSeparator9"] as WnSeparator; tsButtonExitSealManage = this.AllObjects["tsButtonExitSealManage"] as WnTbButton; wnGridSealManage = this.AllObjects["wnGridSealManage"] as WnGrid; }
/// <summary> /// 响应“导入”按钮的Click事件 /// </summary> private void tsButtonImport_Click(object sender, EventArgs e) { /* 创建wnGrid接收导入的数据集 */ WnGrid wnGrid = new WnGrid(); wnGrid.ImportExcel(false); /* 如果导入的数据源为空或者导入的数据源的行数为0,则返回 */ if (wnGrid.DataSource == null || wnGrid.DataSource.Rows.Count == 0) { return; } /* 将导入的表的列名与wnGridMain的列标题相对应 */ foreach (WnGridColumn dc in wnGridMain.Columns) { if (wnGrid.DataSource.Columns[dc.Caption.TrimEnd(new char[] { '*' })] != null) { wnGrid.DataSource.Columns[dc.Caption.TrimEnd(new char[] { '*' })].ColumnName = dc.ColumnName; } if (wnGrid.DataSource.Columns[dc.Caption] != null) { wnGrid.DataSource.Columns[dc.Caption].ColumnName = dc.ColumnName; } } /* 检查唯一索引重复,若有重复值,则从导入数据中删除 */ var item = from p in wnGridMain.DataSource.AsEnumerable() join p1 in wnGrid.DataSource.AsEnumerable() on new { hdgsName = p.Field <string>("HdgsName"), zyg = p.Field <string>("Zyg"), mdg = p.Field <string>("Mdg") } equals new { hdgsName = p1.Field <string>("HdgsName"), zyg = p1.Field <string>("Zyg"), mdg = p1.Field <string>("Mdg") } select new { hdgsName = p.Field <string>("HdgsName"), zyg = p.Field <string>("Zyg"), mdg = p.Field <string>("Mdg") }; if (item.Count() > 0) { foreach (var obj in item) { wnGrid.DataSource.Rows.Remove(wnGrid.DataSource.Select("HdgsName = '" + obj.hdgsName + "' and Zyg = '" + obj.zyg + "' and Mdg= '" + obj.mdg + "'")[0]); } } /* 检查重复之后,再次检查导入的数据是否为空或数据行为0 */ if (wnGrid.DataSource == null || wnGrid.DataSource.Rows.Count == 0) { return; } /* 获取导入数据中所有货代公司名称 */ string hdgsNames = "'" + string.Join("','", wnGrid.DataSource.AsEnumerable().Select(x => x.Field <string>("HdgsName"))) + "'"; string hdgsNamesDr = "'" + string.Join(",", wnGrid.DataSource.AsEnumerable().Select(x => x.Field <string>("HdgsName"))) + "'"; /* 通过货代公司名称获取货代公司内码值,获取失败,直接返回 */ Hashtable htGetHdgsGuid = new Hashtable(); htGetHdgsGuid["DataSetName"] = "GetHdgsGuid"; htGetHdgsGuid["{HdgsNames}"] = hdgsNames; htGetHdgsGuid["{HdgsNamesDr}"] = hdgsNamesDr; if (this.DataSource.GetDataSet(htGetHdgsGuid)["IsSuccess"].Equals("0")) { return; } /* 若未获取到货代公司代码,直接返回 */ DataTable dtHdgsGuid = ((this.DataSource.DataSets["GetHdgsGuid"]) as DataSet).Tables[0]; if (dtHdgsGuid.Rows.Count == 0) { return; } /* 检查是否存在获取不到内码值的货代公司的信息,删除获取不到内码值的货代公司的信息,并提示 */ var hdgsNamesDelete = dtHdgsGuid.AsEnumerable().Where(x => string.IsNullOrWhiteSpace(x.Field <string>("HdgsGuid") + "")).Select(x => new { hdgsNameDr = x.Field <string>("HdgsNameDr") }); if (hdgsNamesDelete.Count() > 0) { StringBuilder message = new StringBuilder(); foreach (var obj in hdgsNamesDelete) { wnGrid.DataSource.Rows.Remove(wnGrid.DataSource.Select("HdgsName = '" + obj.hdgsNameDr + "'")[0]); message.Append(",").AppendFormat(this.GetCurrLanguageContent("WnFormMain.HdgsNameDr"), obj.hdgsNameDr); //Content_CN:货代公司名称:{0} message.Append('\n'); } DialogBox.ShowWarning(string.Format(this.GetCurrLanguageContent("WnFormMain.NoHdgsGuid"), message.ToString().Substring(1))); //Content_CN:{0}以上导入的数据中货代公司名称不正确! } /* 如果货代公司内码为空,则直接返回 */ if (dtHdgsGuid.AsEnumerable().Where(x => !string.IsNullOrWhiteSpace(x.Field <string>("HdgsGuid") + "")).Select(x => new { hdgsNameGuid = x.Field <string>("HdgsGuid") }).Count() == 0) { return; } /* 获取导入数据中的装运港 */ string Zygs = "'" + string.Join("','", wnGrid.DataSource.AsEnumerable().Select(x => x.Field <string>("Zyg"))) + "'"; string ZygsDr = "'" + string.Join("|", wnGrid.DataSource.AsEnumerable().Select(x => x.Field <string>("Zyg"))) + "'"; /* 获取装运港信息 */ Hashtable htGetZyg = new Hashtable(); htGetZyg["DataSetName"] = "GetZyg"; htGetZyg["{Zygs}"] = Zygs; htGetZyg["{ZygsDr}"] = ZygsDr; if (this.DataSource.GetDataSet(htGetZyg)["IsSuccess"].Equals("0")) { return; } /* 若未获取到装运港,直接返回 */ DataTable dtZyg = ((this.DataSource.DataSets["GetZyg"]) as DataSet).Tables[0]; if (dtZyg.Rows.Count == 0) { return; } /* 若获取到的装运港信息不正确,清空导入数据中的装运港信息 */ var ZygsDelete = dtZyg.AsEnumerable().Where(x => string.IsNullOrWhiteSpace(x.Field <string>("Zyg") + "")).Select(x => new { zygDr = x.Field <string>("ZygDr") }); if (ZygsDelete.Count() > 0) { foreach (var obj in ZygsDelete) { foreach (DataRow dr in wnGrid.DataSource.Select("Zyg = '" + obj.zygDr + "'")) { dr["Zyg"] = DBNull.Value; } } } /* 获取导入数据中的目的港 */ string Mdgs = "'" + string.Join("','", wnGrid.DataSource.AsEnumerable().Select(x => x.Field <string>("Mdg"))) + "'"; string MdgsDr = "'" + string.Join("|", wnGrid.DataSource.AsEnumerable().Select(x => x.Field <string>("Mdg"))) + "'"; /* 获取目的港信息 */ Hashtable htGetMdg = new Hashtable(); htGetMdg["DataSetName"] = "GetMdg"; htGetMdg["{Mdgs}"] = Mdgs; htGetMdg["{MdgsDr}"] = MdgsDr; if (this.DataSource.GetDataSet(htGetMdg)["IsSuccess"].Equals("0")) { return; } /* 若未获取到目的港,直接返回 */ DataTable dtMdg = ((this.DataSource.DataSets["GetMdg"]) as DataSet).Tables[0]; if (dtMdg.Rows.Count == 0) { return; } /* 若获取到的目的港信息不正确,清空导入数据中的目的港信息 */ var MdgsDelete = dtMdg.AsEnumerable().Where(x => string.IsNullOrWhiteSpace(x.Field <string>("Mdg") + "")).Select(x => new { mdgDr = x.Field <string>("MdgDr") }); if (MdgsDelete.Count() > 0) { foreach (var obj in MdgsDelete) { foreach (DataRow dr in wnGrid.DataSource.Select("Mdg = '" + obj.mdgDr + "'")) { dr["Mdg"] = DBNull.Value; } } } foreach (DataRow datarow in wnGrid.DataSource.Rows) { /* 新增行,并填入数据 */ wnGridMain.AddRow(); wnGridMain.CurrRow["Guid"] = Guid.NewGuid(); wnGridMain.CurrRow["Year"] = _year; wnGridMain.CurrRow["Month"] = _month; wnGridMain.CurrRow["HdgsGuid"] = dtHdgsGuid.Select("HdgsName = '" + datarow["HdgsName"].ToString() + "'")[0]["HdgsGuid"]; wnGridMain.CurrRow["HdgsName"] = datarow["HdgsName"]; wnGridMain.CurrRow["Zyg"] = datarow["Zyg"]; wnGridMain.CurrRow["Mdg"] = datarow["Mdg"]; wnGridMain.CurrRow["Yfdj"] = datarow["Yfdj"]; wnGridMain.CurrRow["Dpfy"] = datarow["Dpfy"]; wnGridMain.CurrRow["Ysts"] = datarow["Ysts"]; wnGridMain.CurrRow["Note"] = datarow["Note"]; wnGridMain.CurrRow["RowState"] = "10"; } }