Пример #1
0
 /// <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;
 }
Пример #2
0
 /// <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;
 }
Пример #3
0
        /// <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";
            }
        }