Exemplo n.º 1
0
        private void barButtonItem7_ItemClick_1(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            //------------------测试-----------------------------
           // string xlsPath = @"D:\移动风险监测\新数据测试数据\6风险图应用业务相关数据\";
           // string fileName =  "6.4避洪转移展示支撑数据 .xls"; //"6.3影响分析支撑数据.xls";//"6.1查询业务支撑数据.xls";//
           // string sheetName = "6.4.1转移单元-转移路线-安置区对应关系表";
           ////生成csv
           // string[] sheetNameList = importTool.GetSheetNameList(xlsPath + fileName);

           // importTool.ExcelToCsv(xlsPath + fileName, xlsPath + sheetNameList[0] + "_Attr.csv", sheetNameList[0], "|#|", 1);
           // //导入csv
           // // importTool.toCSVTest(xlsPath + fileName, xlsPath + "bhzyAttr.csv");

           //// string mm=importTool.XLSSavesaCSV(xlsPath + fileName);
           // //DataTable dt = importTool.ExcelToDataTable(xlsPath + fileName, sheetNameList[1]);
           // //dataGridViewX1.DataSource = dt;
           // MessageBox.Show("Success");
            //------------------测试----------------------------



            TIFF tif = new TIFF(undeal_path.Text);
            tif.StartPosition = FormStartPosition.CenterScreen;
            tif.Show();
            //tif.TopMost = true;
        }
Exemplo n.º 2
0
        /*主处理函数需要执行的操作:
         * 1、传入参数:河段路径
         * 2、方法:数据转换、溃口数据导入、淹没过程数据导入、影响分析数据导入、模板、属性替换、生成处理报告、更改文件名
         * 3、定义参数:输出路径
         * 
         */
        //主处理函数
//=======================================================================================
        public void DealAll(string dataPath, string password)
        {
            set.passWod = password;
            DateTime dt = DateTime.Now;
            string tiff = null;
            string mod = null;
            string fxtb = null;
            string outPath = null;
            string outPath_Mid = null;
            string outPath_Final=null;
            //string mxdPath = null;//完整地图路径
            try
            {
                if (dataPath.Substring(dataPath.Length - 3) == "已处理")
                    return;//判断该编制单元是否被处理,是则返回,不是则继续执行
                di = new DirectoryInfo(dataPath);
                FileInfo[] information = di.GetFiles("*信息.txt",SearchOption.AllDirectories);
                FileInfo[] yuanData = di.GetFiles("元数据.xml", SearchOption.AllDirectories);
                
                //成果图的获取
                DirectoryInfo[] picture = di.GetDirectories("*成果图件*", SearchOption.AllDirectories);
                //checkPath(picture[0].FullName);
                //地图数据获取
                FileInfo[] mxd = di.GetFiles("完整地图.mxd", SearchOption.AllDirectories);
                //checkPath(mxd[0].FullName);
                //设置淹没过程影像文件路径
                DirectoryInfo[] tiff1 = di.GetDirectories("tiffPath", SearchOption.AllDirectories);
                if (tiff1.Length > 0)
                    tiff = tiff1[0].FullName;
                else
                {
                    if (MessageBox.Show("未找到淹没过程数据,是否即时生成?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        TIFF tif = new TIFF(dataPath);
                        tif.StartPosition = FormStartPosition.CenterScreen;
                        tif.TopMost = true;
                        tif.Show();
                        return;
                    }
                    else
                        return;
                }
                
                
                MessageShow.Clear();
                mod = set.mod;//设置地图模板路径
                //设置编制单元名称,用于信息输出
                fxtb = dataPath.Substring(dataPath.LastIndexOf("\\") + 1);
                datetime = DateTime.Now;//设置开始实时间
                lab_progress.Text = "正在处理:【" + fxtb + "】";
                Msg("正在处理河段:" + fxtb);
                //创建输出对应目录
                outPath = importTool.createFolder(set.deal_path + "\\" + fxtb + "_已处理");
                //创建输出中间数据目录
                outPath_Mid = importTool.createFolder(outPath + "\\" + "中间数据");
                //创建超图结果数据目录
                outPath_Final = importTool.createFolder(outPath + "\\" + fxtb);
                File.Copy(information[0].FullName, outPath_Final +"\\"+ information[0].Name,true);
                File.Copy(yuanData[0].FullName, outPath_Final + "\\"+yuanData[0].Name,true);
               #region 测试
                //测试读取属性数据
                

                DateTime dt1 = DateTime.Now;
                //ymgcImport(outPath_Final, tiff);
               //ImportMapModel(mod, outPath_Final + "\\" + "MapResult", outPath_Final, set.mod);

                //bhzy(outPath_Mid, outPath_Final);
                //slgc(outPath_Final, outPath_Mid);
                //ztdt(outPath_Final, outPath_Mid);
                //bhzyImport(dataPath, outPath_Final);
                //string xlsPath1 = @"D:\移动风险监测\新数据测试数据\6风险图应用业务相关数据\";
                //string fileName = "6.1查询业务支撑数据.xls";//"6.4避洪转移展示支撑数据 .xls"; //"6.3影响分析支撑数据.xls";
                //string xmlPath = @"D:\移动风险监测\配图模版_v2.1\jcdt (2).xml";//ymgc1.xml地图模版_fhys.xml
                //ModelApplication(readXML(xmlPath), outPath_Final + "\\" + "MapResult.smwu","测试地图1");
               // string csvName = "Attr.csv";// "6.1.1编制方案信息_Attr.csv";//"6.5.1综合经济指标表_Attr.csv"; //"6.4.1转移单元-转移路线-安置区对应关系表_Attr.csv";// ;
               //CSVImport(csvName, outPath_Final, "test.udb");
                //ExcelDataImport("*查询业务支撑数据.xls", outPath_Final, "ywcxAttr", "ywcx.udb");
               //DevComponents.DotNetBar.Controls.RichTextBoxEx failedBoxText = new DevComponents.DotNetBar.Controls.RichTextBoxEx();
               ////failedBoxText.Text = failedRecord;
               ////failedBoxText.SaveFile(outPath_Final + "_错误日志1.txt", RichTextBoxStreamType.TextTextOleObjs);
               //MessageShow.Text = failedRecord;
               //MessageShow.SaveFile(outPath_Final + "_错误日志1.txt", RichTextBoxStreamType.TextTextOleObjs);
                //yxfx(dataPath, outPath_Final);
                //Feature2Raster(gp, @"D:\移动风险监测\新数据测试数据\6风险图应用业务相关数据\6.2淹没过程动态展示支撑数据\ymss1.shp", @"D:\移动风险监测\新数据测试数据\tiffPath\time1.tif");
                //string txtPath = @"D:\移动风险监测\新数据测试数据\6风险图应用业务相关数据\6.2淹没过程动态展示支撑数据\time1.txt";
                string shpFilePath = @"D:\移动风险监测\新数据测试数据\6风险图应用业务相关数据\6.2淹没过程动态展示支撑数据";
                string shpFileName = "ymss1";//;
                //ceshiSelect(shpFileName, shpFilePath);
                //string SavaPath = @"D:\移动风险监测\新数据测试数据\tiffPath\ymss1";
                //ESRI.ArcGIS.ADF.COMSupport.AOUninitialize.Shutdown();
                //Feature2Raster(gp,shpFilePath+"\\"+shpFileName+".shp", SavaPath+"\\time.tif");
                //JoinPoint(gp, shpFilePath+"\\", shpFileName, "czLayer","ymcz");

                //MessageBox.Show(caculateCountry("ymcz", shpFilePath).ToString());
                //MessageBox.Show(Caculate(shpFileName, shpFilePath, "GRIDAREA").ToString());
                //DataTable dTable=ymStatistics(tiff,@"D:\移动风险监测\新数据测试数据\6风险图应用业务相关数据\6.2淹没过程动态展示支撑数据\copy\czLayer.shp");
                //dataTableToCsv(dTable, @"D:\1.xls"); //调用函数

                //System.Diagnostics.Process.Start(@"D:\1.xls"); //打开excel文件
                //readTXT(txtPath, shpFilePath, shpFileName, SavaPath);
                //MessageBox.Show(ExecDateDiff(dt1, DateTime.Now));
               //setValue("ymss1", @"D:\移动风险监测\新数据测试数据\6风险图应用业务相关数据\6.2淹没过程动态展示支撑数据", value);

                /*tlab_progress.Text = "【" + fxtb + "】正在导入避洪转移数据···";
                bhzy(dataPath, outPath_Final);
                lab_progress.Text = "【" + fxtb + "】避洪转移数据导入完成";
                ry
                {
                    lab_progress.Text = "【" + fxtb + "】正在加载地图模板···";
                    Msg("正在加载地图模板···");
                    ImportMapModel(mod, outPath_Final + "\\" + "MapResult", outPath_Final, set.mod);

                }
                catch(Exception ex)
                {
                    Msg(ex.Message);
                }
                //ymgc(fxtb, outPath_Final, outPath_Mid, tiff);//set.TIFFPath
                //ymgc(fxtb, outPath_Final, outPath_Mid, tiff);//淹没过程影像数据导入

                //  ImportMapModel(mod, outPath_Final + "\\" + "MapResult", outPath_Final, set.mod);*/
                #endregion
                //接下来进行mxd的加载;
                //string ph = mxd[0].FullName;
               
                
 //----------------------------------------------------------------------------------
              
//--------------------提取数据--------------------------------------------------------------------
                Msg(lab_progress.Text = "【" + fxtb + "】正在进行数据转换···");
                axMapControl.LoadMxFile(mxd[0].FullName, 0, Type.Missing);
                //提取数据函数调用
                getGroupLayer(axMapControl, outPath_Mid);
                Msg("本次处理数据总数为:" + (vec_count + ras_count).ToString() + "条" + "\r\n" + "其中处理矢量数据:" + vec_count.ToString() + "条" + "\r\n" + "处理栅格数据:" + ras_count.ToString() + "条");
                Msg("用时:" + ExecDateDiff(datetime, DateTime.Now));//显示用时
//---------------------------------------------------------------------------------------
               
                //System.Threading.Thread.Sleep(100);
                Msg(lab_progress.Text = "【" + fxtb + "】正在导入淹没过程影像数据···");
               //淹没过程影像数据导入//savapath  是栅格数据存放位置
                ymgcImport(outPath_Final, tiff);
                //lab_progress.Text = "【" + fxtb + "】淹没过程影像数据导入完成";
                //System.Threading.Thread.Sleep(100);
//----------------------------------------------------------------------------------------
                //水利工程数据导入
                Msg(lab_progress.Text = "【" + fxtb + "】正在导入水利工程数据···");
                slgcImport(outPath_Final, outPath_Mid);
                //lab_progress.Text = "【" + fxtb + "】水利工程数据导入完成";
                //System.Threading.Thread.Sleep(100);
//----------------------------------------------------------------------------------------
                //专题地图的导入
                Msg(lab_progress.Text = "【" + fxtb + "】正在导入专题地图数据···");
                ztdtImport(outPath_Final, outPath_Mid);
                //lab_progress.Text = "【" + fxtb + "】专题地图导入完成";
                //System.Threading.Thread.Sleep(100);
 //----------------------------------------------------------------------------------------
                //避洪转移数据导入
                Msg(lab_progress.Text = "【" + fxtb + "】正在导入避洪转移数据···");
                bhzyImport(dataPath, outPath_Final);
                //lab_progress.Text = "【" + fxtb + "】避洪转移数据导入完成";
                //System.Threading.Thread.Sleep(100);
 //----------------------导入excel数据-------------------------
                Msg(lab_progress.Text = "【" + fxtb + "】正在导入Excel支撑数据···");
                ExcelDataImport("*避洪转移展示支撑数据 .xls", outPath_Final, "bhzyAttr", "bhzy.udb");
                ExcelDataImport("*查询业务支撑数据.xls", outPath_Final, "ywcxAttr", "ywcx.udb");
 //----------------------------------------------------------------------------------------
                //复合要素数据导入
                Msg(lab_progress.Text = "【" + fxtb + "】正在导入复合要素数据···");
                fhysImport(outPath_Final, outPath_Mid);
                //lab_progress.Text = "【" + fxtb + "】避洪转移数据导入完成";
                //System.Threading.Thread.Sleep(100);
//----------------------------------------------------------------------------------------
//影响分析数据导入
                Msg(lab_progress.Text = "【" + fxtb + "】正在导入影响分析数据···");
                yxfxImport(dataPath, outPath_Final);
                //lab_progress.Text = "【" + fxtb + "】影响分析数据导入完成";
                //System.Threading.Thread.Sleep(100);
                
//----------------------------------------------------------------------------------------
//更新影响分析数据属性表
                Msg(lab_progress.Text = "【" + fxtb + "】正在更新属性数据···");
                try
                {

                    FileInfo[] xlsPath = di.GetFiles("*数据*.xls*", SearchOption.TopDirectoryOnly);
                    foreach (FileInfo xx in xlsPath)
                    {
                        ConnectAttribute(xx.FullName, outPath_Final + "\\" + "yxfx");
                    }
                }
                catch
                {
                    Msg("更新属性数据不存在,跳过更新");
                }
               
//----------------------------------------------------------------------------------------
              //导入地图模板
                Msg(lab_progress.Text = "【" + fxtb + "】正在加载地图模板···");
                
                datetime = DateTime.Now;
                ImportMapModel(mod, outPath_Final + "\\" + "MapResult", outPath_Final, set.mod);
                //Msg(importTool.mo);
                Msg("用时:" + DataConverTool.ExecDateDiff(datetime, DateTime.Now));
                //lab_progress.Text = "【" + fxtb + "】加载地图模板完成";
//----------------------------------------------------------------------------------------
                //复制成果图
                Msg(lab_progress.Text = "【" + fxtb + "】正在复制成果图···");

                importTool.createFolder(outPath_Final + "\\成果图");
                di = new DirectoryInfo(picture[0].FullName);
                max = di.GetFiles().Length;
                foreach (FileInfo jpg in di.GetFiles())
                {
                    int p = 0;
                    File.Copy(jpg.FullName, outPath_Final + "\\成果图\\" + jpg.Name, true);
                    pgrs(p++);
                }
                Msg("复制成果图成功!");
                //File.Copy(information[0].FullName, outPath_Final + information[0].Name);
                //File.Copy(yuanData[0].FullName, outPath_Final + yuanData[0].Name);

//----------------------------------------------------------------------------------------
//生成处理报告
                Msg("正在生成处理报告····");
                Msg("本编制单元用时:" + DataConverTool.ExecDateDiff(dt, DateTime.Now));
                MessageShow.SaveFile(outPath_Final + "_处理报告.txt", RichTextBoxStreamType.TextTextOleObjs);
                Msg(outPath_Final + "_处理报告.txt  已生成成功!");
               
                Msg("正在生成错误日志····");
                //DevComponents.DotNetBar.Controls.RichTextBoxEx failedBox = new DevComponents.DotNetBar.Controls.RichTextBoxEx();
                MessageShow.Text = failedRecord;
                MessageShow.SaveFile(outPath_Final + "_错误日志.txt", RichTextBoxStreamType.TextTextOleObjs);
     
                
               // Msg("错误日志已生成");
                
                lab_progress.Text = "【" + fxtb + "】处理完成";
                //Directory.Move(dataPath, dataPath + "_已处理");
                //System.Threading.Thread.Sleep(1000);//等待一秒;
            }
            catch (Exception ex)
            {
                Msg(ex.Message);
            }
        }