Ejemplo n.º 1
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (dgv1.RowCount < 1)
            {
                return;
            }
            Site = cmb_site.SelectedValue.ToString();
            if (Site == string.Empty)
            {
                MessageBox.Show("请选择ERP域!");
                return;
            }
            #region 开始循环比对Excel中的每行的材料号是否都对。
            for (int i = 0; i < dgv1.RowCount - 1; i++)
            {
                string partno = dgv1.Rows[i].Cells[4].Value.ToString();
                if (string.IsNullOrEmpty(partno))
                {
                    //MessageBox.Show("第" + (i + 1) + "行此材料编码不存在");
                    //return;
                }
                else
                {
                    InventoryPart invpartnew = InventoryPart.FindInvInfor(partno, Site);
                    if (invpartnew != null)
                    {
                    }
                    else
                    {
                        MessageBox.Show("第" + (i + 1) + "行ERP中无此材料编码");
                        return;
                    }
                }
            }
            #endregion

            string appdir = System.AppDomain.CurrentDomain.BaseDirectory;
            InitializeWorkbook(@appdir + "Template\\项目MSS明细表.xls");
            ISheet sheet1 = hssfworkbook.GetSheet("MSS明细表");

            //create cell on rows, since rows do already exist,it's not necessary to create rows again.
            //sheet1.GetRow(1).GetCell(1).SetCellValue(200200);
            //sheet1.GetRow(2).GetCell(1).SetCellValue(300);
            //sheet1.GetRow(3).GetCell(1).SetCellValue(500050);
            //sheet1.GetRow(4).GetCell(1).SetCellValue(8000);
            int j = 0, l = 0;
            #region 开始循环比对Excel中的每行的库存以及申请数量
            for (int i = 0; i < dgv1.RowCount; i++)
            {
                string partno     = dgv1.Rows[i].Cells[4].Value.ToString();
                string Project_id = string.Empty;
                Project_id = dgv1.Rows[i].Cells["Column1"].Value.ToString();
                ProjectId  = project.FindERPID(Project_id);
                if (!string.IsNullOrEmpty(partno))
                {
                    if (partno.Length < 7)
                    {
                        partno = "0" + partno;
                    }

                    int           tt = j + 1;
                    string        partname, unitname;
                    InventoryPart invpartnew = InventoryPart.FindInvInfor(partno, Site);
                    if (invpartnew != null)
                    {
                        partname = invpartnew.description;
                        unitname = invpartnew.unit_meas;
                    }
                    else
                    {
                        MessageBox.Show("第" + i + "行ERP中无此材料编码");
                        return;
                    }
                    //DateTime reqdatestr = Convert.ToDateTime(dgv1.Rows[i].Cells["需求日期"].Value);
                    //string reqreason = dgv1.Rows[i].Cells[4].Value.ToString();
                    string reqreason = "1001";
                    string preQty    = dgv1.Rows[i].Cells[6].Value.ToString();
                    string purpose   = dgv1.Rows[i].Cells["Column9"].Value.ToString();
                    string remark    = dgv1.Rows[i].Cells["图纸号"].Value.ToString();
                    Str_Discipline = dgv1.Rows[i].Cells[3].Value.ToString();
                    string        replaceno = "";
                    InventoryPart invpart = InventoryPart.GetRequiredqty(Site, partno, ProjectId);
                    decimal       left_reqqty = 0, reserved_qty = 0;
                    if (invpart != null)
                    {
                        left_reqqty  = Convert.ToDecimal(invpart.qty_reserved);
                        reserved_qty = Convert.ToDecimal(invpart.qty_onhand) - Convert.ToDecimal(invpart.qty_issued);
                    }
                    if (!string.IsNullOrEmpty(purpose))
                    {
                        Str_Area = ProjectBlock.GetAreaByBlock(purpose, ProjectId, Site);
                    }
                    decimal needqty = Convert.ToDecimal(preQty);
                    #region 如果数量不够则考虑替代码的库存以及申请情况
                    if (Convert.ToDecimal(preQty) > left_reqqty + reserved_qty)
                    {
                        #region 先将标准码数量写入
                        if (left_reqqty + reserved_qty > 0)
                        {
                            string meo_no = GetPartMEONO(partno, preQty);
                            sheet1.GetRow(j + 5).GetCell(0).SetCellValue(tt.ToString());
                            sheet1.GetRow(j + 5).GetCell(1).SetCellValue(ProjectId);
                            sheet1.GetRow(j + 5).GetCell(2).SetCellValue(Str_Area);
                            sheet1.GetRow(j + 5).GetCell(3).SetCellValue(Str_FX);
                            sheet1.GetRow(j + 5).GetCell(4).SetCellValue(Str_Discipline);
                            sheet1.GetRow(j + 5).GetCell(5).SetCellValue(ActivityName);
                            sheet1.GetRow(j + 5).GetCell(6).SetCellValue(partno);
                            sheet1.GetRow(j + 5).GetCell(7).SetCellValue(partname);
                            sheet1.GetRow(j + 5).GetCell(9).SetCellValue((left_reqqty + reserved_qty).ToString());
                            sheet1.GetRow(j + 5).GetCell(10).SetCellValue(unitname);
                            sheet1.GetRow(j + 5).GetCell(8).SetCellValue(meo_no);
                            sheet1.GetRow(j + 5).GetCell(12).SetCellValue(reqreason);
                            sheet1.GetRow(j + 5).GetCell(17).SetCellValue(replaceno);
                            sheet1.GetRow(j + 5).GetCell(15).SetCellValue(remark);
                            sheet1.GetRow(j + 5).GetCell(16).SetCellValue(purpose);
                            j++;
                        }
                        #endregion
                        needqty = Convert.ToDecimal(preQty) - left_reqqty - reserved_qty;

                        #region 替代码的库存数量以及需求数量比对
                        DataSet ReplaceDS = Ration.QueryPartRationList("select replace_no,part_description from mm_part_standard_tab where part_no ='" + partno + "'");
                        if (ReplaceDS != null)
                        {
                            int p = ReplaceDS.Tables[0].Rows.Count;
                            for (int k = 0; k < p; k++)
                            {
                                string        ReplaceNo = ReplaceDS.Tables[0].Rows[k][0].ToString();
                                string        ReplaceDesc = ReplaceDS.Tables[0].Rows[k][1].ToString();
                                InventoryPart invparttemp = InventoryPart.GetRequiredqty(Site, ReplaceNo, ProjectId);
                                decimal       temp_left_reqqty = 0, temp_reserved_qty = 0;
                                if (invparttemp != null)
                                {
                                    temp_left_reqqty  = Convert.ToDecimal(invparttemp.qty_reserved);
                                    temp_reserved_qty = Convert.ToDecimal(invparttemp.qty_onhand) - Convert.ToDecimal(invparttemp.qty_issued);
                                    if (temp_left_reqqty + temp_reserved_qty > 0)
                                    {
                                        #region 此替代码数量仍然不够
                                        if (Convert.ToDecimal(needqty) > temp_left_reqqty + temp_reserved_qty)
                                        {
                                            replaceno = replaceno + ReplaceNo + ";";
                                            needqty   = needqty - temp_left_reqqty - temp_reserved_qty;
                                            string meo_no = GetPartMEONO(ReplaceNo, (temp_left_reqqty + temp_reserved_qty).ToString());
                                            sheet1.GetRow(j + 5).GetCell(0).SetCellValue(tt.ToString());
                                            sheet1.GetRow(j + 5).GetCell(1).SetCellValue(ProjectId);
                                            sheet1.GetRow(j + 5).GetCell(2).SetCellValue(Str_Area);
                                            sheet1.GetRow(j + 5).GetCell(3).SetCellValue(Str_FX);
                                            sheet1.GetRow(j + 5).GetCell(4).SetCellValue(Str_Discipline);
                                            sheet1.GetRow(j + 5).GetCell(5).SetCellValue(ActivityName);
                                            sheet1.GetRow(j + 5).GetCell(6).SetCellValue(ReplaceNo);
                                            sheet1.GetRow(j + 5).GetCell(7).SetCellValue(ReplaceDesc);
                                            sheet1.GetRow(j + 5).GetCell(9).SetCellValue((temp_left_reqqty + temp_reserved_qty).ToString());
                                            sheet1.GetRow(j + 5).GetCell(10).SetCellValue(unitname);
                                            sheet1.GetRow(j + 5).GetCell(8).SetCellValue(meo_no);
                                            sheet1.GetRow(j + 5).GetCell(12).SetCellValue(reqreason);
                                            sheet1.GetRow(j + 5).GetCell(17).SetCellValue(partno);
                                            sheet1.GetRow(j + 5).GetCell(15).SetCellValue(remark);
                                            sheet1.GetRow(j + 5).GetCell(16).SetCellValue(purpose);
                                            j++;
                                        }
                                        #endregion
                                        #region 替代码数量可以满足则跳出循环
                                        else
                                        {
                                            replaceno = replaceno + ReplaceNo + ";";
                                            string meo_no = GetPartMEONO(ReplaceNo, needqty.ToString());
                                            sheet1.GetRow(j + 5).GetCell(0).SetCellValue(tt.ToString());
                                            sheet1.GetRow(j + 5).GetCell(1).SetCellValue(ProjectId);
                                            sheet1.GetRow(j + 5).GetCell(2).SetCellValue(Str_Area);
                                            sheet1.GetRow(j + 5).GetCell(3).SetCellValue(Str_FX);
                                            sheet1.GetRow(j + 5).GetCell(4).SetCellValue(Str_Discipline);
                                            sheet1.GetRow(j + 5).GetCell(5).SetCellValue(ActivityName);
                                            sheet1.GetRow(j + 5).GetCell(6).SetCellValue(ReplaceNo);
                                            sheet1.GetRow(j + 5).GetCell(7).SetCellValue(ReplaceDesc);
                                            sheet1.GetRow(j + 5).GetCell(9).SetCellValue(needqty.ToString());
                                            sheet1.GetRow(j + 5).GetCell(10).SetCellValue(unitname);
                                            sheet1.GetRow(j + 5).GetCell(8).SetCellValue(meo_no);
                                            sheet1.GetRow(j + 5).GetCell(12).SetCellValue(reqreason);
                                            sheet1.GetRow(j + 5).GetCell(17).SetCellValue(partno);
                                            sheet1.GetRow(j + 5).GetCell(15).SetCellValue(remark);
                                            sheet1.GetRow(j + 5).GetCell(16).SetCellValue(purpose);
                                            j++;
                                            needqty = 0;

                                            break;
                                        }
                                        #endregion
                                    }
                                }
                            }
                        }
                        #endregion
                    }
                    #endregion
                    #region 如果本身库存以及申请数量足够 直接写入MEO号以及申请数量
                    else
                    {
                        needqty = 0;

                        string meo_no = GetPartMEONO(partno, preQty);
                        sheet1.GetRow(j + 5).GetCell(0).SetCellValue(tt.ToString());
                        sheet1.GetRow(j + 5).GetCell(1).SetCellValue(ProjectId);
                        sheet1.GetRow(j + 5).GetCell(2).SetCellValue(Str_Area);
                        sheet1.GetRow(j + 5).GetCell(3).SetCellValue(Str_FX);
                        sheet1.GetRow(j + 5).GetCell(4).SetCellValue(Str_Discipline);
                        sheet1.GetRow(j + 5).GetCell(5).SetCellValue(ActivityName);
                        sheet1.GetRow(j + 5).GetCell(6).SetCellValue(partno);
                        sheet1.GetRow(j + 5).GetCell(7).SetCellValue(partname);
                        sheet1.GetRow(j + 5).GetCell(9).SetCellValue(preQty);
                        sheet1.GetRow(j + 5).GetCell(10).SetCellValue(unitname);
                        sheet1.GetRow(j + 5).GetCell(8).SetCellValue(meo_no);
                        sheet1.GetRow(j + 5).GetCell(12).SetCellValue(reqreason);
                        sheet1.GetRow(j + 5).GetCell(17).SetCellValue(replaceno);
                        sheet1.GetRow(j + 5).GetCell(15).SetCellValue(remark);
                        sheet1.GetRow(j + 5).GetCell(16).SetCellValue(purpose);
                        j++;
                    }

                    #endregion
                }
            }
            #endregion
            //Force excel to recalculate all the formula while open
            sheet1.ForceFormulaRecalculation = true;
            //create cell on rows, since rows do already exist,it's not necessary to create rows again.
            //sheet1.GetRow(1).GetCell(1).SetCellValue(200200);
            //sheet1.GetRow(2).GetCell(1).SetCellValue(300);
            //sheet1.GetRow(3).GetCell(1).SetCellValue(500050);
            //sheet1.GetRow(4).GetCell(1).SetCellValue(8000);

            try
            {
                WriteToFile(appdir + "\\导出的标准MSS格式\\" + "标准MSSList.xls");
                //WriteToFile(appdir + "\\导出的标准MSS格式\\" + "不足材料列表.xls");
                //MessageBox.Show("导出的标准MSS格式MSSList.xls和不足材料列表" + "成功!", "提示消息");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            #region  足MSS的材料信息
            InitializeWorkbook(@appdir + "Template\\不足项目MSS明细表.xls");
            ISheet sheet2 = hssfworkbook.GetSheet("MSS明细表");
            for (int i = 0; i < dgv1.RowCount; i++)
            {
                string partno = dgv1.Rows[i].Cells[4].Value.ToString();
                if (!string.IsNullOrEmpty(partno))
                {
                    string partname, unitname;
                    if (partno.Length < 7)
                    {
                        partno = "0" + partno;
                    }
                    InventoryPart invpartnew = InventoryPart.FindInvInfor(partno, Site);
                    if (invpartnew != null)
                    {
                        partname = invpartnew.description;
                        unitname = invpartnew.unit_meas;
                    }
                    else
                    {
                        MessageBox.Show("第" + i + "行ERP中无此材料编码");
                        return;
                    }
                    //DateTime reqdatestr = Convert.ToDateTime(dgv1.Rows[i].Cells["需求日期"].Value);
                    string reqreason = "1001";
                    string preQty    = dgv1.Rows[i].Cells[6].Value.ToString();
                    string purpose   = dgv1.Rows[i].Cells["Column9"].Value.ToString();
                    string remark    = dgv1.Rows[i].Cells["图纸号"].Value.ToString();
                    Str_Discipline = dgv1.Rows[i].Cells[3].Value.ToString();
                    string        replaceno = "";
                    InventoryPart invpart = InventoryPart.GetRequiredqty(Site, partno, ProjectId);
                    decimal       left_reqqty = 0, reserved_qty = 0;
                    if (invpart != null)
                    {
                        left_reqqty  = Convert.ToDecimal(invpart.qty_reserved);
                        reserved_qty = Convert.ToDecimal(invpart.qty_onhand) - Convert.ToDecimal(invpart.qty_issued);
                    }
                    decimal needqty = Convert.ToDecimal(preQty);
                    if (Convert.ToDecimal(preQty) > left_reqqty + reserved_qty)
                    {
                        needqty = Convert.ToDecimal(preQty) - left_reqqty - reserved_qty;
                        //decimal replaceqty = 0;

                        DataSet ReplaceDS = Ration.QueryPartRationList("select replace_no from mm_part_standard_tab where part_no ='" + partno + "'");
                        if (ReplaceDS != null)
                        {
                            int p = ReplaceDS.Tables[0].Rows.Count;
                            for (int k = 0; k < p; k++)
                            {
                                string        ReplaceNo = ReplaceDS.Tables[0].Rows[k][0].ToString();
                                InventoryPart invparttemp = InventoryPart.GetRequiredqty(Site, ReplaceNo, ProjectId);
                                decimal       temp_left_reqqty = 0, temp_reserved_qty = 0;
                                if (invparttemp != null)
                                {
                                    temp_left_reqqty  = Convert.ToDecimal(invparttemp.qty_reserved);
                                    temp_reserved_qty = Convert.ToDecimal(invparttemp.qty_onhand) - Convert.ToDecimal(invparttemp.qty_issued);
                                    if (temp_left_reqqty + temp_reserved_qty > 0)
                                    {
                                        if (Convert.ToDecimal(needqty) > temp_left_reqqty + temp_reserved_qty)
                                        {
                                            replaceno = replaceno + ReplaceNo + ";";
                                            needqty   = needqty - temp_left_reqqty - temp_reserved_qty;
                                        }
                                        else
                                        {
                                            replaceno = replaceno + ReplaceNo + ";";
                                            needqty   = 0;
                                            break;
                                        }
                                    }
                                }
                            }
                        }

                        //if (i + 5 > 10)
                        //  sheet1.CreateRow(i + 5);
                    }
                    else
                    {
                        needqty = 0;
                    }
                    if (needqty == 0)
                    {
                    }
                    else
                    {
                        int tt = l + 1;
                        sheet2.GetRow(l + 5).GetCell(0).SetCellValue(tt.ToString());
                        sheet2.GetRow(l + 5).GetCell(1).SetCellValue(ProjectId);
                        sheet2.GetRow(l + 5).GetCell(2).SetCellValue(Str_Area);
                        sheet2.GetRow(l + 5).GetCell(3).SetCellValue(Str_FX);
                        sheet2.GetRow(l + 5).GetCell(4).SetCellValue(Str_Discipline);
                        sheet2.GetRow(l + 5).GetCell(5).SetCellValue(ActivityName);
                        sheet2.GetRow(l + 5).GetCell(6).SetCellValue(partno);
                        sheet2.GetRow(l + 5).GetCell(7).SetCellValue(partname);
                        sheet2.GetRow(l + 5).GetCell(9).SetCellValue(needqty.ToString());
                        sheet2.GetRow(l + 5).GetCell(10).SetCellValue(unitname);
                        //sheet2.GetRow(j + 5).GetCell(11).SetCellValue(reqdate);
                        sheet2.GetRow(l + 5).GetCell(12).SetCellValue(reqreason);
                        //sheet2.GetRow(j + 5).GetCell(13).SetCellValue(reqreason);
                        sheet2.GetRow(l + 5).GetCell(15).SetCellValue(remark);
                        sheet2.GetRow(l + 5).GetCell(16).SetCellValue(purpose);
                        //sheet1.GetRow(i + 5).GetCell(17).SetCellValue(replaceno);
                        //if (i + 5 > 14)
                        //    sheet2.CreateRow(j + 6);
                        l++;
                    }
                }
            }
            sheet2.ForceFormulaRecalculation = true;
            #endregion
            try
            {
                //WriteToFile(appdir + "\\导出的标准MSS格式\\" + "标准MSSList.xls");
                WriteToFile(appdir + "\\导出的标准MSS格式\\" + "不足材料列表.xls");
                MessageBox.Show("导出的标准MSS格式MSSList.xls和不足材料列表" + "成功!", "提示消息");
                System.Diagnostics.Process.Start("explorer.exe", appdir + "导出的标准MSS格式");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        public void ReadXlsData(string sProject, string sUser, string filename)
        {
            //DisplayInfoHanlder displayinfo = new DisplayInfoHanlder(Disp);
            //this.Invoke(displayinfo, new object[] { "准备提取数据 ", "",0 });

        
            Disp("准备提取数据  ", "", 0);

            m_app = new Microsoft.Office.Interop.Excel.Application();
            m_app.UserControl = true;//干什么用的?
            m_app.Visible = false; m_app.DisplayAlerts = false;


            m_wkbook = m_app.Workbooks.Add(filename);
            m_wksheet = m_wkbook.Worksheets.get_Item(1) as Worksheet;
            m_range = m_wksheet.UsedRange;

            int count = m_range.Rows.Count;



            string projectId = sProject;

            List<ProjectBlock> blockList = ProjectBlock.FindAll(projectId);
            List<ProjectSystem> systemList = ProjectSystem.FindAll(int.Parse(projectId));
            List<ProjectDeck> deckList = ProjectDeck.FindAll(projectId);
            List<ProjectRoom> roomList = ProjectRoom.FindAll(projectId);
            List<ProjectZone> zoneList = ProjectZone.FindAll(projectId);
          //  List<string> taglist = Device.FindAllTagNo(projectId);

            string blockName="", upblockName=""; ProjectBlock pbTmp = null, pubTmp = null;
            string systemName=""; ProjectSystem psTmp = null;
            string deckName=""; ProjectDeck pdTmp = null;
            string roomName=""; ProjectRoom prTmp = null;
            string zoneName=""; ProjectZone pzTmp = null;


            string pdName1 = ""; Equipment.BatchImport.Core.ProjectDrawing pdTmp1 = null;
            string pdName2 = ""; Equipment.BatchImport.Core.ProjectDrawing pdTmp2 = null;
            string spack = ""; DevicePackage DevicePackageTem = null;
            List<DevicePackage> devicePackList = DevicePackage.FindAll(int.Parse(projectId));
            List< Equipment.BatchImport.Core.ProjectDrawing> pdrawingList = Equipment.BatchImport.Core.ProjectDrawing.FindAll(projectId);
            List<DeviceProdReqDpt> DvProDepList = DeviceProdReqDpt.FindAll();
            List<DeviceDiscipline> DVDspList = DeviceDiscipline.FindAll(int.Parse(projectId));
            string sProdRequireDept_Name="", sDiscipline_Name="";
            DeviceProdReqDpt cDvProDept = null;
            DeviceDiscipline cDvDs = null;


            
            List<Device> deviceList = new List<Device>();


            List<Device> deviceListadd = new List<Device>();
            List<Device> deviceListupdate = new List<Device>();

            Device d = null;
            System.Diagnostics.Trace.WriteLine(count);


            bool hasError = false, hanErrorAll = false; int errcount = 0;
            string tagno = "", equname = "", equnamec = "", majequ = "", equtype = "";

            string blockIds = string.Empty;  string upblockIds = string.Empty;

            string txtfilename =  System.Windows.Forms.Application.StartupPath+"\\错误信息.txt";
            StreamWriter sw = new StreamWriter(txtfilename, false, Encoding.GetEncoding("gb2312"));
         
            try
            {
                for (int i = 4; i <= count; i++)
                {
                    hasError = false;

                    blockIds = upblockIds = string.Empty;
                    blockName = upblockName = deckName = roomName = zoneName = equname = equnamec = string.Empty;
                   spack = tagno = majequ = equtype=sProdRequireDept_Name = sDiscipline_Name = pdName1 = pdName2 = string.Empty;

                    pbTmp = null;
                    pubTmp = null;
                    psTmp = null;
                     pdTmp = null;
                     prTmp = null;
                     pzTmp = null;
                     pdTmp1 = null;
                     pdTmp2 = null;
                     DevicePackageTem = null;
                     cDvProDept = null;
                     cDvDs = null;


                     if (m_range.get_Range("C" + i, "C" + i).Value2 == null)
                        break;

                    //*****判断是否为空,要运行测试

                    Disp("正在提取数据  ", Math.Round((i - 3.0) / count, 2) * 100.0 + "%", Convert.ToInt32(Math.Round((i - 3.0) / count, 2) * 100));
                    //this.Invoke(displayinfo, new object[] { "正在提取数据", Math.Round((i - 3.0) / count, 2) * 100.0 + "%", Convert.ToInt32(Math.Round((i - 3.0) / count, 2) * 100) });


                    #region  判断数据


                    //EquiName_eng
                    if (m_range.get_Range("C" + i, "C" + i).Value2 != null)
                    {
                        equname = m_range.get_Range("C" + i, "C" + i).Value2.ToString().Trim();
                        if (equname == string.Empty)
                        {
                            SetInfoText("第 " + i + "行数据中[" + equname + "]设备英文名有误!请修改!");
                            hasError = true;
                            hanErrorAll = true;
                            System.Diagnostics.Trace.WriteLine("第 " + i + "行数据中[" + equname + "]设备英文名有误!请修改!");
                            sw.WriteLine("第 " + i + "行数据中[" + equname + "]设备英文名有误!请修改!");
                        }
                    }
                    else
                    {
                        SetInfoText("第 " + i + "行数据中[" + equname + "]设备英文名有误1!请修改!");
                        hasError = true;
                        hanErrorAll = true;
                        System.Diagnostics.Trace.WriteLine("第 " + i + "行数据中[" + equname + "]设备英文名有误!请修改!");
                        sw.WriteLine("第 " + i + "行数据中[" + equname + "]设备英文名有误!请修改!");
                        //   continue;
                    }

                    //EquiName_chn

                    if (m_range.get_Range("D" + i, "D" + i).Value2 != null)
                    {

                        equnamec = m_range.get_Range("D" + i, "D" + i).Value2.ToString().Trim();
                        if (equnamec == string.Empty)
                        {
                            SetInfoText("第 " + i + "行数据中[" + equnamec + "]设备中文名有误!请修改!");
                            hasError = true;
                            hanErrorAll = true;
                            System.Diagnostics.Trace.WriteLine("第 " + i + "行数据中[" + equnamec + "]设备中文名有误!请修改!");
                            sw.WriteLine("第 " + i + "行数据中[" + equnamec + "]设备中文名有误!请修改!");
                        }
                    }
                    else
                    {
                        SetInfoText("第 " + i + "行数据中[" + equnamec + "]设备中文名有误!请修改!");
                        hasError = true;
                        hanErrorAll = true;
                        System.Diagnostics.Trace.WriteLine("第 " + i + "行数据中[" + equnamec + "]设备中文名有误!请修改!");
                        sw.WriteLine("第 " + i + "行数据中[" + equnamec + "]设备中文名有误!请修改!");
                    }


                    //包号  devicePackList
                    if (m_range.get_Range("L" + i, "L" + i).Value2 != null && m_range.get_Range("L" + i, "L" + i).Value2.ToString().Trim() != "")
                    {

                        spack = m_range.get_Range("L" + i, "L" + i).Value2.ToString().Trim();
                        System.Diagnostics.Trace.WriteLine(spack);
                        DevicePackageTem = devicePackList.Find((DevicePackage dp) => dp.PACKAGE_NO.Trim().ToUpper() == spack.ToUpper());
                        if (DevicePackageTem == null)
                        {
                            SetInfoText("第 " + i + "行数据中[" + spack + "]包号有误!请修改!");
                            hasError = true;
                            hanErrorAll = true;
                            sw.WriteLine("第 " + i + "行数据中[" + spack + "]包号有误!请修改!");

                        }



                        //    Core.Device.GetPackageId(Convert.ToInt32(projectId), m_range.get_Range("L" + i, "L" + i).Value2.ToString().Trim());
                        //System.Diagnostics.Trace.WriteLine("第 " + i + "行数据中[" + ipack + "]包号 ");
                        //if (ipack == 0)
                        //{
                        //    SetInfoText("第 " + i + "行数据中[" + pdName1 + "]包号有误!请修改!");
                        //    hasError = true;
                        //    hanErrorAll = true;
                        //    sw.WriteLine("第 " + i + "行数据中[" + pdName1 + "]包号有误!请修改!");

                        //    //  continue;
                        //}

                    }


                    //系统原理图号
                    if (m_range.get_Range("T" + i, "T" + i).Value2 != null && m_range.get_Range("T" + i, "T" + i).Value2.ToString().Trim() != "")
                    {
                        pdName1 = m_range.get_Range("T" + i, "T" + i).Value2.ToString().Trim();
                        pdTmp1 = pdrawingList.Find(( Equipment.BatchImport.Core.ProjectDrawing pdraw) => pdraw.DRAWING_NO.Trim().ToUpper() == pdName1.ToUpper());
                        if (pdTmp1 == null)
                        {
                            SetInfoText("第 " + i + "行数据中[" + pdName1 + "]系统原理图号有误!请修改!");
                            hasError = true;
                            hanErrorAll = true;
                            sw.WriteLine("第 " + i + "行数据中[" + pdName1 + "]系统原理图号有误!请修改!");

                            //  continue;
                        }

                    }


                    //布置图号
                    if (m_range.get_Range("U" + i, "U" + i).Value2 != null && m_range.get_Range("U" + i, "U" + i).Value2.ToString().Trim() != "")
                    {
                        pdName2 = m_range.get_Range("U" + i, "U" + i).Value2.ToString().Trim();
                        pdTmp2 = pdrawingList.Find(( Equipment.BatchImport.Core.ProjectDrawing pdraw) => pdraw.DRAWING_NO.Trim().ToUpper() == pdName2.ToUpper());
                        if (pdTmp2 == null)
                        {
                            SetInfoText("第 " + i + "行数据中[" + pdName2 + "]系统布置图号有误!请修改!");
                            hasError = true;
                            hanErrorAll = true;
                            sw.WriteLine("第 " + i + "行数据中[" + pdName2 + "]系统布置图号有误!请修改!");

                            //  continue;
                        }

                    }
               


                 
                    //生产需求部门
                    if (m_range.get_Range("V" + i, "V" + i).Value2 != null && m_range.get_Range("V" + i, "V" + i).Value2.ToString().Trim() != "")
                    {
                        sProdRequireDept_Name = m_range.get_Range("V" + i, "V" + i).Value2.ToString().Trim();
                      
                        cDvProDept = DvProDepList.Find((DeviceProdReqDpt dvprodept) => dvprodept.DptName.Trim() == sProdRequireDept_Name);
                      
                        if (cDvProDept == null)
                        {
                            SetInfoText("第 " + i + "行数据中[" + sProdRequireDept_Name + "]生产需求部门名有误!请修改!");
                            hasError = true;
                            hanErrorAll = true;
                            sw.WriteLine("第 " + i + "行数据中[" + sProdRequireDept_Name + "]生产需求部门名有误!请修改!");
                        }

                    }
                    //else
                    //{
                    //    SetInfoText("第 " + i + "行数据中[" + sProdRequireDept_Name + "]生产需求部门名有误!请修改!");
                    //    hasError = true;
                    //    hanErrorAll = true;
                    //    sw.WriteLine("第 " + i + "行数据中[" + sProdRequireDept_Name + "]生产需求部门名有误!请修改!");

                    //}
                    //技术专业
                    if (m_range.get_Range("W" + i, "W" + i).Value2 != null && m_range.get_Range("W" + i, "W" + i).Value2.ToString().Trim() != "")
                    {
                        sDiscipline_Name = m_range.get_Range("W" + i, "W" + i).Value2.ToString().Trim();
                        cDvDs = DVDspList.Find((DeviceDiscipline dvdisp) => dvdisp.CODE.Trim() == sDiscipline_Name);
                        if (cDvDs == null)
                        {
                            SetInfoText("第 " + i + "行数据中[" + sDiscipline_Name + "]技术专业名有误!请修改!");
                            hasError = true;
                            hanErrorAll = true;
                            sw.WriteLine("第 " + i + "行数据中[" + sDiscipline_Name + "]技术专业名有误!请修改!");

                            //  continue;
                        }

                    }
                    //else
                    //{
                    //    SetInfoText("第 " + i + "行数据中[" + sDiscipline_Name + "]技术专业名有误!请修改!");
                    //    hasError = true;
                    //    hanErrorAll = true;
                    //    sw.WriteLine("第 " + i + "行数据中[" + sDiscipline_Name + "]技术专业名有误!请修改!");
                    //}


                    //System
                    if (m_range.get_Range("AC" + i, "AC" + i).Value2 != null && m_range.get_Range("AC" + i, "AC" + i).Value2.ToString().Trim() != "")
                    {
                        systemName = m_range.get_Range("AC" + i, "AC" + i).Value2.ToString().Trim();
                        //systemName = systemName.Substring(5, systemName.Length - 5);
                        System.Diagnostics.Trace.WriteLine(systemName);
                        psTmp = systemList.Find(delegate(ProjectSystem ps) { return ps.Code.Trim()==systemName; });
                        if (psTmp == null)
                        {
                            SetInfoText("第 " + i + "行数据中[" + systemName + "]子系统名有误!请修改!");
                            hasError = true;
                            hanErrorAll = true;
                            System.Diagnostics.Trace.WriteLine("第 " + i + "行数据中[" + systemName + "]子系统名有误!请修改!");
                            sw.WriteLine("第 " + i + "行数据中[" + systemName + "]子系统名有误!请修改!");
                            //   continue;
                        }

                    }
                    //else
                    //{
                    //    SetInfoText("第 " + i + "行数据中[" + systemName + "]子系统名有误!请修改!");
                    //    hasError = true;
                    //    hanErrorAll = true; sw.WriteLine("第 " + i + "行数据中[" + systemName + "]子系统名有误!请修改!");
                    //}

                    System.Uri u;
                    
                 

                    //Block 
                    if (m_range.get_Range("AD" + i, "AD" + i).Value2 != null && m_range.get_Range("AD" + i, "AD" + i).Value2.ToString().Trim().ToLower() != "")
                    {
                        blockName = m_range.get_Range("AD" + i, "AD" + i).Value2.ToString().Trim().ToLower();
                       
                        foreach (string block in blockName.Split(','))
                        {


                            pbTmp = blockList.Find(delegate(ProjectBlock pb) { return pb.Description.Trim().ToLower() == block.Trim(); });
                            if (pbTmp == null)
                            {
                                SetInfoText("第 " + i + "行数据中[" + block + "]分段名有误!请修改!");
                                hasError = true;
                                hanErrorAll = true;
                                System.Diagnostics.Trace.WriteLine("第 " + i + "行数据中[" + block + "]分段名有误!请修改!");
                                sw.WriteLine("第 " + i + "行数据中[" + block + "]分段名有误!请修改!");

                            }
                            else
                                blockIds += "," + pbTmp.Block_Id.ToString();
                        }
                        if (blockIds.StartsWith(",")) blockIds = blockIds.Substring(1);

                    }

                    //Upper Block
                    if (m_range.get_Range("AE" + i, "AE" + i).Value2 != null && m_range.get_Range("AE" + i, "AE" + i).Value2.ToString().Trim().ToLower() != "")
                    {
                        upblockName = m_range.get_Range("AE" + i, "AE" + i).Value2.ToString().Trim().ToLower();

                        foreach (string block in upblockName.Split(','))
                        {

                            pubTmp = blockList.Find(delegate(ProjectBlock pb) { return pb.Description.Trim().ToLower() == block.Trim(); });
                            if (pubTmp == null)
                            {
                                SetInfoText("第 " + i + "行数据中[" + block + "]上分段名有误!请修改!");
                                hasError = true;
                                hanErrorAll = true;
                                System.Diagnostics.Trace.WriteLine("第 " + i + "行数据中[" + block + "]上分段名有误!请修改!");
                                sw.WriteLine("第 " + i + "行数据中[" + block + "]上分段名有误!请修改!");
                            }
                            else
                                upblockIds += "," + pubTmp.Block_Id.ToString();
                        }
                        if (upblockIds.StartsWith(",")) upblockIds = upblockIds.Substring(1);
                    }

                    //Deck 
                    if (m_range.get_Range("AF" + i, "AF" + i).Value2 != null && m_range.get_Range("AF" + i, "AF" + i).Value2.ToString().Trim() != "")
                    {
                        deckName = m_range.get_Range("AF" + i, "AF" + i).Value2.ToString().Trim();
                        pdTmp = deckList.Find(delegate(ProjectDeck pd) { return pd.Description.Trim().ToLower() == deckName.ToLower(); });
                        if (pdTmp == null)
                        {
                            //  excelRange.get_Range("P" + i, "P" + i).Value2 = "未找到Zone[" + zoneName + "]";
                            SetInfoText("第 " + i + "行数据中[" + deckName + "]甲板名有误!请修改!");
                            hasError = true;
                            hanErrorAll = true;
                            System.Diagnostics.Trace.WriteLine("第 " + i + "行数据中[" + deckName + "]甲板名有误!请修改!");
                            sw.WriteLine("第 " + i + "行数据中[" + deckName + "]甲板名有误!请修改!");
                            // continue;
                        }

                    }
                   // else
                    //{
                        
                        //SetInfoText("第 " + i + "行数据中[" + deckName + "]甲板名有误!请修改!");
                        //hasError = true;
                        //hanErrorAll = true; sw.WriteLine("第 " + i + "行数据中[" + deckName + "]甲板名有误!请修改!");
                   // }


                    //Room
                    if (m_range.get_Range("AG" + i, "AG" + i).Value2 != null && m_range.get_Range("AG" + i, "AG" + i).Value2.ToString().Trim().ToLower() != "")
                    {

                        roomName = m_range.get_Range("AG" + i, "AG" + i).Value2.ToString().Trim().ToLower();


                        prTmp = roomList.Find(delegate(ProjectRoom pr) { return pr.Room_Key.Trim().ToLower() == roomName; });
                        if (prTmp == null)
                        {
                            SetInfoText("第 " + i + "行数据中[" + roomName + "]房间名有误!请修改!");
                            hasError = true;
                            hanErrorAll = true;
                            System.Diagnostics.Trace.WriteLine("第 " + i + "行数据中[" + roomName + "]房间名有误!请修改!");
                            sw.WriteLine("第 " + i + "行数据中[" + roomName + "]房间名有误!请修改!");
                            //sw.WriteLine(roomName);
                        }

                    }
                    //else
                    //{
                    //    SetInfoText("第 " + i + "行数据中[" + roomName + "]房间名有误!请修改!");
                    //    hasError = true;
                    //    hanErrorAll = true; sw.WriteLine("第 " + i + "行数据中[" + roomName + "]房间名有误!请修改!");
                    //}

                    //Zone //
                    if (m_range.get_Range("AH" + i, "AH" + i).Value2 != null && m_range.get_Range("AH" + i, "AH" + i).Value2.ToString().Trim() != "")
                    {
                        zoneName = m_range.get_Range("AH" + i, "AH" + i).Value2.ToString().Trim();
                        pzTmp = zoneList.Find(delegate(ProjectZone pz) { return pz.Description.Trim().ToLower() == zoneName.ToLower(); });
                        if (pzTmp == null)
                        {
                            SetInfoText("第 " + i + "行数据中[" + zoneName + "]区域名有误!请修改!");
                            hasError = true;
                            hanErrorAll = true;
                            System.Diagnostics.Trace.WriteLine("第 " + i + "行数据中[" + zoneName + "]区域名有误!请修改!");
                            sw.WriteLine("第 " + i + "行数据中[" + zoneName + "]区域名有误!请修改!");
                            //   continue;
                        }

                    }
                    //else
                    //{
                    //    SetInfoText("第 " + i + "行数据中[" + zoneName + "]区域名有误!请修改!");
                    //    hasError = true;
                    //    hanErrorAll = true; sw.WriteLine("第 " + i + "行数据中[" + zoneName + "]区域名有误!请修改!");
                    //}

                    //主设备
                    if (m_range.get_Range("AL" + i, "AL" + i).Value2 != null)
                    {
                        majequ = m_range.get_Range("AL" + i, "AL" + i).Value2.ToString().Trim().ToUpper();
                        if (majequ == "N") majequ = "F";
                        else if (majequ == "Y") majequ = "M";
                    }
                    else
                    {
                        majequ = "";
                    }



                    #endregion
                    string des1, des2, tec1, tec2;
                 
                    #region //将数据加到列表中

                    if (!hasError)
                    {
                        d = new Device();

                        d.Project_Id = projectId.ToString();
                        tagno = m_range.get_Range("B" + i, "B" + i).Value2 == null ? "" : m_range.get_Range("B" + i, "B" + i).Value2.ToString().Trim().ToUpper();
                        d.Tag_No = tagno;
                        d.Equipment = equname;
                        d.EQ_NAME_CN = equnamec;
                        d.DUTYORSTANDBY = (m_range.get_Range("E" + i, "E" + i).Value2 == null) ? string.Empty : m_range.get_Range("E" + i, "E" + i).Value2.ToString().Trim();//Duty或备用
                        d.Power = (m_range.get_Range("F" + i, "F" + i).Value2 == null) ? string.Empty : m_range.get_Range("F" + i, "F" + i).Value2.ToString().Trim();//功率
                        d.Power_Factor = (m_range.get_Range("G" + i, "G" + i).Value2 == null) ? string.Empty : m_range.get_Range("G" + i, "G" + i).Value2.ToString().Trim();//功率因数
                        des1 = (m_range.get_Range("H" + i, "H" + i).Value2 == null) ? string.Empty : m_range.get_Range("H" + i, "H" + i).Value2.ToString().Trim();
                        des2 = (m_range.get_Range("I" + i, "I" + i).Value2 == null) ? string.Empty : m_range.get_Range("I" + i, "I" + i).Value2.ToString().Trim();
                        d.DETAIL_DESCRIPTION = des1 + "###" + des2 == "###" ? "" : des1 + "###" + des2;//详细描述
                        tec1 = (m_range.get_Range("J" + i, "J" + i).Value2 == null) ? string.Empty : m_range.get_Range("J" + i, "J" + i).Value2.ToString().Trim();
                        tec2 = (m_range.get_Range("K" + i, "K" + i).Value2 == null) ? string.Empty : m_range.get_Range("K" + i, "K" + i).Value2.ToString().Trim();
                        d.Remark = tec1 + "###" + tec2 == "###" ? "" : tec1 + "###" + tec2;//技术参数


                       //L
                        d.PackageId = DevicePackageTem == null ? 0 : DevicePackageTem.ID;
                        //if ((m_range.get_Range("L" + i, "L" + i).Value2 != null))
                        //{
                           
                        // // d.PackageId = m_range.get_Range("L" + i, "L" + i).Value2.ToString().Trim() == "" ? 0 : Core.Device.GetPackageId(Convert.ToInt32(projectId), m_range.get_Range("L" + i, "L" + i).Value2.ToString().Trim());
                        //}


                        d.ERP_CODE = (m_range.get_Range("M" + i, "M" + i).Value2 == null) ? string.Empty : m_range.get_Range("M" + i, "M" + i).Value2.ToString().Trim();//物资编码
                        d.MEO_NO = m_range.get_Range("N" + i, "N" + i).Value2 == null ? string.Empty : m_range.get_Range("N" + i, "N" + i).Value2.ToString().Trim();//MEO
                        d.MSS_NO = m_range.get_Range("O" + i, "O" + i).Value2 == null ? string.Empty : m_range.get_Range("O" + i, "O" + i).Value2.ToString().Trim(); ;//MSS NO.
                        d.Maker = m_range.get_Range("P" + i, "P" + i).Value2 == null ? string.Empty : m_range.get_Range("P" + i, "P" + i).Value2.ToString().Trim();//生产厂家
                        d.Contractor = m_range.get_Range("Q" + i, "Q" + i).Value2 == null ? string.Empty : m_range.get_Range("Q" + i, "Q" + i).Value2.ToString().Trim();//合同方名称
                        d.InfoStatusD = m_range.get_Range("R" + i, "R" + i).Value2 == null ? string.Empty : m_range.get_Range("R" + i, "R" + i).Value2.ToString().Trim();
                        d.InfoStatusF = m_range.get_Range("S" + i, "S" + i).Value2 == null ? string.Empty : m_range.get_Range("S" + i, "S" + i).Value2.ToString().Trim();

                        d.FoundationFlag = m_range.get_Range("X" + i, "X" + i).Value2 == null ? string.Empty : m_range.get_Range("X" + i, "X" + i).Value2.ToString().Trim(); //是否需要基座
                        d.CoamingFlag = m_range.get_Range("Y" + i, "Y" + i).Value2 == null ? string.Empty : m_range.get_Range("Y" + i, "Y" + i).Value2.ToString().Trim();//是否需要接水/油盘
                        d.Ofe_Bfe = m_range.get_Range("Z" + i, "Z" + i).Value2 == null ? string.Empty : m_range.get_Range("Z" + i, "Z" + i).Value2.ToString().Trim();

                        d.StoreMaintainFlag = m_range.get_Range("AA" + i, "AA" + i).Value2 == null ? string.Empty : m_range.get_Range("AA" + i, "AA" + i).Value2.ToString().Trim();
                        d.CableConectFlag = m_range.get_Range("AB" + i, "AB" + i).Value2 == null ? string.Empty : m_range.get_Range("AB" + i, "AB" + i).Value2.ToString().Trim();





                        
                        d.ProdRequireDept = cDvProDept==null?0:cDvProDept.Id;
                        d.Discipline_Id =cDvDs==null?0: cDvDs.Id;

                        d.System_Id = psTmp == null ? 0 : psTmp.System_Id;
                        d.Deck_Id = deckName==string.Empty?0: pdTmp.Deck_Id;
                        d.Room_Id = roomName==string.Empty ?0: prTmp.Room_ID;
                        d.Zone_Id = zoneName ==string.Empty?0: pzTmp.Zone_Id;



                        d.Dry_Weight = m_range.get_Range("AI" + i, "AI" + i).Value2 == null ? string.Empty : m_range.get_Range("AI" + i, "AI" + i).Value2.ToString().Trim();
                        d.Operating_weight = m_range.get_Range("AJ" + i, "AJ" + i).Value2 == null ? string.Empty : m_range.get_Range("AJ" + i, "AJ" + i).Value2.ToString().Trim();

                        d.OVERALL_DIMENSION = m_range.get_Range("AK" + i, "AK" + i).Value2 == null ? string.Empty : m_range.get_Range("AK" + i, "AK" + i).Value2.ToString().Trim();

                        d.MajorFlag = majequ;//AL


                        d.Creater = tbCreater.Text.Trim();// "shihai.liu";
                        
                        d.NewFlag = "Y";
                        d.DeleteFlag = "N";

                        d.EquipType = equtype;

               

                        d.newBlock = blockIds;// pbTmp.Block_Id;
                        d.UPPERFLAG_NO = "N";

                        d.UpperBlock = upblockIds;// pubTmp.Block_Id;
                        d.UPPERFLAG_YES = "Y";
                        
                        //原理图和布置图
                        d.PIDDrawNo =pdTmp1==null?0: pdTmp1.DRAWING_ID;
                        d.ArrangementDrawNo =pdTmp2==null?0: pdTmp2.DRAWING_ID;
                   
                        

                         deviceList.Add(d);


            

                    }
                    else
                        errcount++;
                    #endregion
                }



                Disp("提取数据完成  ", "100%", 100);
                //区分添加和更新
                //取出所有设备ID,TAGNO
                Disp("正在转换数据  ", "", 0);
                dic = DeviceTag .GetDeviceTag(projectId);
                
                int tagcount = deviceList.Count;
                double  tagnum = 0;
                foreach (Device de in deviceList)
                {
                    tagnum++;
                    Disp("正在转换数据  ", Math.Round((tagnum) / tagcount, 2) * 100.0 + "%", Convert.ToInt32(Math.Round((tagnum) / tagcount, 2) * 100));
                 
                    if (de.Tag_No == "")
                        deviceListadd.Add(de);
                    else
                    {

                        if (dic.ContainsKey(de.Tag_No))
                        {
                            de.Device_Id = dic[de.Tag_No];
                            de.Updater = tbCreater.Text.Trim().ToLower();
                   //         if (deviceListupdate.Exists(delegate(Device dd) { return dd.Tag_No == de.Tag_No; }))
                            if (deviceListupdate.Exists((dd) =>  dd.Tag_No == de.Tag_No ))
                            {
                                SetInfoText("Tag_No为[" + de.Tag_No + "]的设备有重复!请修改!");
                                hasError = true;
                                hanErrorAll = true;
                                System.Diagnostics.Trace.WriteLine("Tag_No为[" + de.Tag_No + "]的设备有重复!请修改!");
                                sw.WriteLine("Tag_No为[" + de.Tag_No + "]的设备有重复!请修改!");
                            }
                            else
                                deviceListupdate.Add(de);
                        }
                        else
                        {
                            if (deviceListadd.Exists(  dd=>  dd.Tag_No == de.Tag_No))
                            {
                                SetInfoText("Tag_No为[" + de.Tag_No + "]的设备有重复!请修改!");
                                hasError = true;
                                hanErrorAll = true;
                                System.Diagnostics.Trace.WriteLine("Tag_No为[" + de.Tag_No + "]的设备有重复!请修改!");
                                sw.WriteLine("Tag_No为[" + de.Tag_No + "]的设备有重复!请修改!");
                            }
                            else
                                deviceListadd.Add(de);
                        }
                          

                    }

                }

              //  this.Invoke(displayinfo, new object[] { "准备导入数据库 ", "", 0 });

                Disp("准备导入数据库 ", "", 0);
                System.Diagnostics.Trace.WriteLine(deviceListadd.Count);
                System.Diagnostics.Trace.WriteLine(deviceListupdate.Count);

          
            }

            catch (Exception et) { MessageBox.Show(et.Message); }


            finally
            {
                if (hanErrorAll == true)
                {
                    if (errcount > 10)
                     MessageBox.Show("错误数据太多,程序已暂时结束,请修改后再进行此操作!", "Import Equipment Information", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    else
                    MessageBox.Show("数据有错误,请修改后再进行此操作!", "Import Equipment Information", MessageBoxButtons.OK, MessageBoxIcon.Error);


                }
                else
                {
                    if (deviceListadd.Count > 0)//添加新的设备纪录
                    {
                        
                        //Device.md = new Device.mydel(this.Disp);

                        //if (Device.Add(deviceListadd))
                        //{

                        //    SetInfoText("成功导入成功了" + deviceListadd.Count + "个设备信息!");
                        //    System.Diagnostics.Trace.WriteLine("成功导入成功了" + deviceListadd.Count + "个设备信息!");
                        //}
                        //else
                        //{
                        //    SetInfoText("导入出现错误!");
                        //    System.Diagnostics.Trace.WriteLine("导入出现错误!");


                        //}

                    }

                    if (deviceListupdate.Count > 0)//更新设备纪录
                    {
                        //Device.md = new Device.mydel(this.Disp);

                        //if (Device.Update(deviceListupdate))
                        //{
                        //    SetInfoText("成功更新成功了" + deviceListupdate.Count + "个设备信息!");
                        //    System.Diagnostics.Trace.WriteLine("成功更新成功了" + deviceListupdate.Count + "个设备信息!");
                        //}
                        //else
                        //{
                        //    SetInfoText("更新出现错误!");
                        //    System.Diagnostics.Trace.WriteLine("更新导入出现错误!");

                        //}
                    }
                }

                Disp("程序运行完毕 ", "", 0);

                string s = string.Format("符合数据{0}条,不匹配数据{1}条", deviceListadd.Count + deviceListupdate.Count , errcount);
                System.Diagnostics.Trace.WriteLine(s);
                SetInfoText(s);

                sw.Close();
                close();

            }

        }