Exemple #1
0
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            ComboBoxItem<LayerGrade> item = comboBox1.SelectedItem as ComboBoxItem<LayerGrade>;
            if (item == null) return;

            string uid =Itop.Common.ConfigurationHelper.GetValue("SvgID");
            if (string.IsNullOrEmpty(uid)) return;
            SVG_LAYER lar = new SVG_LAYER();
            lar.svgID = uid;
            lar.YearID = "'" + item.Value.SUID + "'";
            IList<SVG_LAYER> larlist = Services.BaseService.GetList<SVG_LAYER>("SelectSVG_LAYERByYearID", lar);
            layerList.Items.Clear();
            hs.Clear();
            foreach (SVG_LAYER layer in larlist) {
                layerList.Items.Add(new DevExpress.XtraEditors.Controls.CheckedListBoxItem(layer.NAME));
                hs.Add(layer.NAME,layer);
            }
        }
        private void simpleB(string id)
        {
            int itemcount = checkedListBox1.Items.Count;
            if (checkedListBox1.Items != null) {
                f.SetText("�����У���ȴ�......");
                f.Show();
                for (int num = 0; num < itemcount; num++) {

                    string itemname = checkedListBox1.Items[num].ToString();
                    if (itemname.Length > 4) {
                        string item4 = itemname.Substring(0, 4);
                        if ((IsInt(item4)) && checkedListBox1.GetItemChecked(num) == true) {
                            Layer layer = this.checkedListBox1.Items[num] as Layer;
                            f.SetText("��ѡ��" + checkedListBox1.CheckedItems.Count + "�㣬���ڸ���" + layer.Label + "�㡣");
                            string str = layer.GetAttribute("layerType");
                            Layer layer2 = CopyLayer2(layer, id);
                            if (layer2 != null) {
                                if (layer.Visible) {
                                    layer.Visible = false;
                                    layer.Visible = true;
                                }
                                layer2.SetAttribute("layerType", str);
                                this.checkedListBox1.Items.Add(layer2);
                                layer2.Visible = false;

                                string xml = "";
                                XmlNodeList oldList = symbolDoc.SelectNodes("//*[@layer=\"" + layer2.ID + "\"]");
                                for (int i = 0; i < oldList.Count; i++) {
                                    xml = xml + ((SvgElement)oldList[i]).OuterXml;
                                }
                                SVG_LAYER obj = new SVG_LAYER();
                                obj.SUID = layer2.ID;
                                obj.svgID = symbolDoc.SvgdataUid;
                                obj.NAME = layer2.Label;
                                obj.MDATE = System.DateTime.Now;
                                obj.OrderID = num + 10;
                                obj.YearID = id;//((LayerGrade)list[0]).SUID;
                                obj.layerType = "�����滮��";
                                obj.visibility = "visible";
                                obj.IsSelect = "true";
                                obj.XML = xml;
                                Services.BaseService.Create<SVG_LAYER>(obj);
                            }
                        }
                    }

                }
                f.Hide();
            }
        }
        private void LayerGradeChange(object sender, EventArgs e)
        {
            if (treeList1.FocusedNode == null)
            {
                return;
            }
            string uid = treeList1.FocusedNode[treeListColumn2].ToString();
            LayerGrade obj = Services.BaseService.GetOneByKey<LayerGrade>(uid);
            frmLayerGradeInPut dlg = new frmLayerGradeInPut(strSvgDataUid);
            dlg.TextInPut = treeList1.FocusedNode[treeListColumn1].ToString();
            //LayerGrade objParent = Services.BaseService.GetOneByKey<LayerGrade>((string)treeList1.FocusedNode[treeListColumn4]);
            dlg.ParentID = treeList1.FocusedNode[treeListColumn4].ToString();
            if (obj!=null)
            {
                dlg.textBoxEnabled = true;
            }
            else
            {
                dlg.textBoxEnabled = false;
            }

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                if (dlg.TextInPut == "")
                {
                    MessageBox.Show("分级名称不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                SVG_LAYER lar = new SVG_LAYER();
                lar.svgID = strSvgDataUid;
                lar.SUID = uid;
                lar = (SVG_LAYER)Services.BaseService.GetObject("SelectSVG_LAYERByKey", lar);
                if(lar!=null){
                    lar.YearID = dlg.ParentID;
                    Services.BaseService.Update<SVG_LAYER>(lar);
                }
                if (obj != null)
                {
                    obj.Name = dlg.TextInPut;
                    obj.ParentID = dlg.ParentID;

                    foreach (LayerGrade lay in ilist)
                    {
                        if (obj.Name == lay.Name&&obj.Name!=treeList1.FocusedNode[treeListColumn1].ToString())
                        {
                            MessageBox.Show("分级已经存在!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return;
                        }
                    }
                    if (obj.ParentID==obj.SUID)
                    {
                        MessageBox.Show("不能将分级设置成自己的子级!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return;
                    }
                    treeList1.FocusedNode.SetValue("Name", obj.Name);
                    treeList1.FocusedNode.SetValue("ParentID", obj.ParentID);
                    Services.BaseService.Update("UpdateLayerGrade", obj);
                }
                else
                {
                    Layer lay = SymbolDoc.GetLayerByID(uid);
                    treeList1.FocusedNode.SetValue("Name", dlg.TextInPut);
                    treeList1.FocusedNode.SetValue("ParentID", dlg.ParentID);
                    //lay.Label = dlg.TextInPut;
                    lay.SetAttribute("ParentID", dlg.ParentID);

                }
            }
            else
            {
                return;
            }
            InitData(strSvgDataUid);
        }
Exemple #4
0
        public void Open2(string _SvgUID)
        {
            StringBuilder txt = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\"?><svg id=\"svg\" width=\"1500\" height=\"1000\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:itop=\"http://www.Itop.com/itop\" transform=\"matrix(1 0 0 1 0 1)\"><defs>");
            string svgdefs = "";
            string layertxt = "";
            StringBuilder content = new StringBuilder();
            string where = "";
            if (string.IsNullOrEmpty(_SvgUID)) return;
            try {
                if (progtype == "城市规划层") {
                    where = " (layerType = '城市规划层' OR layerType = '地理信息层' OR YearID = '') ";
                } else {
                    where = " (layerType = '地理信息层') ";
                }
                SVGFILE svgFile = new SVGFILE();
                svgFile.SUID = _SvgUID;
                svgFile = (SVGFILE)Services.BaseService.GetObject("SelectSVGFILEByKey", svgFile);
                //SvgDocument document = CashSvgDocument;
                //if (document == null) {
                SVG_LAYER lar = new SVG_LAYER();
                lar.svgID = _SvgUID;
                lar.YearID = where;
                IList<SVG_LAYER> larlist = Services.BaseService.GetList<SVG_LAYER>("SelectSVG_LAYERByWhere", lar);
                foreach (SVG_LAYER _lar in larlist) {
                    layertxt = layertxt + "<layer id=\"" + _lar.SUID + "\" label=\"" + _lar.NAME + "\" layerType=\"" + _lar.layerType + "\" visibility=\"" + _lar.visibility + "\" ParentID=\"" + _lar.YearID + "\" IsSelect=\"" + _lar.IsSelect + "\" />";
                    content.Append(_lar.XML);
                }
                txt.Append(layertxt);

                SVG_SYMBOL sym = new SVG_SYMBOL();
                sym.svgID = _SvgUID;
                IList<SVG_SYMBOL> symlist = Services.BaseService.GetList<SVG_SYMBOL>("SelectSVG_SYMBOLBySvgID", sym);
                foreach (SVG_SYMBOL _sym in symlist) {
                    svgdefs = svgdefs + _sym.XML;
                }

                txt.Append(svgdefs + "</defs>");
                txt.Append(content.ToString() + "</svg>");

                SvgDocument document = SvgDocumentFactory.CreateDocument();
                if (txt.ToString() != "1") {
                    string filename = Path.GetTempFileName();
                    StreamWriter sw = new StreamWriter(filename);
                    sw.Write(txt.ToString());
                    sw.Close();
                    tlVectorControl1.OpenFile(filename);
                    document = tlVectorControl1.SVGDocument;
                    int chose = Convert.ToInt32(ConfigurationSettings.AppSettings.Get("chose"));
                    //if (chose == 2)
                    //{ convertDoc(document); }
                } else {
                    NullFile(_SvgUID);
                    return;
                }
                document.FileName = svgFile.FILENAME;
                document.SvgdataUid = svgFile.SUID;
                SvgUID = document.SvgdataUid;
                this.Text = document.FileName;
                if (document.RootElement == null) {
                    tlVectorControl1.NewFile();
                    Layer.CreateNew("背景层", tlVectorControl1.SVGDocument);
                    Layer.CreateNew("城市规划层", tlVectorControl1.SVGDocument);
                    Layer.CreateNew("供电区域层", tlVectorControl1.SVGDocument);
                } else {
                    tlVectorControl1.SVGDocument = document;
                }
                tlVectorControl1.SVGDocument.SvgdataUid = SvgUID;
                tlVectorControl1.SVGDocument.FileName = this.Text;
                if (svgFile.SUID.Length > 20) {
                    MapType = "接线图";
                }
                NotDKbutProperty();
                CreateComboBox();
                AddCombolScale();
                Init();
                this.tlVectorControl1.IsPasteGrid = false;
                this.tlVectorControl1.IsShowGrid = false;
                this.tlVectorControl1.IsShowRule = false;
                this.tlVectorControl1.IsShowTip = false;
                contextMenuStrip1.Enabled = false;
                //tlVectorControl1.Operation = ToolOperation.Roam;
                //tlVectorControl1.ScaleRatio = 0.1f;
                //LayerManagerShow();
            } catch (Exception e) {
                MessageBox.Show(e.Message);
            }
        }
Exemple #5
0
        public void SaveAllLayer()
        {
            SaveAllItem();
            string txt = "";
            //Image

            XmlNodeList imglist = tlVectorControl1.SVGDocument.SelectNodes("svg/image");
            foreach (XmlNode node in imglist) {
                string tran = ((XmlElement)node).GetAttribute("xlink:href");
                if (tran.Substring(0, tran.Length - 4) != ((SvgElement)node).ID) {
                    string[] sp = tran.Split(".".ToCharArray());
                    FileStream fs = new FileStream(tran, FileMode.Open, FileAccess.Read);
                    byte[] img = new byte[fs.Length];
                    fs.Read(img, 0, (int)fs.Length);
                    fs.Close();
                    SVG_IMAGE svg_img = new SVG_IMAGE();
                    svg_img.SUID = ((SvgElement)node).ID;
                    svg_img.svgID = tlVectorControl1.SVGDocument.SvgdataUid;
                    svg_img.layerID = ((SvgElement)node).GetAttribute("layer");
                    svg_img.image = img;
                    svg_img.MDATE = System.DateTime.Now;
                    svg_img.col1 = sp[sp.Length - 1];
                    Services.BaseService.Create<SVG_IMAGE>(svg_img);
                    ((SvgElement)node).SetAttribute("xlink:href", ((SvgElement)node).ID + "." + sp[sp.Length - 1]);

                } else {
                    SVG_IMAGE svg_img = new SVG_IMAGE();
                    svg_img.SUID = ((SvgElement)node).ID;
                    svg_img.layerID = ((SvgElement)node).GetAttribute("layer");
                    svg_img.XML = ((SvgElement)node).GetAttribute("transform");
                    Services.BaseService.Update("UpdateSVG_IMAGEXML", svg_img);

                }
            }
            string tems_id = "";
            string[] stryearid = yearID.Split(",".ToCharArray());
            if (stryearid.Length > 1) {
                tems_id = stryearid[1].Replace("'", "");
                tems_id = tems_id.Replace("\"", "");
            }
            //layer
            ArrayList list = tlVectorControl1.SVGDocument.getLayerList();
            for (int i = 0; i < list.Count; i++) {
                txt = "";
                Layer lar = list[i] as Layer;
                bool IsSave = false;

                for (int m = 0; m < SaveID.Count; m++) {
                    if (lar.GetAttribute("ParentID") == SaveID[m].ToString()) {
                        IsSave = true;
                    }
                }
                //for (int j = 0; j<frmlar.NoSave.Count; j++)
                //{
                //    if (lar.ID == ((Layer)frmlar.NoSave[j]).ID)
                //    {
                //        IsSave = false;
                //    }
                //}
                for (int j = 0; j < ChangeLayerList.Count; j++) {
                    if (lar.ID == ChangeLayerList[j].ToString() && IsSave)
                    //if (IsSave)
                    {
                        XmlNodeList nn1 = tlVectorControl1.SVGDocument.SelectNodes("svg/* [@layer='" + lar.ID + "']");
                        foreach (XmlNode node in nn1) {
                            txt = txt + node.OuterXml;
                        }
                        SVG_LAYER _svg = new SVG_LAYER();
                        _svg.SUID = lar.ID;
                        _svg.svgID = SVGUID;
                        _svg = (SVG_LAYER)Services.BaseService.GetObject("SelectSVG_LAYERByKey", _svg);
                        int ny = 0;
                        try { ny = int.Parse(lar.Label.Substring(0, 4)); } catch { }
                        if (_svg != null) {
                            _svg.XML = txt;
                            _svg.NAME = lar.Label;
                            _svg.MDATE = System.DateTime.Now;
                            _svg.OrderID = ny * 100 + list.IndexOf(lar);
                            // _svg.YearID = lar.GetAttribute("ParentID");
                            _svg.IsChange = lar.GetAttribute("IsChange");
                            _svg.visibility = lar.GetAttribute("visibility");
                            _svg.layerType = lar.GetAttribute("layerType");
                            _svg.IsSelect = lar.GetAttribute("IsSelect");
                            Services.BaseService.Update<SVG_LAYER>(_svg);
                        } else {
                            _svg = new SVG_LAYER();
                            _svg.SUID = lar.ID;
                            _svg.NAME = lar.Label;
                            _svg.svgID = SVGUID;
                            _svg.XML = txt;
                            _svg.MDATE = System.DateTime.Now;
                            _svg.OrderID = ny * 100 + list.IndexOf(lar);
                            _svg.YearID = tems_id;// lar.GetAttribute("ParentID");
                            _svg.IsChange = lar.GetAttribute("IsChange");
                            _svg.visibility = lar.GetAttribute("visibility");
                            _svg.layerType = lar.GetAttribute("layerType");
                            _svg.IsSelect = lar.GetAttribute("IsSelect");
                            Services.BaseService.Create<SVG_LAYER>(_svg);
                        }
                        continue;
                    }
                }
            }
            //symbol
            XmlNodeList symlist = tlVectorControl1.SVGDocument.SelectNodes("svg/defs/symbol");
            foreach (XmlNode node in symlist) {
                SVG_SYMBOL _sym = new SVG_SYMBOL();
                _sym.EleID = ((XmlElement)node).GetAttribute("id");
                _sym.svgID = SVGUID;
                _sym = (SVG_SYMBOL)Services.BaseService.GetObject("SelectSVG_SYMBOLByEleID", _sym);
                if (_sym != null) {
                    _sym.XML = node.OuterXml;
                    _sym.MDATE = System.DateTime.Now;
                    Services.BaseService.Update<SVG_SYMBOL>(_sym);
                } else {
                    _sym = new SVG_SYMBOL();
                    _sym.SUID = Guid.NewGuid().ToString();
                    _sym.EleID = ((XmlElement)node).GetAttribute("id");
                    _sym.NAME = ((XmlElement)node).GetAttribute("label");
                    _sym.svgID = SVGUID;
                    _sym.XML = node.OuterXml;
                    _sym.MDATE = System.DateTime.Now;
                    Services.BaseService.Create<SVG_SYMBOL>(_sym);
                }
            }
        }
        public void Open2(string _SvgUID, string yearID)
        {
            try
            {
                string uid = ConfigurationSettings.AppSettings.Get("SvgID");

                StringBuilder txt = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\"?><svg id=\"svg\" width=\"1500\" height=\"1000\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:itop=\"http://www.Itop.com/itop\" transform=\"matrix(1 0 0 1 0 1)\"><defs>");
                string svgdefs = "";
                string layertxt = "";
                StringBuilder content = new StringBuilder();

                if (string.IsNullOrEmpty(_SvgUID)) return;
                SVG_LAYER lar = new SVG_LAYER();
                lar.svgID = uid;
                lar.YearID = "'" + yearID + "'";
                IList<SVG_LAYER> larlist = Services.BaseService.GetList<SVG_LAYER>("SelectSVG_LAYERByYearID", lar);
                foreach (SVG_LAYER _lar in larlist)
                {
                    //layertxt = layertxt + "<layer id=\"" + _lar.SUID + "\" label=\"" + _lar.NAME + "\" layerType=\"" + _lar.layerType + "\" visibility=\"" + _lar.visibility + "\" ParentID=\"" + _lar.YearID + "\" IsSelect=\"" + _lar.IsSelect + "\" />";
                    content.Append(_lar.XML);
                }
                txt.Append("<layer id=\"layer6666\" label=\"默认层\" />");
                txt.Append(layertxt);

                SVG_SYMBOL sym = new SVG_SYMBOL();
                sym.svgID = uid;
                IList<SVG_SYMBOL> symlist = Services.BaseService.GetList<SVG_SYMBOL>("SelectSVG_SYMBOLBySvgID", sym);
                foreach (SVG_SYMBOL _sym in symlist)
                {
                    svgdefs = svgdefs + _sym.XML;
                }
                txt.Append(svgdefs + "</defs>");
                txt.Append(content.ToString() + "</svg>");

                SvgDocument document = new SvgDocument();
                document.LoadXml(txt.ToString());
                //document.FileName = SvgName;
                document.SvgdataUid = _SvgUID;
                SVGUID = _SvgUID;

                this.Text = document.FileName;
                if (document.RootElement == null)
                {
                    tlVectorControl1.NewFile();
                    Layer.CreateNew("背景层", tlVectorControl1.SVGDocument);
                    Layer.CreateNew("城市规划层", tlVectorControl1.SVGDocument);
                    Layer.CreateNew("供电区域层", tlVectorControl1.SVGDocument);
                }
                else
                {
                    tlVectorControl1.SVGDocument = document;
                }
                tlVectorControl1.SVGDocument.SvgdataUid = SVGUID;
                tlVectorControl1.SVGDocument.FileName = this.Text;
                tlVectorControl1.DocumentbgColor = Color.White;
                tlVectorControl1.BackColor = Color.White;

                foreach (XmlElement ele in document.RootElement.ChildNodes)
                {
                    ele.SetAttribute("layer", "layer6666");
                    if (((SvgElement)ele).LocalName == "polyline")
                    {
                        ele.SetAttribute("flag", "1");
                    }
                }

                SvgDocument.currentLayer = "layer6666";

            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
            //tlVectorControl1.SVGDocument.SvgdataUid = "";
        }
Exemple #7
0
        public void Open()
        {
            string id = "''";
            /*   frmLayerGrade fgrade = new frmLayerGrade();
               fgrade.SymbolDoc = tlVectorControl1.SVGDocument;
               fgrade.InitData(_SvgUID);

               if (fgrade.ShowDialog() == DialogResult.OK)
               {
                   id = fgrade.GetSelectNode();
                   yearID = id;
               }
               else
               {
                   id = fgrade.GetSelectNode();
                   yearID = id;
               }*/
            string _SvgUID = "";
            string svgkey = ConfigurationSettings.AppSettings.Get("SvgID").ToString();
            bool create = false;
            frmGProg ff = new frmGProg();
            ff.pspflag = false;
            if (ff.ShowDialog() == DialogResult.OK)
            {
                _SvgUID = ff.Key;
                string strName = ff.Name1;
                StringBuilder txt = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\"?><svg id=\"svg\" width=\"1500\" height=\"1000\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:itop=\"http://www.Itop.com/itop\" transform=\"matrix(1 0 0 1 0 1)\"><defs>");
                string svgdefs = "";
                string layertxt = "";
                StringBuilder content = new StringBuilder();

                //if (string.IsNullOrEmpty(_SvgUID)) return;
                try
                {
                    SVGFILE svgFile = new SVGFILE();
                    svgFile.SUID = _SvgUID;
                    svgFile = (SVGFILE)Services.BaseService.GetObject("SelectSVGFILEByKey", svgFile);
                    if (svgFile == null)
                    {
                        create = true;
                        svgFile = new SVGFILE();
                        svgFile.SUID = _SvgUID;
                        svgFile.FILENAME = strName;
                        Services.BaseService.Create<SVGFILE>(svgFile);
                    }
                    //SvgDocument document = CashSvgDocument;
                    //if (document == null) {
                    SVG_LAYER lar = new SVG_LAYER();
                    lar.svgID = _SvgUID;
                    lar.YearID = id;
                    IList<SVG_LAYER> larlist = Services.BaseService.GetList<SVG_LAYER>("SelectSVG_LAYERByYearID", lar);
                    foreach (SVG_LAYER _lar in larlist)
                    {
                        layertxt = layertxt + "<layer id=\"" + _lar.SUID + "\" label=\"" + _lar.NAME + "\" layerType=\"" + _lar.layerType + "\" visibility=\"" + _lar.visibility + "\" ParentID=\"" + _lar.YearID + "\" IsSelect=\"" + _lar.IsSelect + "\" />";
                        content.Append(_lar.XML);
                    }

                    if (larlist.Count == 0)
                    {
                        layertxt = layertxt + "<layer id=\"" + svgFile.SUID + "1" + "\" label=\"近期网架规划层\" layerType=\"电网规划层\" visibility=\"visible\" ParentID=\"\" IsSelect=\"true\" />\r\n";
                        layertxt = layertxt + "<layer id=\"" + svgFile.SUID + "2" + "\" label=\"中期网架规划层\" layerType=\"电网规划层\" visibility=\"visible\" ParentID=\"\" IsSelect=\"true\" />\r\n";
                        layertxt = layertxt + "<layer id=\"" + svgFile.SUID + "3" + "\" label=\"远期网架规划层\" layerType=\"电网规划层\" visibility=\"visible\" ParentID=\"\" IsSelect=\"true\" />\r\n";
                        layertxt = layertxt + "<layer id=\"" + svgFile.SUID + "4" + "\" label=\"整体规划层\" layerType=\"电网规划层\" visibility=\"visible\" ParentID=\"\" IsSelect=\"true\" />\r\n";
                        layertxt = layertxt + "<layer id=\"" + svgFile.SUID + "5" + "\" label=\"背景参考层\" layerType=\"电网规划层\" visibility=\"visible\" ParentID=\"\" IsSelect=\"true\" />\r\n";
                        content.Append("<text x=\"1\" y=\"1\" layer=\"" + svgFile.SUID + "1" + "\" id=\"text4611ec7b9f37\" font-size=\"1\" >1</text>");
                    }
                    txt.Append(layertxt);

                    SVG_SYMBOL sym = new SVG_SYMBOL();
                    sym.svgID = svgkey;
                    IList<SVG_SYMBOL> symlist = Services.BaseService.GetList<SVG_SYMBOL>("SelectSVG_SYMBOLBySvgID", sym);
                    foreach (SVG_SYMBOL _sym in symlist)
                    {
                        svgdefs = svgdefs + _sym.XML;
                    }

                    txt.Append(svgdefs + "</defs>");
                    txt.Append(content.ToString() + "</svg>");

                    SvgDocument document = SvgDocumentFactory.CreateDocument();
                    //if (txt.ToString() != "1")
                    //{
                    string filename = Path.GetTempFileName();
                    if (File.Exists("tmp080321.temp"))
                    {
                        filename = "tmp080321.temp";
                    }
                    else
                    {
                        StreamWriter sw = new StreamWriter(filename);
                        sw.Write(txt.ToString());
                        sw.Close();
                    }
                    tlVectorControl1.OpenFile(filename);
                    document = tlVectorControl1.SVGDocument;
                    //    int chose = Convert.ToInt32(ConfigurationSettings.AppSettings.Get("chose"));

                    //}
                    //else
                    //{
                    //    //NullFile(_SvgUID);
                    //    return;
                    //}
                    document.FileName = svgFile.FILENAME;
                    document.SvgdataUid = svgFile.SUID;

                    this.Text = document.FileName;
                    //if(create){
                    //    Layer lay = Layer.CreateNew("规划层", document);
                    //   lay.SetAttribute("layerType", "电网规划层");
                    //}

                    tlVectorControl1.SVGDocument = document;

                    tlVectorControl1.SVGDocument.FileName = this.Text;
                    AddCombolScale();
                    ClearDEV();
                }

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

            }
        }
Exemple #8
0
        public void InitData()
        {
            IList svglist = Services.BaseService.GetList("SelectLayerFileList", svg);
            LayerGrade lg = new LayerGrade();
            IList ilist = Services.BaseService.GetList("SelectLayerGradeList", lg);
            DataTable dataTable = DataConverter.ToDataTable(ilist, typeof(LayerGrade));
            SVG_LAYER sl = new SVG_LAYER();
            IList list = Services.BaseService.GetList("SelectSVG_LAYERList", sl);
            treeList1.DataSource = dataTable;
            string ide = treeList1.Nodes[0].GetValue(0).ToString();//��ȡijһ�ڵ��ֵ
            foreach (SVG_LAYER lay in list)
            {
                if (lay.layerType == "�����滮��")
                {
                    LayerGrade obj = new LayerGrade();
                    obj.SUID = lay.SUID;
                    obj.Name = lay.NAME;
                    obj.ParentID = lay.YearID;
                    string tempobj = "";
                    string tempyear = "";
                    if (obj.Name.ToString().Length >= 3)
                    {
                        tempobj = obj.Name.ToString().Substring(obj.Name.ToString().Length - 3, 3);
                    }
                    if (obj.Name.ToString().Length >= 4)
                    {
                        tempyear = obj.Name.ToString().Substring(0, 4);
                    }
                    if (tempobj == "���վ")
                    {
                        for (int j = 0; j < treeList1.Nodes.Count; j++)
                        {
                            if (treeList1.Nodes[j].GetValue(0).ToString().Length > 3)
                            {
                                if (treeList1.Nodes[j].GetValue(0).ToString().Substring(0, 4) == tempyear)
                                {
                                    substation _substat = new substation();
                                    _substat.LayerID = obj.SUID;
                                    _substat.ObligateField1 = "220";
                                    IList subList = Services.BaseService.GetList("SelectsubstationByLayerIDandObligateField1", _substat);

                                    int templ = treeList1.Nodes[j].Nodes.Count;
                                    treeList1.AppendNode(obj.Name, treeList1.Nodes[j]);
                                    treeList1.Nodes[j].Nodes[templ].SetValue(0, obj.Name);
                                    if (subList.Count != 0)
                                    {
                                        int jj = 0;
                                        foreach (substation temps in subList)
                                        {
                                            treeList1.AppendNode(temps, treeList1.Nodes[j].Nodes[templ]);
                                            treeList1.Nodes[j].Nodes[templ].Nodes[jj].SetValue(0, temps.EleName);
                                            jj++;
                                        }
                                    }
                                    _substat.ObligateField1 = "110";
                                    subList = Services.BaseService.GetList("SelectsubstationByLayerIDandObligateField1", _substat);

                                    templ = treeList1.Nodes[j].Nodes.Count;
                                    treeList1.AppendNode(obj.Name, treeList1.Nodes[j]);
                                    treeList1.Nodes[j].Nodes[templ].SetValue(0, obj.Name);
                                    if (subList.Count != 0)
                                    {
                                        int jj = 0;
                                        foreach (substation temps in subList)
                                        {
                                            treeList1.AppendNode(temps, treeList1.Nodes[j].Nodes[templ]);
                                            treeList1.Nodes[j].Nodes[templ].Nodes[jj].SetValue(0, temps.EleName);
                                            jj++;
                                        }
                                    }
                                    _substat.ObligateField1 = "66";
                                    subList = Services.BaseService.GetList("SelectsubstationByLayerIDandObligateField1", _substat);

                                    templ = treeList1.Nodes[j].Nodes.Count;
                                    treeList1.AppendNode(obj.Name, treeList1.Nodes[j]);
                                    treeList1.Nodes[j].Nodes[templ].SetValue(0, obj.Name);
                                    if (subList.Count != 0)
                                    {
                                        int jj = 0;
                                        foreach (substation temps in subList)
                                        {
                                            treeList1.AppendNode(temps, treeList1.Nodes[j].Nodes[templ]);
                                            treeList1.Nodes[j].Nodes[templ].Nodes[jj].SetValue(0, temps.EleName);
                                            jj++;
                                        }
                                    }
                                    _substat.ObligateField1 = "500";
                                    subList = Services.BaseService.GetList("SelectsubstationByLayerIDandObligateField1", _substat);

                                    templ = treeList1.Nodes[j].Nodes.Count;
                                    treeList1.AppendNode(obj.Name, treeList1.Nodes[j]);
                                    treeList1.Nodes[j].Nodes[templ].SetValue(0, obj.Name);
                                    if (subList.Count != 0)
                                    {
                                        int jj = 0;
                                        foreach (substation temps in subList)
                                        {
                                            treeList1.AppendNode(temps, treeList1.Nodes[j].Nodes[templ]);
                                            treeList1.Nodes[j].Nodes[templ].Nodes[jj].SetValue(0, temps.EleName);
                                            jj++;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            Application.DoEvents();
        }
        public void DeleteLayer(Layer layer)
        {
            if (!CkRight(layer)) {
                MessageBox.Show("����ͼ�㲻�ܸ�����ɾ����", "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            //if (true) {
            //    LineInfo _line = new LineInfo();
            //    _line.LayerID = layer.ID;
            //    Services.BaseService.Update("DeleteLineInfoByLayerID", _line);
            //    glebeProperty gle = new glebeProperty();
            //    gle.LayerID = layer.ID;
            //    Services.BaseService.Update("DeleteglebePropertyByLayerID", gle);
            //    substation _sub = new substation();
            //    _sub.LayerID = layer.ID;
            //    Services.BaseService.Update("DeletesubstationByLayerID", _sub);
            //}
            XmlNodeList list = this.SymbolDoc.SelectNodes("//*[@layer='" + layer.ID + "']");
            foreach (XmlNode elNode in list) {
                this.SymbolDoc.RootElement.RemoveChild(elNode);
            }

            //Services.BaseService.Update("UpdateGraPowerRelationByLayerID", layer.ID);
            //���ĵ����Ƴ�
            SVG_LAYER lar = new SVG_LAYER();
            lar.SUID = layer.ID;
            Services.BaseService.Update("DeleteSVG_LAYER", lar);
            layer.Remove();
            //���б����Ƴ�
            TreeListNode node = treeList1.FindNodeByKeyID(layer.ID);
            if (node != null) {
                if (node.ParentNode == null)
                    treeList1.Nodes.Remove(node);
                else
                    node.ParentNode.Nodes.Remove(node);
            }
            layer = null;
            LayerName = "";
        }
        void treeList1_AfterDragNode(object sender, DevExpress.XtraTreeList.NodeEventArgs e)
        {
            try {

                SVG_LAYER lay = new SVG_LAYER() { ParentID = e.Node["ParentID"].ToString(), SUID = e.Node["SUID"].ToString(), svgID = e.Node["svgID"].ToString() };
                SVG_LAYER lay2 = null;
                List<TreeListNode> updateNodes = new List<TreeListNode>();
                foreach (TreeListNode node2 in treeList1.Selection) {
                    lay.SUID = node2["SUID"].ToString();
                    lay2 = Services.BaseService.GetOneByKey<SVG_LAYER>(lay);
                    if (lay2 != null) {
                        lay2.ParentID = lay.ParentID;
                        Services.BaseService.Update<SVG_LAYER>(lay2);
                        updateNodes.Add(node2);

                    }
                }
                foreach (TreeListNode node3 in updateNodes) {
                    node3["ParentID"] = lay.ParentID;
                }
            } catch (Exception err) {
                MessageBox.Show(err.Message);
            }
        }
        private void simpleB(string id)
        {
            int itemcount = (treeList1.DataSource as DataTable).Rows.Count;
            TreeListNode node = treeList1.GetNodeByVisibleIndex(0);
            int num = 0;
            if (node != null) {
                f.SetText("�����У���ȴ�......");
                f.Show();
                while (node != null) {

                    num++;
                    string itemname = node["NAME"].ToString();
                    if (itemname.Length > 4) {
                        string item4 = itemname.Substring(0, 4);
                        int year = 0;

                        if ((IsInt(item4)) && node.Checked == true) {
                            year = int.Parse(item4);
                            Layer layer = symbolDoc.Layers[node["SUID"].ToString()] as Layer;
                            if (layer == null) continue;
                            f.SetText("���ڸ���" + layer.Label + "�㡣");
                            string str = layer.GetAttribute("layerType");
                            Layer layer2 = CopyLayer2(layer, id);
                            if (layer2 != null) {
                                if (layer.Visible) {
                                    layer.Visible = false;
                                    layer.Visible = true;
                                }
                                layer2.SetAttribute("layerType", str);
                                //this.checkedListBox1.Items.Add(layer2);
                                layer2.Visible = false;

                                string xml = "";
                                XmlNodeList oldList = symbolDoc.SelectNodes("//*[@layer=\"" + layer2.ID + "\"]");
                                for (int i = 0; i < oldList.Count; i++) {
                                    xml = xml + ((SvgElement)oldList[i]).OuterXml;
                                }
                                SVG_LAYER obj = new SVG_LAYER();
                                obj.SUID = layer2.ID;
                                obj.svgID = symbolDoc.SvgdataUid;
                                obj.NAME = layer2.Label;
                                obj.MDATE = System.DateTime.Now;
                                obj.OrderID = year + itemcount + num + 10;
                                obj.YearID = id;//((LayerGrade)list[0]).SUID;
                                obj.layerType = "�����滮��";
                                obj.visibility = "visible";
                                obj.IsSelect = "true";
                                obj.XML = xml;
                                Services.BaseService.Create<SVG_LAYER>(obj);
                                //addtotreelist(obj);
                            }
                        }
                    }
                    node = node.NextNode;

                }
                f.Hide();
            }
        }
        //private void simpleButton5_Click(object sender, EventArgs e)
        //{
        //    int index = this.checkedListBox1.SelectedIndex;
        //    if (index>0)
        //    {
        //        Layer layer = this.checkedListBox1.Items[index] as Layer;
        //        LayerFile temp = new LayerFile();
        //        temp.SvgDataUid = this.symbolDoc.SvgdataUid;
        //        IList lList = Services.BaseService.GetList("SelectLayerFileBySvgDataUid", temp);
        //        foreach (LayerFile lay in lList)
        //        {
        //            if (lay.LayerFileName==layer.Label)
        //            {
        //                MessageBox.Show("�ĵ����Ѿ�����ͬ��ͼ��,���޸�ͼ�����ƺ󵼳���", "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
        //                return;
        //            }
        //        }
        //        string strsvgData = this.symbolDoc.SelectNodesToString("svg/*[@layer='" + layer.ID + "']|svg/defs");
        //        LayerFile layerFile = new LayerFile();
        //        layerFile.SUID = Guid.NewGuid().ToString();
        //        layerFile.LayerID = layer.ID;
        //        layerFile.LayerFileName = layer.Label;
        //        layerFile.SvgDataUid = this.symbolDoc.SvgdataUid;
        //        layerFile.LayerOuterXml = strsvgData;
        //        Services.BaseService.Create<LayerFile>(layerFile);
        //        DeleteLayer(layer);
        //    }
        //    //StreamWriter sw = new StreamWriter("c:\\1.xml");
        //    //sw.Write(str1);
        //    //sw.Close();
        //    //sw = new StreamWriter("c:\\2.txt");
        //    //sw.Write(str2);
        //    //sw.Close();
        //    //sw = new StreamWriter("c:\\3.xml");
        //    //sw.Write(str3);
        //    //sw.Close();
        //    //sw = new StreamWriter("c:\\4.txt");
        //    //sw.Write(str4);
        //    //sw.Close();
        //    //sw = new StreamWriter("c:\\5.xml");
        //    //sw.Write(newOutXml);
        //    //sw.Close();
        //    //string str2 = this.SymbolDoc.SvgdataUid;
        //    //SVGFILE svg = new SVGFILE();
        //    //svg = (SVGFILE)svglist[0];
        //    //svg.SVGDATA = this.SymbolDoc.OuterXml;
        //    //Services.BaseService.Update<SVGFILE>(svg);
        //}
        private Layer CopyLayer(Layer layer)
        {
            Layer layer2 = Layer.CreateNew(layer.Label + " ����", this.SymbolDoc);
            layer2.SetAttribute("ParentID", layer.GetAttribute("ParentID"));
            //foreach (SvgElement g in layer.GraphList)
            //{
            //    layer2.GraphList.Add(g);
            //}
            SVG_LAYER la = new SVG_LAYER();
            la.SUID = layer.ID;
            la.svgID = symbolDoc.SvgdataUid;
            la = (SVG_LAYER)Services.BaseService.GetObject("SelectSVG_LAYERByKey", la);
            if (la != null) {
                la.SUID = layer2.ID;
                la.NAME = layer2.Label;
                Services.BaseService.Create<SVG_LAYER>(la);
                DataTable dt = treeList1.DataSource as DataTable;
                dt.Rows.Add(Itop.Common.DataConverter.ObjectToRow(la, dt.NewRow()));
            }
            this.SymbolDoc.NumberOfUndoOperations = (2 * layer2.GraphList.Count) + 200;
            SvgElementCollection sc = layer.GraphList;
            for (int i = layer.GraphList.Count - 1; i >= 0; i--) {
                SvgElement element = sc[i] as SvgElement;
                SvgElement temp = element.Clone() as SvgElement;
                //if (temp.Name=="use"){
                if (temp.GetAttribute("CopyOf") == "") {
                    temp.SetAttribute("CopyOf", temp.ID);
                }
                //else
                //{
                //    temp.SetAttribute("CopyOf", temp.ID);
                //}
                //}
                IGraph graph = (IGraph)layer2.AddElement(temp);
                graph.Layer = layer2;

                //LineInfo _line = new LineInfo();
                //_line.EleID = element.ID;
                //_line.SvgUID = this.SymbolDoc.SvgdataUid;
                //IList lineInfoList = Services.BaseService.GetList("SelectLineInfoByEleID", _line);
                /*  PSPDEV _line = new PSPDEV();
                  _line.EleID = element.ID;
                  _line.SvgUID = this.SymbolDoc.SvgdataUid;
                  IList lineInfoList = Services.BaseService.GetList("SelectPSPDEVBySvgUIDandEleID", _line);

                  foreach (PSPDEV line in lineInfoList)
                  {
                      line.SUID = Guid.NewGuid().ToString();
                      line.LayerID = layer2.ID;
                      line.EleID = temp.ID;
                      line.Type = "05";
                      Services.BaseService.Create<PSPDEV>(line);
                  }
                  glebeProperty gle = new glebeProperty();
                  gle.EleID = element.ID;
                  gle.SvgUID = this.SymbolDoc.SvgdataUid;
                  IList gleProList=Services.BaseService.GetList("SelectglebePropertyByEleID", gle);
                  foreach (glebeProperty gleP  in gleProList)
                  {
                      gleP.UID = Guid.NewGuid().ToString();
                      gleP.LayerID = layer2.ID;
                      gleP.EleID = temp.ID;
                      Services.BaseService.Create<glebeProperty>(gleP);
                  }
                  PSP_Substation_Info _sub = new PSP_Substation_Info();
                  _sub.EleID = element.ID;
                  _sub.AreaID = this.SymbolDoc.SvgdataUid;
                  IList substationList = Services.BaseService.GetList("SelectPSP_Substation_InfoListByEleID", _sub);
                  foreach (PSP_Substation_Info sub in substationList)
                  {
                      sub.UID = Guid.NewGuid().ToString();
                      sub.LayerID = layer2.ID;
                      sub.EleID = temp.ID;
                      Services.BaseService.Create<PSP_Substation_Info>(sub);
                  }
                 */
            }
            this.SymbolDoc.NotifyUndo();
            return layer2;
        }
        private Layer CopyLayer(Layer layer)
        {
            Layer layer2 = Layer.CreateNew(layer.Label + " ����", this.SymbolDoc);
            layer2.SetAttribute("ParentID", layer.GetAttribute("ParentID"));
            //foreach (SvgElement g in layer.GraphList)
            //{
            //    layer2.GraphList.Add(g);
            //}
            SVG_LAYER la = new SVG_LAYER();
            la.SUID = layer.ID;
            la.svgID = symbolDoc.SvgdataUid;
            la = (SVG_LAYER)Services.BaseService.GetObject("SelectSVG_LAYERByKey", la);
            if (la != null)
            {
                la.SUID = layer2.ID;
                la.NAME = layer2.Label;
                Services.BaseService.Create<SVG_LAYER>(la);
            }
            this.SymbolDoc.NumberOfUndoOperations = (2 * layer2.GraphList.Count) + 200;
            SvgElementCollection sc = layer.GraphList;
            for (int i = layer.GraphList.Count - 1; i >= 0; i--)
            {
                SvgElement element = sc[i] as SvgElement;
                SvgElement temp = element.Clone() as SvgElement;
                //if (temp.Name=="use"){
                if (temp.GetAttribute("CopyOf") == "")
                {
                    temp.SetAttribute("CopyOf", temp.ID);
                }
                //else
                //{
                //    temp.SetAttribute("CopyOf", temp.ID);
                //}
                //}
                IGraph graph = (IGraph)layer2.AddElement(temp);
                graph.Layer = layer2;

               /* LineInfo _line = new LineInfo();
                _line.EleID = element.ID;
                _line.SvgUID = this.SymbolDoc.SvgdataUid;
                IList lineInfoList = Services.BaseService.GetList("SelectLineInfoByEleID", _line);
                foreach (LineInfo line in lineInfoList)
                {
                    line.UID = Guid.NewGuid().ToString();
                    line.LayerID = layer2.ID;
                    line.EleID = temp.ID;
                    Services.BaseService.Create<LineInfo>(line);
                }
                glebeProperty gle = new glebeProperty();
                gle.EleID = element.ID;
                gle.SvgUID = this.SymbolDoc.SvgdataUid;
                IList gleProList = Services.BaseService.GetList("SelectglebePropertyByEleID", gle);
                foreach (glebeProperty gleP in gleProList)
                {
                    gleP.UID = Guid.NewGuid().ToString();
                    gleP.LayerID = layer2.ID;
                    gleP.EleID = temp.ID;
                    Services.BaseService.Create<glebeProperty>(gleP);
                }
                substation _sub = new substation();
                _sub.EleID = element.ID;
                _sub.SvgUID = this.SymbolDoc.SvgdataUid;
                IList substationList = Services.BaseService.GetList("SelectsubstationByEleID", _sub);
                foreach (substation sub in substationList)
                {
                    sub.UID = Guid.NewGuid().ToString();
                    sub.LayerID = layer2.ID;
                    sub.EleID = temp.ID;
                    Services.BaseService.Create<substation>(sub);
                }*/
            }
            this.SymbolDoc.NotifyUndo();
            return layer2;
        }
        private void simpleButton1_Click_1(object sender, EventArgs e)
        {
            string text1 = textEdit1.Text;
            string text2 = textEdit2.Text;
            if(textEdit1.Text==""){
                MessageBox.Show("��ָ��Ҫ���Ƶ���ݡ�", "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                textEdit1.Focus();
                return;
            }
            if (textEdit2.Text == "")
            {
                MessageBox.Show("��ָ��Ҫ���Ƶ���Ŀ����ݡ�", "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                textEdit2.Focus();
                return;
            }
            LayerGrade gra = new LayerGrade();
            gra.Name = text2+"%";
            IList <LayerGrade> list= Services.BaseService.GetList<LayerGrade>("SelectLayerGradeByYear", gra);
            if(list.Count==0){
                MessageBox.Show("û���ҵ�ָ���������Ϣ�����Ƚ�����Ӧ��ݵ�ͼ��ּ���", "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            int itemcount = checkedListBox1.Items.Count;
            if (checkedListBox1.Items != null)
            {
                f.SetText("�����У���ȴ�......");
                f.Show();
                for (int num = 0; num < itemcount; num++)
                {

                    string itemname = checkedListBox1.Items[num].ToString();
                    string item4 = itemname.Substring(0, 4);
                    if ((item4 == text1) && (text2 != "") && checkedListBox1.GetItemChecked(num)==true)
                    {
                        Layer layer = this.checkedListBox1.Items[num] as Layer;
                        f.SetText("��ѡ��" + checkedListBox1.CheckedItems.Count + "�㣬���ڸ���" + layer.Label + "�㡣");
                        string str = layer.GetAttribute("layerType");
                        Layer layer2 = CopyLayer2(layer, text2);
                        if (layer2 != null)
                        {
                            if (layer.Visible)
                            {
                                layer.Visible = false;
                                layer.Visible = true;
                            }
                            layer2.SetAttribute("layerType", str);
                            this.checkedListBox1.Items.Add(layer2);
                            layer2.Visible = false;

                            string xml = "";
                            XmlNodeList oldList = symbolDoc.SelectNodes("//*[@layer=\"" + layer2.ID + "\"]");
                            for (int i = 0; i < oldList.Count; i++)
                            {
                                xml = xml+((SvgElement)oldList[i]).OuterXml;
                            }
                            SVG_LAYER obj = new SVG_LAYER();
                            obj.SUID = layer2.ID;
                            obj.svgID = symbolDoc.SvgdataUid;
                            obj.NAME = layer2.Label;
                            obj.MDATE = System.DateTime.Now;
                            obj.OrderID = num + 10;
                            obj.YearID = ((LayerGrade)list[0]).SUID;
                            obj.layerType = "�����滮��";
                            obj.visibility = "visible";
                            obj.IsSelect = "true";
                            obj.XML = xml;
                            Services.BaseService.Create<SVG_LAYER>(obj);
                        }
                    }

                }
                f.Hide();
            }
        }
        private void bbteditlayer_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Layer layer = getFocusLayer();
            if (layer != null)
            {

                if (!CkRight(layer))
                {
                    MessageBox.Show("����ͼ�㲻�ܸ�����ɾ����", "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                frmInput dlg = new frmInput();
                dlg.id = symbolDoc.SvgdataUid;
                dlg.symbolDoc = symbolDoc;
                dlg.InputString = layer.Label;
                dlg.InputType = layer.GetAttribute("layerType");

                DialogResult d = dlg.ShowDialog(this);
                if (d == DialogResult.OK)
                {
                    layer.Label = dlg.InputString;
                    layer.SetAttribute("layerType", dlg.InputType);
                    treeList1.FocusedNode.SetValue("Name", dlg.InputString);
                    treeList1.Refresh();
                    //InitData();
                }
                if (d == DialogResult.Retry)
                {
                    if (dlg.list.Count > 1)
                    {
                        layer.SetAttribute("ParentID", dlg.list[1].ToString());
                        SVG_LAYER temp = new SVG_LAYER();
                        temp.SUID = layer.ID;
                        temp.svgID = symbolDoc.SvgdataUid;
                        SVG_LAYER lar = (SVG_LAYER)Services.BaseService.GetObject("SelectSVG_LAYERByKey", temp);
                        lar.YearID = dlg.list[1].ToString();
                        Services.BaseService.Update<SVG_LAYER>(lar);
                    }
                }

            }
        }
        private void btAdd_Click(object sender, EventArgs e)
        {
            frmInput dlg = new frmInput();
            dlg.InputType = progtype;
            if (dlg.ShowDialog(this) == DialogResult.OK) {
                if (Layer.CkLayerExist(dlg.InputString, this.SymbolDoc)) {
                    MessageBox.Show("�ĵ����Ѿ�����ͬ��ͼ�㡣", "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                Layer lar = Layer.CreateNew(dlg.InputString, this.SymbolDoc);
                lar.SetAttribute("layerType", dlg.InputType);
                if (ilist.Count > 0) {
                    lar.SetAttribute("ParentID", ilist[0].ToString());
                }
                addflag = true;
                //this.checkedListBox1.Items.Add(lar, true);
                //checkedListBox1.SelectedIndex = checkedListBox1.Items.Count - 1;
                DataTable dt = treeList1.DataSource as DataTable;
                SVG_LAYER _svg = new SVG_LAYER() { SUID = lar.ID, NAME = lar.Label };
                if (treeList1.FocusedNode != null) {
                    _svg.ParentID = treeList1.FocusedNode["ParentID"].ToString();
                    _svg.YearID = ilist[0].ToString();
                    _svg.svgID = symbolDoc.SvgdataUid;
                    _svg.OrderID = int.Parse(treeList1.FocusedNode["OrderID"].ToString()) + 1;
                    _svg.MDATE = DateTime.Now;
                    Services.BaseService.Create<SVG_LAYER>(_svg);
                }
                DataRow row = dt.NewRow();
                dt.Rows.Add(DataConverter.ObjectToRow(_svg, row));

                //_svg.SUID = lar.ID;
                //_svg.NAME = lar.Label;
                //_svg.svgID = SVGUID;
                //_svg.XML = txt;
                //_svg.MDATE = System.DateTime.Now;
                //_svg.OrderID = ny * 100 + list.IndexOf(lar);
                //_svg.YearID = tems_id;// lar.GetAttribute("ParentID");
                //_svg.IsChange = lar.GetAttribute("IsChange");
                //_svg.visibility = lar.GetAttribute("visibility");
                //_svg.layerType = lar.GetAttribute("layerType");
                //_svg.IsSelect = lar.GetAttribute("IsSelect");
                //Services.BaseService.Create<SVG_LAYER>(_svg);
                //if (this.checkedListBox1.SelectedIndex != -1) {
                //    Layer layer = this.checkedListBox1.Items[this.checkedListBox1.SelectedIndex] as Layer;
                //    if (checkedListBox1.GetItemCheckState(checkedListBox1.SelectedIndex) == CheckState.Checked) {
                //        layer.Visible = true;
                //    } else {
                //        layer.Visible = false;
                //    }
                //}

                //string guid=Guid.NewGuid().ToString();
                //GraPowerRelation gra = new GraPowerRelation();
                //gra.UID = Guid.NewGuid().ToString();
                //gra.PowerEachID = guid;
                //gra.LayerID = lar.ID;
                //Services.BaseService.Create<GraPowerRelation>(gra);

                //SVG_LAYER layer = new SVG_LAYER();
                //layer.SUID = lar.ID;
                //layer.svgID = symbolDoc.SvgdataUid;
                //layer.NAME = lar.Label;
                //layer.XML = txt;
                //layer.MDATE = System.DateTime.Now;
                //layer.OrderID = list.IndexOf(lar);
                //layer.YearID = lar.GetAttribute("ParentID");
                //layer.IsChange = lar.GetAttribute("IsChange");
                //layer.visibility = lar.GetAttribute("visibility");
                //layer.layerType = lar.GetAttribute("layerType");
                //layer.IsSelect = lar.GetAttribute("IsSelect");
                //Services.BaseService.Create<SVG_LAYER>(_svg);

            }
        }
        public void InitData()
        {
            checkedListBox1.Items.Clear();
            if (symbolDoc != null) {
                symbolDoc2 = symbolDoc;
                SVG_LAYER lar = new SVG_LAYER();
                lar.svgID = symbolDoc.SvgdataUid;

                 IList<SVG_LAYER> larlist=null;
                 if (YearID != "")
                 {
                     lar.YearID = "YearID in (" + YearID + ") or layerType='���й滮��'";
                     larlist = Services.BaseService.GetList<SVG_LAYER>("SelectSVG_LAYERByWhere", lar);
                 }
                 else
                 {
                     if (progtype == "���й滮��")
                     {
                         lar.YearID = " (layerType = '���й滮��' OR layerType = '������Ϣ��' OR YearID = '') ";
                     }
                     else
                     {
                         lar.YearID = " (layerType = '������Ϣ��') ";
                     }

                     larlist = Services.BaseService.GetList<SVG_LAYER>("SelectSVG_LAYERByWhere", lar);
                 }
                DataTable table = Itop.Common.DataConverter.ToDataTable((IList)larlist, typeof(SVG_LAYER));
                treeList1.DataSource = table;
                XmlNodeList list1 = symbolDoc.GetElementsByTagName("layer");
                for (int num1 = 0; num1 < list1.Count; num1++) {
                    Layer element1 = list1[num1] as Layer;
                    if (progtype == "������Ϣ��") {
                        if (element1.GetAttribute("layerType") == progtype) {
                            string strLayerID = element1.GetAttribute("id");
                            if (element1.Visible) {
                                TreeListNode node = treeList1.FindNodeByKeyID(strLayerID);
                                if (node != null)
                                    node.Checked = true;
                            }
                        }
                    }
                    if (progtype == "���й滮��") {
                        if (spatialflag) {
                            if (element1.GetAttribute("layerType") == progtype || element1.GetAttribute("layerType") == "������Ϣ��") {
                                string strLayerID = element1.GetAttribute("id");
                                if (element1.Visible) {
                                    TreeListNode node = treeList1.FindNodeByKeyID(strLayerID);
                                    if (node != null)
                                        node.Checked = true;
                                }
                            }

                        } else {
                            string strLayerID = element1.GetAttribute("id");
                            if (element1.Visible) {
                                TreeListNode node = treeList1.FindNodeByKeyID(strLayerID);
                                if (node != null)
                                    node.Checked = true;
                            }
                        }
                        barSubItem1.Enabled = false;
                    }
                    if (progtype == "�����滮��") {

                        bool ck = false;
                        if ((element1.GetAttribute("visibility") == "visible")) {
                            ck = true;
                        }
                        string strLayerID = element1.GetAttribute("id");
                        //int n = this.checkedListBox1.Items.Add(element1, element1.Visible);
                        if (element1.Visible) {
                            //checkedListBox1.SetItemChecked(n, ck);
                            TreeListNode node = treeList1.FindNodeByKeyID(strLayerID);
                            if (node != null)
                                node.Checked = true;
                        }

                    }
                    if (progtype == "���վѡַ") {

                        bool ck = false;
                        if ((element1.GetAttribute("visibility") == "visible")) {
                            ck = true;
                        }
                        string strLayerID = element1.GetAttribute("id");
                        int n = this.checkedListBox1.Items.Add(element1, element1.Visible);
                        if (element1.Visible) {
                            checkedListBox1.SetItemChecked(n, ck);
                        }

                    }

                    if (progtype == "���ڽ���ͼ") {
                        if (element1.GetAttribute("layerType") == progtype) {
                            string strLayerID = element1.GetAttribute("id");
                            int n = this.checkedListBox1.Items.Add(element1, element1.Visible);
                            if (element1.Visible) {
                                checkedListBox1.SetItemChecked(n, true);
                            }
                            //if (strLayerID == SvgDocument.currentLayer)
                            //{
                            //    this.checkedListBox1.SelectedIndex = num1;
                            //}
                        }
                    }
                }
                Layerlist = symbolDoc.getLayerList();
                //ɾ�������ͼ��
                //for (int m = 0; m < table.Rows.Count; m++)
                //{
                //    if (!table.Rows[m]["SUID"].ToString().Contains("FA") && !table.Rows[m]["NAME"].ToString().Contains("������"))
                //    {
                //        XmlNode node = this.SymbolDoc.SelectSingleNode("//*[@layer='" + table.Rows[m]["SUID"].ToString() + "']");
                //        if (node == null)
                //        {
                //            SVG_LAYER SL = new SVG_LAYER();
                //            SL.SUID = table.Rows[m]["SUID"].ToString();
                //            Services.BaseService.Delete<SVG_LAYER>(SL);
                //            table.Rows.RemoveAt(m);
                //            m--;
                //        }
                //    }
                //}

            }
        }
Exemple #18
0
        public void Open(string _SvgUID)
        {
            try
            {
                //dotNetBarManager1.Bars["mainmenu"].GetItem("WJYHBut").Visible = false; //为版本用
                if (_SvgUID.Length < 20)
                {
                    JxtBar();
                    tlVectorControl1.ContextMenuStrip = null;
                }

                StringBuilder txt = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\"?><svg id=\"svg\" width=\"1500\" height=\"1000\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:itop=\"http://www.Itop.com/itop\" transform=\"matrix(1 0 0 1 0 1)\"><defs>");
                string svgdefs = "";
                string layertxt = "";
                StringBuilder content = new StringBuilder();

                if (string.IsNullOrEmpty(_SvgUID)) return;
                SVG_LAYER lar = new SVG_LAYER();
                lar.svgID = _SvgUID;
                lar.YearID = yearID;
                IList<SVG_LAYER> larlist = Services.BaseService.GetList<SVG_LAYER>("SelectSVG_LAYERByYearID", lar);
                foreach (SVG_LAYER _lar in larlist)
                {
                    layertxt = layertxt + "<layer id=\"" + _lar.SUID + "\" label=\"" + _lar.NAME + "\" layerType=\"" + _lar.layerType + "\" visibility=\"" + _lar.visibility + "\" ParentID=\"" + _lar.YearID + "\" IsSelect=\"" + _lar.IsSelect + "\" />";
                    content.Append(_lar.XML);
                }
                txt.Append(layertxt);

                SVG_SYMBOL sym = new SVG_SYMBOL();
                sym.svgID = _SvgUID;
                IList<SVG_SYMBOL> symlist = Services.BaseService.GetList<SVG_SYMBOL>("SelectSVG_SYMBOLBySvgID", sym);
                foreach (SVG_SYMBOL _sym in symlist)
                {
                    svgdefs = svgdefs + _sym.XML;
                }
                txt.Append(svgdefs + "</defs>");
                txt.Append(content.ToString() + "</svg>");
                SvgDocument document = new SvgDocument();
                document.LoadXml(txt.ToString());
                document.FileName = SvgName;
                document.SvgdataUid = _SvgUID;
                SVGUID = _SvgUID;

                this.Text = document.FileName;
                if (document.RootElement == null)
                {
                    tlVectorControl1.NewFile();
                    Layer.CreateNew("背景层", tlVectorControl1.SVGDocument);
                    Layer.CreateNew("城市规划层", tlVectorControl1.SVGDocument);
                    Layer.CreateNew("供电区域层", tlVectorControl1.SVGDocument);
                }
                else
                {
                    tlVectorControl1.SVGDocument = document;
                }
                tlVectorControl1.SVGDocument.SvgdataUid = SVGUID;
                tlVectorControl1.SVGDocument.FileName = this.Text;
                tlVectorControl1.DocumentbgColor = Color.White;
                tlVectorControl1.BackColor = Color.White;
                //tlVectorControl1.ForeColor = Color.White;
                CreateComboBox();
                xltProcessor = new XLTProcessor(tlVectorControl1);
                xltProcessor.MapView = mapview;
                xltProcessor.OnNewLine += new NewLineDelegate(xltProcessor_OnNewLine);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
            //tlVectorControl1.SVGDocument.SvgdataUid = "";
        }
 internal void AddLayer(Layer lar, bool p)
 {
     SVG_LAYER _svg = new SVG_LAYER() { SUID = lar.ID, NAME = lar.Label };
     if (treeList1.FocusedNode != null) {
         if(ilist.Count>0)
         _svg.YearID = ilist[0].ToString();
         _svg.svgID = symbolDoc.SvgdataUid;
         _svg.OrderID = int.Parse(treeList1.Nodes[treeList1.Nodes.Count-1]["OrderID"].ToString()) + 1;
         _svg.MDATE = DateTime.Now;
     }
     addtotreelist(_svg);
 }
Exemple #20
0
        private void dotNetBarManager1_ItemClick(object sender, EventArgs e)
        {
            FileStream dh;
            StreamReader readLine;
            char[] charSplit;
            string strLine;
            string[] array1;
            string output = null;
            string[] array2;

            string strLine2;

            char[] charSplit2 = new char[] { ' ' };
            FileStream op;
            StreamWriter str1;
            FileStream dh2;
            StreamReader readLine2;
            Excel.Application ex;
            Excel.Worksheet xSheet;
            Excel.Application result1;
            Excel.Worksheet tempSheet;
            Excel.Worksheet newWorksheet;
            DevComponents.DotNetBar.ButtonItem btItem = sender as DevComponents.DotNetBar.ButtonItem;
            //Layer layer1 = (Layer)LayerBox.ComboBoxEx.SelectedItem;
            if (btItem != null)
            {
                switch (btItem.Name)
                {
                    #region 文件操作
                    case "mNew":
                        try
                        {
                            //{
                            XmlNodeList list = tlVectorControl1.SVGDocument.SelectNodes("svg/*[@layer='" + tlVectorControl1.SVGDocument.CurrentLayer.ID + "']");
                            for (int i = 0; i < list.Count; i++)
                            {
                                SvgElement ele = (SvgElement)list[i];
                                if (ele.LocalName == "polyline")
                                {
                                    PSPDEV _dev = new PSPDEV();
                                    _dev.EleID = ele.ID;
                                    _dev.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                                    _dev = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDandEleID", _dev);

                                    if (_dev == null)
                                    {
                                        LineInfo _pl = new LineInfo();
                                        _pl.EleID = ele.ID;
                                        _pl.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                                        _pl = (LineInfo)Services.BaseService.GetObject("SelectLineInfoByEleID", _pl);
                                        if (_pl != null)
                                        {
                                            PSPDEV pspDev = new PSPDEV();
                                            pspDev.SUID = Guid.NewGuid().ToString();
                                            pspDev.EleID = ele.GetAttribute("id");
                                            pspDev.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                                            pspDev.Number = -1;
                                            pspDev.FirstNode = -1;
                                            pspDev.LastNode = -1;
                                            pspDev.Type = "Polyline";
                                            pspDev.Lable = "支路";
                                            pspDev.Name = _pl.LineName;
                                            pspDev.LineLength = Convert.ToDouble(_pl.Length);
                                            pspDev.LineLevel = _pl.Voltage;
                                            pspDev.LineType = _pl.LineType;
                                            pspDev.LineStatus = "运行";
                                            Services.BaseService.Create<PSPDEV>(pspDev);
                                        }
                                    }
                                }
                                if (ele.LocalName == "use")
                                {
                                    PSPDEV _dev = new PSPDEV();
                                    _dev.EleID = ele.ID;
                                    _dev.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                                    _dev = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDandEleID", _dev);

                                    if (_dev == null)
                                    {
                                        substation _pl = new substation();
                                        _pl.EleID = ele.ID;
                                        _pl.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                                        _pl = (substation)Services.BaseService.GetObject("SelectsubstationByEleID", _pl);
                                        if (_pl != null)
                                        {
                                            PSPDEV pspDev = new PSPDEV();
                                            pspDev.SUID = Guid.NewGuid().ToString();
                                            pspDev.EleID = ele.GetAttribute("id");
                                            pspDev.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                                            pspDev.Number = -1;
                                            pspDev.FirstNode = -1;
                                            pspDev.LastNode = -1;
                                            pspDev.Type = "Use";
                                            pspDev.Lable = "变电站";
                                            pspDev.Name = _pl.EleName;
                                            pspDev.VoltR = Convert.ToDouble(_pl.ObligateField1);
                                            pspDev.Burthen = _pl.Number;
                                            Services.BaseService.Create<PSPDEV>(pspDev);
                                        }
                                    }

                                }

                            }

                            PSPDEV pppp = new PSPDEV();
                            pppp.Type = "power";
                            pppp.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid;
                            IList listpp = Services.BaseService.GetList("SelectPSPDEVBySvgUIDAndType", pppp);
                            if (listpp == null || listpp.Count == 0)
                            {

                                if (MessageBox.Show("新建的潮流计算,需要设置基准值,是否立即设置??", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
                                {
                                    PSPDEV pspDev2 = new PSPDEV();

                                    //pspDev2.SUID = Guid.NewGuid().ToString();
                                    pspDev2.Type = "Power";
                                    pspDev2.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid;
                                    pspDev2 = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDAndType", pspDev2);
                                    if (pspDev2 != null)
                                    {
                                    }
                                    else
                                    {
                                        pspDev2 = new PSPDEV();
                                        pspDev2.SUID = Guid.NewGuid().ToString();
                                        pspDev2.Type = "Power";
                                        pspDev2.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid;
                                        Services.BaseService.Create<PSPDEV>(pspDev2);
                                    }
                                    powerf pp = new powerf(pspDev2);
                                    if (pp.ShowDialog() == DialogResult.OK)
                                    {
                                        pspDev2.PowerFactor = Convert.ToDouble(pp.powerfactor);
                                        pspDev2.StandardVolt = Convert.ToDouble(pp.standardvolt);
                                        pspDev2.StandardCurrent = Convert.ToDouble(pp.standardcurrent);
                                        pspDev2.BigP = Convert.ToDouble(pp.bigP);
                                        Services.BaseService.Update<PSPDEV>(pspDev2);
                                        //PSPDEV voltall = new PSPDEV();
                                        //voltall.Type = "Use";
                                        //voltall.Lable = "电厂";
                                        //voltall.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                                        //IList allvolt = Services.BaseService.GetList("SelectPSPDEVBySvgUIDandLableandType", voltall);
                                        //foreach (PSPDEV dev in allvolt)
                                        //{
                                        //    dev.OutP = Convert.ToDouble(dev.Burthen) * pspDev2.BigP;
                                        //    //dev.InPutP=dev.Burthen*pspDev2.BigP;
                                        //    dev.OutQ = dev.OutP * Math.Tan(Math.Acos(pspDev2.PowerFactor));
                                        //    Services.BaseService.Update<PSPDEV>(dev);
                                        //}
                                        //voltall.Lable = "变电站";
                                        //allvolt = Services.BaseService.GetList("SelectPSPDEVBySvgUIDandLableandType", voltall);
                                        //foreach (PSPDEV dev in allvolt)
                                        //{
                                        //    dev.InPutP = Convert.ToDouble(dev.Burthen) * pspDev2.BigP;
                                        //    //dev.InPutP=dev.Burthen*pspDev2.BigP;
                                        //    dev.InPutQ = dev.InPutP * pspDev2.BigP * Math.Tan(Math.Acos(pspDev2.PowerFactor));
                                        //    Services.BaseService.Update<PSPDEV>(dev);
                                        //}

                                    }
                                    //powerf pf=new powerf()
                                }
                            }
                            if (!Check())
                            {
                                return;
                            }
                            NIULA pspniula = new NIULA();
                            pspniula.CurrentCal();

                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\" + tlVectorControl1.SVGDocument.FileName + "牛拉法计算结果.xls"))
                            {
                                File.Delete(System.Windows.Forms.Application.StartupPath + "\\" + tlVectorControl1.SVGDocument.FileName + "牛拉法计算结果.xls");
                                //OpenRead(System.Windows.Forms.Application.StartupPath + "\\" + tlVectorControl1.SVGDocument.FileName + ".xls");
                            }

                            double yinzi = 0, capability = 0, volt = 0, current = 0, Rad_to_Deg = 57.29577951;
                            PSPDEV benchmark = new PSPDEV();
                            benchmark.Type = "power";
                            benchmark.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid;
                            IList list3 = Services.BaseService.GetList("SelectPSPDEVBySvgUIDAndType", benchmark);
                            if (list3 == null)
                            {
                                MessageBox.Show("请设置基准后再进行计算!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return;
                            }
                            foreach (PSPDEV dev in list3)
                            {
                                yinzi = Convert.ToDouble(dev.PowerFactor);
                                capability = Convert.ToDouble(dev.StandardCurrent);
                                volt = Convert.ToDouble(dev.StandardVolt);
                                if (dev.PowerFactor == 0)
                                {
                                    yinzi = 1;
                                }
                                if (dev.StandardCurrent == 0)
                                {
                                    capability = 1;
                                }
                                if (dev.StandardVolt == 0)
                                {
                                    volt = 1;
                                }
                                current = capability / (Math.Sqrt(3) * volt);

                            }
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\PF1.txt"))
                            {
                            }
                            else
                            {
                                return;
                            }
                            dh = new FileStream(System.Windows.Forms.Application.StartupPath + "\\PF1.txt", FileMode.Open);
                            readLine = new StreamReader(dh);

                            charSplit = new char[] { ' ' };
                            strLine = readLine.ReadLine();

                            output += ("全网母线(发电、负荷)结果报表 " + "\r\n" + "\r\n");
                            output += ("单位:kA\\kV\\MW\\Mvar" + "\r\n" + "\r\n");
                            output += ("母线名" + "," + "电压幅值" + "," + "电压相角" + "," + "有功发电" + "," + "无功发电" + "," + "有功负荷" + "," + "无功负荷" + "," + "越限标志" + "," + "过载标志" + "\r\n");
                            int count = 0;
                            while (strLine != null && strLine != "")
                            {
                                array1 = strLine.Split(charSplit);
                                string[] dev = new string[9];
                                dev.Initialize();
                                int i = 0;
                                count++;
                                PSPDEV CR = new PSPDEV();
                                CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;

                                foreach (string str in array1)
                                {
                                    if (str != "")
                                    {
                                        if (str != "NaN")
                                        {
                                            dev[i++] = Convert.ToDouble(str).ToString();
                                        }
                                        else
                                        {
                                            dev[i++] = str;
                                        }

                                    }

                                }

                                CR.Number = Convert.ToInt32(dev[0]);
                                CR.Type = "Use";
                                CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByNumberAndSvgUIDAndType", CR);
                                double vTemp = Convert.ToDouble(dev[1]) * volt;
                                double vTemp1 = volt * 95 / 100;
                                double vTemp2 = volt * 105 / 100;

                                if (vTemp >= vTemp1 && vTemp <= vTemp2)
                                {
                                    dev[5] = "0";
                                }
                                else
                                {
                                    dev[5] = "1";
                                }
                                if (Convert.ToDouble(dev[3]) * capability > Convert.ToDouble(CR.Burthen))
                                {
                                    dev[6] = "1";
                                }
                                else
                                {
                                    dev[6] = "0";
                                }

                                if (Convert.ToDouble(dev[3]) < 0)
                                {
                                    output += CR.Name + "," + (Convert.ToDouble(dev[1]) * volt).ToString() + "," + (Convert.ToDouble(dev[2]) * Rad_to_Deg).ToString() + "," + "0" + "," + "0" + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + dev[5] + "," + dev[6] + "\r\n";
                                }
                                else
                                {
                                    output += CR.Name + "," + (Convert.ToDouble(dev[1]) * volt).ToString() + "," + (Convert.ToDouble(dev[2]) * Rad_to_Deg).ToString() + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + "0" + "," + "0" + "," + dev[5] + "," + dev[6] + "\r\n";
                                }
                                strLine = readLine.ReadLine();
                            }
                            PSPDEV ct = new PSPDEV();
                            ct.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                            ct.Type = "Use";
                            IList cont = Services.BaseService.GetList("SelectPSPDEVBySvgUIDAndType", ct);
                            if (count < cont.Count)
                            {
                                MessageBox.Show("请进行潮流计算后再查看结果!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                readLine.Close();
                                return;

                            }
                            readLine.Close();
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\result.csv"))
                            {
                                File.Delete(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                            }
                            op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\result.csv"), FileMode.OpenOrCreate);
                            str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));
                            str1.Write(output);
                            str1.Close();

                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\DH1.txt"))
                            {
                            }
                            else
                            {
                                return;
                            }
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\IH1.txt"))
                            {
                            }
                            else
                            {
                                return;
                            }
                            dh = new FileStream(System.Windows.Forms.Application.StartupPath + "\\DH1.txt", FileMode.Open);
                            dh2 = new FileStream(System.Windows.Forms.Application.StartupPath + "\\IH1.txt", FileMode.Open);
                            readLine2 = new StreamReader(dh2);
                            readLine = new StreamReader(dh);
                            charSplit = new char[] { ' ' };
                            strLine = readLine.ReadLine();
                            strLine2 = readLine2.ReadLine();

                            output = null;

                            output += ("全网交流线结果报表" + "\r\n" + "\r\n");
                            output += ("单位:kA\\kV\\MW\\Mvar" + "\r\n" + "\r\n");
                            output += ("支路名称" + "," + "支路有功" + "," + "支路无功" + "," + "有功损耗" + "," + "无功损耗" + "," + "电流幅值" + "," + "电流相角" + "," + "越限标志" + "," + "\r\n");
                            while (strLine != null && strLine2 != null && strLine != "" && strLine2 != "")
                            {
                                array1 = strLine.Split(charSplit);
                                array2 = strLine2.Split(charSplit2);

                                string[] dev = new string[20];
                                dev.Initialize();
                                int i = 0;
                                PSPDEV CR = new PSPDEV();
                                CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;

                                foreach (string str in array1)
                                {
                                    if (str != "")
                                    {
                                        if (i == 0)
                                        {
                                            dev[i++] = str.ToString();
                                        }
                                        else
                                        {
                                            if (str != "NaN")
                                            {
                                                dev[i++] = Convert.ToDouble(str).ToString();
                                            }
                                            else
                                            {
                                                dev[i++] = str;
                                            }

                                        }
                                    }

                                }
                                i = 7;
                                for (int j = 3; j < 5; j++)
                                {
                                    if (array2[j] != "")
                                    {
                                        if (array2[j] != "NaN")
                                        {
                                            dev[i++] = Convert.ToDouble(array2[j]).ToString();
                                        }
                                        else
                                        {
                                            dev[i++] = array2[j];
                                        }
                                    }

                                }
                                CR.Name = dev[0];
                                CR.Type = "Polyline";
                                CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByName", CR);

                                if (CR != null)
                                {
                                    if (Convert.ToDouble(dev[7]) * current * 1000 > CR.LineChange)
                                    {
                                        dev[11] = "1";
                                    }
                                    else
                                    {
                                        dev[11] = "0";
                                    }
                                    output += CR.Name + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + (Convert.ToDouble(dev[5]) * capability).ToString() + "," + (Convert.ToDouble(dev[6]) * capability).ToString() + "," + (Convert.ToDouble(dev[7]) * current).ToString() + "," + (Convert.ToDouble(dev[8]) * Rad_to_Deg).ToString() + "," + dev[11] + "," + "\r\n";
                                }
                                else
                                {
                                    CR = new PSPDEV();
                                    CR.Name = dev[0];
                                    CR.Type = "TransformLine";
                                    CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                                    CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByName", CR);
                                    if (CR != null)
                                    {
                                        if (Convert.ToDouble(dev[7]) * current * 1000 > CR.LineChange)
                                        {
                                            dev[11] = "1";
                                        }
                                        else
                                        {
                                            dev[11] = "0";
                                        }
                                        output += CR.Name + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + (Convert.ToDouble(dev[5]) * capability).ToString() + "," + (Convert.ToDouble(dev[6]) * capability).ToString() + "," + (Convert.ToDouble(dev[7]) * current).ToString() + "," + (Convert.ToDouble(dev[8]) * Rad_to_Deg).ToString() + "," + dev[11] + "," + "\r\n";
                                    }
                                }

                                strLine = readLine.ReadLine();
                                strLine2 = readLine2.ReadLine();
                            }
                            readLine.Close();
                            readLine2.Close();
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\result1.csv"))
                            {
                                File.Delete(System.Windows.Forms.Application.StartupPath + "\\result1.csv");
                            }
                            op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\result1.csv"), FileMode.OpenOrCreate);
                            str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));
                            str1.Write(output);
                            str1.Close();

                            ex = new Excel.Application();
                            ex.Application.Workbooks.Add(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                            xSheet = (Excel.Worksheet)ex.Worksheets[1];
                            ex.Worksheets.Add(System.Reflection.Missing.Value, xSheet, 1, System.Reflection.Missing.Value);

                            result1 = new Excel.Application();
                            result1.Application.Workbooks.Add(System.Windows.Forms.Application.StartupPath + "\\result1.csv");
                            tempSheet = (Excel.Worksheet)result1.Worksheets.get_Item(1);
                            newWorksheet = (Excel.Worksheet)ex.Worksheets.get_Item(2);
                            newWorksheet.Name = "线路电流";
                            xSheet.Name = "母线潮流";
                            ex.Visible = true;

                            tempSheet.Cells.Select();
                            tempSheet.Cells.Copy(System.Reflection.Missing.Value);
                            newWorksheet.Paste(System.Reflection.Missing.Value, System.Reflection.Missing.Value);
                            xSheet.Rows.AutoFit();
                            xSheet.Columns.AutoFit();
                            newWorksheet.Rows.AutoFit();
                            newWorksheet.Columns.AutoFit();
                            xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 9]).MergeCells = true;
                            xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 1]).Font.Size = 20;
                            xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 1]).Font.Name = "黑体";
                            xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 1]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                            xSheet.get_Range(xSheet.Cells[5, 1], xSheet.Cells[5, 9]).Interior.ColorIndex = 45;
                            xSheet.get_Range(xSheet.Cells[6, 1], xSheet.Cells[xSheet.UsedRange.Rows.Count, 1]).Interior.ColorIndex = 6;
                            xSheet.get_Range(xSheet.Cells[6, 2], xSheet.Cells[xSheet.UsedRange.Rows.Count, 9]).NumberFormat = "0.0000_ ";
                            xSheet.get_Range(xSheet.Cells[3, 1], xSheet.Cells[xSheet.UsedRange.Rows.Count, 9]).Font.Name = "楷体_GB2312";

                            newWorksheet.get_Range(newWorksheet.Cells[1, 1], newWorksheet.Cells[1, 9]).MergeCells = true;
                            newWorksheet.get_Range(newWorksheet.Cells[1, 1], newWorksheet.Cells[1, 1]).Font.Size = 20;
                            newWorksheet.get_Range(newWorksheet.Cells[1, 1], newWorksheet.Cells[1, 1]).Font.Name = "黑体";
                            newWorksheet.get_Range(newWorksheet.Cells[1, 1], newWorksheet.Cells[1, 1]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                            newWorksheet.get_Range(newWorksheet.Cells[5, 1], newWorksheet.Cells[5, 8]).Interior.ColorIndex = 45;
                            newWorksheet.get_Range(newWorksheet.Cells[6, 1], newWorksheet.Cells[newWorksheet.UsedRange.Rows.Count, 1]).Interior.ColorIndex = 6;
                            newWorksheet.get_Range(newWorksheet.Cells[6, 2], newWorksheet.Cells[newWorksheet.UsedRange.Rows.Count, 9]).NumberFormat = "0.0000_ ";
                            newWorksheet.get_Range(newWorksheet.Cells[3, 1], newWorksheet.Cells[newWorksheet.UsedRange.Rows.Count, 9]).Font.Name = "楷体_GB2312";

                            //op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\fck.excel"), FileMode.OpenOrCreate);
                            //str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));

                            string fn = tlVectorControl1.SVGDocument.FileName;

                            //result1.Save(System.Windows.Forms.Application.StartupPath + "\\fck.xls");

                            newWorksheet.SaveAs(System.Windows.Forms.Application.StartupPath + "\\" + fn + "牛拉法计算结果.xls", Excel.XlFileFormat.xlXMLSpreadsheet, null, null, false, false, false, null, null, null);

                            //str1.Write();
                            //op.Close();

                            System.Windows.Forms.Clipboard.Clear();
                            result1.Workbooks.Close();
                            result1.Quit();

                        }
                        catch (System.Exception e1)
                        {
                            MessageBox.Show("请进行潮流计算后再查看结果!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        //}
                        break;
                    case "mOpen":
                        if (tlVectorControl1.IsModified == true)
                        {
                            DialogResult a;
                            a = MessageBox.Show("图形已修改,是否保存?", "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information);

                            if (a == DialogResult.Yes)
                            {
                                Save();
                            }
                            else if (a == DialogResult.No)
                            {
                            }
                            else if (a == DialogResult.Cancel)
                            {
                                return;
                            }

                        }
                        Open();

                        break;
                    case "btExSymbol":
                        tlVectorControl1.ExportSymbol();
                        break;
                    case "mjxt"://导入接线图

                        string _svguid = ConfigurationSettings.AppSettings.Get("SvgID");
                        frmYear f = new frmYear();
                        f.uid = _svguid;
                        f.Show();
                        //ImportJxt jxt = new ImportJxt(tlVectorControl1);
                        //jxt.Import();
                        break;
                    case "mSave":
                        SaveAllLayer();

                        break;
                    case "mExit":
                        this.Close();
                        break;
                    case "bt1":
                        //InitTK();
                        break;
                    case "mFin":
                        frmGProList p = new frmGProList();
                        p.Show();
                        p.LoadData(LoadData());
                        break;
                    case "bt2":
                        break;
                    case "mPriSet":
                        this.tlVectorControl1.Operation = ToolOperation.InterEnclosurePrint;
                        break;
                    case "mPrint":
                        tlVectorControl1.Print();
                        break;
                    case "mImport":
                        ExportImage();
                        break;
                    case "mView":
                        //frmSvgView fView = new frmSvgView();
                        //fView.Open(tlVectorControl1.SVGDocument.CurrentLayer.ID);
                        //fView.Show();

                        break;

                    //case "mIncreaseView":
                    //    tlVectorControl1.Operation = ToolOperation.IncreaseView;
                    //    break;
                    case "mRzb":
                        frmRatio fRat = new frmRatio();
                        string viewRat = tlVectorControl1.SVGDocument.getRZBRatio();
                        if (viewRat != "")
                        {
                            fRat.InitData(viewRat);
                        }
                        if (fRat.ShowDialog() == DialogResult.OK)
                        {
                            viewRat = fRat.ViewScale;
                            tlVectorControl1.SVGDocument.setRZBRatio(viewRat);
                        }
                        break;

                    case "mAbout":

                        frmAbout frma = new frmAbout();
                        frma.ShowDialog();
                        break;

                    case "ButtonItem10":
                        int temp411 = 10;
                        frmConvert frmc = new frmConvert();
                        frmc.ShowDialog();
                        temp411++;
                        break;

                    //基础操作
                    case "mFreeTransform":
                        tlVectorControl1.Operation = ToolOperation.FreeTransform;

                        break;
                    case "mCJ":
                        tlVectorControl1.Operation = ToolOperation.PolyLine;
                        csOperation = CustomOperation.OP_MeasureDistance;
                        break;
                    //case "ButtonItem2":
                    //    break;
                    #endregion
                    #region 基础图元
                    case "mDecreaseView":
                        tlVectorControl1.Operation = ToolOperation.DecreaseView;

                        break;
                    case "mIncreaseView":

                        tlVectorControl1.Operation = ToolOperation.IncreaseView;
                        break;
                    case "mRoam":
                        tlVectorControl1.Operation = ToolOperation.Roam;

                        break;
                    case "mSelect":
                        tlVectorControl1.Operation = ToolOperation.Select;
                        break;
                    case "mSel":

                        tlVectorControl1.Operation = ToolOperation.FreeTransform;
                        break;
                    //case "mFreeTransform":
                    //    tlVectorControl1.Operation = ToolOperation.FreeTransform;

                    //    break;
                    case "mFreeLines"://锁套
                        tlVectorControl1.Operation = ToolOperation.FreeLines;

                        break;
                    case "mFreePath":
                        tlVectorControl1.Operation = ToolOperation.FreePath;

                        break;
                    case "mShapeTransform":
                        tlVectorControl1.Operation = ToolOperation.ShapeTransform;

                        break;
                    case "mAngleRectangle":
                        tlVectorControl1.Operation = ToolOperation.AngleRectangle;

                        break;
                    case "mEllipse":
                        tlVectorControl1.Operation = ToolOperation.Ellipse;

                        break;
                    case "mLine":
                        tlVectorControl1.Operation = ToolOperation.ConnectLine_Polyline;

                        break;
                    case "mPolyline":
                        tlVectorControl1.Operation = ToolOperation.PolyLine;

                        break;
                    case "mConnectLine":
                        tlVectorControl1.Operation = ToolOperation.ConnectLine;
                        break;

                    case "mPolygon":
                        tlVectorControl1.Operation = ToolOperation.Polygon;

                        break;
                    case "mImage":
                        tlVectorControl1.Operation = ToolOperation.Image;
                        break;
                    case "mText":
                        tlVectorControl1.Operation = ToolOperation.Text;
                        break;
                    case "mBezier":
                        tlVectorControl1.Operation = ToolOperation.Bezier;

                        break;
                    case "ButtonItem2":
                        fileType = true;
                        if (fileType == true)
                        {
                            LoadShape("symbol20.xml");
                            //jxtbar(1);
                        }
                        else
                        {
                            LoadShape("symbol21.xml");
                            //jxtbar(0);
                        }
                        tlVectorControl1.SVGDocument.CurrentLayer.ID = Guid.NewGuid().ToString();
                        SvgDocument.currentLayer = Layer.CreateNew("默认层", tlVectorControl1.SVGDocument).ID;
                        tlVectorControl1.IsModified = false;
                        frmElementName dlgnew2 = new frmElementName();
                        dlgnew2.TextInput = tlVectorControl1.SVGDocument.FileName;
                        if (dlgnew2.ShowDialog() == DialogResult.OK)
                        {
                            tlVectorControl1.SVGDocument.FileName = dlgnew2.TextInput;
                            Save();
                        }
                        //NewFile(fileType);
                        break;
                    case "ButtonItem8":
                        fileType = false;
                        //NewFile(fileType);
                        tlVectorControl1.NewFile();
                        if (fileType == true)
                        {
                            LoadShape("symbol20.xml");
                            //jxtbar(1);
                        }
                        else
                        {
                            LoadShape("symbol21.xml");
                            //jxtbar(0);
                        }
                        tlVectorControl1.SVGDocument.CurrentLayer.ID = Guid.NewGuid().ToString();
                        SvgDocument.currentLayer = Layer.CreateNew("默认层", tlVectorControl1.SVGDocument).ID;
                        tlVectorControl1.IsModified = false;
                        frmElementName dlgnew3 = new frmElementName();
                        dlgnew3.TextInput = tlVectorControl1.SVGDocument.FileName;
                        if (dlgnew3.ShowDialog() == DialogResult.OK)
                        {
                            tlVectorControl1.SVGDocument.FileName = dlgnew3.TextInput;
                            Save();
                        }
                        break;
                    case "mCheck":
                        Check();
                        break;
                    case "niula":
                        //MessageBox.Show(Directory.GetCurrentDirectory());
                        //frmTLpsp el = new frmTLpsp();
                        PspNIULA();
                        //oThread = new Thread(new ThreadStart(el.PspNIULA));
                        //oThread.Start();
                        //try
                        //{
                        //    time = new System.Threading.Timer(new TimerCallback(method), null, 50000, 60000);
                        //}
                        //catch { }
                        break;
                    case "pq":
                        //frmTLpsp e2 = new frmTLpsp();
                        PspPQ();
                        break;
                    //case "ShortCut":
                    //    ShortCutCheck();
                    //    break;
                    case "GaussSeidel":
                        PspGaussSeidel();
                        break;
                    case "PowerLossCal":
                        PspPowerLossCal();
                        break;
                    case "N_RZYz":
                        PspN_RZYz();
                        break;
                    case "WebRela":                        //进行网络N-1检验

                        WebCalAndPrint();
                        break;
                    case "TransRela":                       //进行变压器N-1检验

                        break;
                    case "DuanluResult":
                        //ShortCutCheck();
                        //PSPDEV pspDuanlu = new PSPDEV();
                        //pspDuanlu.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                        //frmDuanlu dudu = new frmDuanlu(pspDuanlu);
                        //PSPDEV Duanlu = new PSPDEV();
                        //Duanlu.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;

                        //if (dudu.ShowDialog() == DialogResult.OK)
                        //{

                        //    Duanlu = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByName", Duanlu);
                        //    n4 = Convert.ToInt32(dudu.hscool);
                        //    if (Duanlu.Type == "Use")
                        //    {
                        //        n1 = Duanlu.Number;
                        //        n2 = Duanlu.Number;
                        //        string dlr=n1.ToString();
                        //        if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\dlb.txt"))
                        //        {
                        //            File.Delete(System.Windows.Forms.Application.StartupPath+"\\dlb.txt");
                        //        }

                        //        FileStream VK = new FileStream((System.Windows.Forms.Application.StartupPath+"\\data.txt"), FileMode.OpenOrCreate);
                        //        StreamWriter str11 = new StreamWriter(VK);
                        //        str11.Write(dlr);
                        //        str11.Close();

                        //        n4 = 0;
                        //    }
                        //    if (Duanlu.Type == "Polyline")
                        //    {
                        //        n1 = Duanlu.FirstNode;
                        //        n2 = Duanlu.LastNode;
                        //    }
                        //    switch (dudu.DuanluType){

                        //        case "单相接地":
                        //            n3 = 1;
                        //            break;

                        //        case "两相接地":
                        //            n3 = 3;
                        //            break;
                        //        case "两相故障":
                        //            n3 = 2;
                        //            break;
                        //        case "三相故障":
                        //            n3 = 0;
                        //            break;
                        //        default:
                        //            n3 = 1;
                        //            break;
                        //    }
                        //    duanlu.myshort(n1, n2, n3, n4);
                        // }
                        break;
                    //case "DuanluResult":
                    //    il = 1;
                    //    break;
                    case "dd":
                        //SubPrint = true;
                        tlVectorControl1.Operation = ToolOperation.InterEnclosurePrint;
                        break;

                    case "NiulaResult":
                        try
                        {
                            //{
                            if (!Check())
                            {
                                return;
                            }
                            NIULA pspniula = new NIULA();
                            pspniula.CurrentCal();

                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\" + tlVectorControl1.SVGDocument.FileName + "牛拉法计算结果.xls"))
                            {
                                File.Delete(System.Windows.Forms.Application.StartupPath + "\\" + tlVectorControl1.SVGDocument.FileName + "牛拉法计算结果.xls");
                                //OpenRead(System.Windows.Forms.Application.StartupPath + "\\" + tlVectorControl1.SVGDocument.FileName + ".xls");
                            }

                            double yinzi = 0, capability = 0, volt = 0, current = 0, standvolt = 0, Rad_to_Deg = 57.29577951;
                            PSPDEV benchmark = new PSPDEV();
                            benchmark.Type = "power";
                            benchmark.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid;
                            IList list3 = Services.BaseService.GetList("SelectPSPDEVBySvgUIDAndType", benchmark);
                            if (list3 == null)
                            {
                                MessageBox.Show("请设置基准后再进行计算!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return;
                            }
                            foreach (PSPDEV dev in list3)
                            {
                                yinzi = Convert.ToDouble(dev.PowerFactor);
                                capability = Convert.ToDouble(dev.StandardCurrent);
                                volt = Convert.ToDouble(dev.StandardVolt);
                                if (dev.PowerFactor == 0)
                                {
                                    yinzi = 1;
                                }
                                if (dev.StandardCurrent == 0)
                                {
                                    capability = 1;
                                }
                                if (dev.StandardVolt == 0)
                                {
                                    volt = 1;
                                }
                                standvolt = volt;
                                current = capability / (Math.Sqrt(3) * volt);

                            }
                            capability = 100;

                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\PF1.txt"))
                            {
                            }
                            else
                            {
                                return;
                            }
                            dh = new FileStream(System.Windows.Forms.Application.StartupPath + "\\PF1.txt", FileMode.Open);
                            readLine = new StreamReader(dh);

                            charSplit = new char[] { ' ' };
                            strLine = readLine.ReadLine();

                            output += ("全网母线(发电、负荷)结果报表 " + "\r\n" + "\r\n");
                            output += ("单位:kA\\kV\\MW\\Mvar" + "\r\n" + "\r\n");
                            output += ("母线名" + "," + "电压幅值" + "," + "电压相角" + "," + "有功发电" + "," + "无功发电" + "," + "有功负荷" + "," + "无功负荷" + "," + "越限标志" + "," + "过载标志" + "\r\n");
                            int count = 0;
                            while (strLine != null && strLine != "")
                            {
                                array1 = strLine.Split(charSplit);
                                string[] dev = new string[9];
                                dev.Initialize();
                                int i = 0;
                                count++;
                                PSPDEV CR = new PSPDEV();
                                CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;

                                foreach (string str in array1)
                                {
                                    if (str != "")
                                    {
                                        if (str != "NaN")
                                        {
                                            dev[i++] = Convert.ToDouble(str).ToString();
                                        }
                                        else
                                        {
                                            dev[i++] = str;
                                        }

                                    }

                                }

                                CR.Number = Convert.ToInt32(dev[0]);
                                CR.Type = "Use";
                                CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByNumberAndSvgUIDAndType", CR);
                                if (CR.ReferenceVolt != null && CR.ReferenceVolt != 0)
                                {
                                    volt = CR.ReferenceVolt;
                                }
                                else
                                    volt = standvolt;
                                current = capability / (Math.Sqrt(3) * volt);
                                double vTemp = Convert.ToDouble(dev[1]) * volt;
                                double vTemp1 = volt * 95 / 100;
                                double vTemp2 = volt * 105 / 100;

                                if (vTemp >= vTemp1 && vTemp <= vTemp2)
                                {
                                    dev[5] = "0";
                                }
                                else
                                {
                                    dev[5] = "1";
                                }
                                if (Convert.ToDouble(dev[3]) * capability > Convert.ToDouble(CR.Burthen))
                                {
                                    dev[6] = "1";
                                }
                                else
                                {
                                    dev[6] = "0";
                                }

                                if (Convert.ToDouble(dev[3]) < 0)
                                {
                                    output += CR.Name + "," + (Convert.ToDouble(dev[1]) * volt).ToString() + "," + (Convert.ToDouble(dev[2]) * Rad_to_Deg).ToString() + "," + "0" + "," + "0" + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + dev[5] + "," + dev[6] + "\r\n";
                                }
                                else
                                {
                                    output += CR.Name + "," + (Convert.ToDouble(dev[1]) * volt).ToString() + "," + (Convert.ToDouble(dev[2]) * Rad_to_Deg).ToString() + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + "0" + "," + "0" + "," + dev[5] + "," + dev[6] + "\r\n";
                                }
                                strLine = readLine.ReadLine();
                            }
                            PSPDEV ct = new PSPDEV();
                            ct.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                            ct.Type = "Use";
                            IList cont = Services.BaseService.GetList("SelectPSPDEVBySvgUIDAndType", ct);
                            if (count < cont.Count)
                            {
                                MessageBox.Show("请进行潮流计算后再查看结果!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                readLine.Close();
                                return;

                            }
                            readLine.Close();
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\result.csv"))
                            {
                                File.Delete(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                            }
                            op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\result.csv"), FileMode.OpenOrCreate);
                            str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));
                            str1.Write(output);
                            str1.Close();

                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\DH1.txt"))
                            {
                            }
                            else
                            {
                                return;
                            }
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\IH1.txt"))
                            {
                            }
                            else
                            {
                                return;
                            }
                            dh = new FileStream(System.Windows.Forms.Application.StartupPath + "\\DH1.txt", FileMode.Open);
                            dh2 = new FileStream(System.Windows.Forms.Application.StartupPath + "\\IH1.txt", FileMode.Open);
                            readLine2 = new StreamReader(dh2);
                            readLine = new StreamReader(dh);
                            charSplit = new char[] { ' ' };
                            strLine = readLine.ReadLine();
                            strLine2 = readLine2.ReadLine();

                            output = null;

                            output += ("全网交流线结果报表" + "\r\n" + "\r\n");
                            output += ("单位:kA\\kV\\MW\\Mvar" + "\r\n" + "\r\n");
                            output += ("支路名称" + "," + "支路有功" + "," + "支路无功" + "," + "有功损耗" + "," + "无功损耗" + "," + "电流幅值" + "," + "电流相角" + "," + "越限标志" + "," + "\r\n");
                            while (strLine != null && strLine2 != null && strLine != "" && strLine2 != "")
                            {
                                array1 = strLine.Split(charSplit);
                                array2 = strLine2.Split(charSplit2);

                                string[] dev = new string[20];
                                dev.Initialize();
                                int i = 0;
                                PSPDEV CR = new PSPDEV();
                                CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;

                                foreach (string str in array1)
                                {
                                    if (str != "")
                                    {
                                        if (i == 0)
                                        {
                                            dev[i++] = str.ToString();
                                        }
                                        else
                                        {
                                            if (str != "NaN")
                                            {
                                                dev[i++] = Convert.ToDouble(str).ToString();
                                            }
                                            else
                                            {
                                                dev[i++] = str;
                                            }

                                        }
                                    }

                                }
                                i = 7;
                                for (int j = 3; j < 5; j++)
                                {
                                    if (array2[j] != "")
                                    {
                                        if (array2[j] != "NaN")
                                        {
                                            dev[i++] = Convert.ToDouble(array2[j]).ToString();
                                        }
                                        else
                                        {
                                            dev[i++] = array2[j];
                                        }
                                    }

                                }
                                CR.Name = dev[0];
                                CR.Type = "Polyline";
                                CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByName", CR);
                                if (CR.ReferenceVolt != null && CR.ReferenceVolt != 0)
                                {
                                    volt = CR.ReferenceVolt;
                                }
                                else
                                    volt = standvolt;
                                current = capability / (Math.Sqrt(3) * volt);
                                if (CR != null)
                                {
                                    if (Convert.ToDouble(dev[7]) * current * 1000 > CR.LineChange)
                                    {
                                        dev[11] = "1";
                                    }
                                    else
                                    {
                                        dev[11] = "0";
                                    }
                                    output += CR.Name + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + (Convert.ToDouble(dev[5]) * capability).ToString() + "," + (Convert.ToDouble(dev[6]) * capability).ToString() + "," + (Convert.ToDouble(dev[7]) * current).ToString() + "," + (Convert.ToDouble(dev[8]) * Rad_to_Deg).ToString() + "," + dev[11] + "," + "\r\n";
                                }
                                else
                                {
                                    CR = new PSPDEV();
                                    CR.Name = dev[0];
                                    CR.Type = "TransformLine";
                                    CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                                    CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByName", CR);
                                    if (CR != null)
                                    {
                                        if (Convert.ToDouble(dev[7]) * current * 1000 > CR.LineChange)
                                        {
                                            dev[11] = "1";
                                        }
                                        else
                                        {
                                            dev[11] = "0";
                                        }
                                        output += CR.Name + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + (Convert.ToDouble(dev[5]) * capability).ToString() + "," + (Convert.ToDouble(dev[6]) * capability).ToString() + "," + (Convert.ToDouble(dev[7]) * current).ToString() + "," + (Convert.ToDouble(dev[8]) * Rad_to_Deg).ToString() + "," + dev[11] + "," + "\r\n";
                                    }
                                }

                                strLine = readLine.ReadLine();
                                strLine2 = readLine2.ReadLine();
                            }
                            readLine.Close();
                            readLine2.Close();
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\result1.csv"))
                            {
                                File.Delete(System.Windows.Forms.Application.StartupPath + "\\result1.csv");
                            }
                            op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\result1.csv"), FileMode.OpenOrCreate);
                            str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));
                            str1.Write(output);
                            str1.Close();

                            ex = new Excel.Application();
                            ex.Application.Workbooks.Add(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                            xSheet = (Excel.Worksheet)ex.Worksheets[1];
                            ex.Worksheets.Add(System.Reflection.Missing.Value, xSheet, 1, System.Reflection.Missing.Value);

                            result1 = new Excel.Application();
                            result1.Application.Workbooks.Add(System.Windows.Forms.Application.StartupPath + "\\result1.csv");
                            tempSheet = (Excel.Worksheet)result1.Worksheets.get_Item(1);
                            newWorksheet = (Excel.Worksheet)ex.Worksheets.get_Item(2);
                            newWorksheet.Name = "线路电流";
                            xSheet.Name = "母线潮流";
                            ex.Visible = true;

                            tempSheet.Cells.Select();
                            tempSheet.Cells.Copy(System.Reflection.Missing.Value);
                            newWorksheet.Paste(System.Reflection.Missing.Value, System.Reflection.Missing.Value);
                            xSheet.Rows.AutoFit();
                            xSheet.Columns.AutoFit();
                            newWorksheet.Rows.AutoFit();
                            newWorksheet.Columns.AutoFit();
                            xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 9]).MergeCells = true;
                            xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 1]).Font.Size = 20;
                            xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 1]).Font.Name = "黑体";
                            xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 1]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                            xSheet.get_Range(xSheet.Cells[5, 1], xSheet.Cells[5, 9]).Interior.ColorIndex = 45;
                            xSheet.get_Range(xSheet.Cells[6, 1], xSheet.Cells[xSheet.UsedRange.Rows.Count, 1]).Interior.ColorIndex = 6;
                            xSheet.get_Range(xSheet.Cells[6, 2], xSheet.Cells[xSheet.UsedRange.Rows.Count, 9]).NumberFormat = "0.0000_ ";
                            xSheet.get_Range(xSheet.Cells[3, 1], xSheet.Cells[xSheet.UsedRange.Rows.Count, 9]).Font.Name = "楷体_GB2312";

                            newWorksheet.get_Range(newWorksheet.Cells[1, 1], newWorksheet.Cells[1, 9]).MergeCells = true;
                            newWorksheet.get_Range(newWorksheet.Cells[1, 1], newWorksheet.Cells[1, 1]).Font.Size = 20;
                            newWorksheet.get_Range(newWorksheet.Cells[1, 1], newWorksheet.Cells[1, 1]).Font.Name = "黑体";
                            newWorksheet.get_Range(newWorksheet.Cells[1, 1], newWorksheet.Cells[1, 1]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                            newWorksheet.get_Range(newWorksheet.Cells[5, 1], newWorksheet.Cells[5, 8]).Interior.ColorIndex = 45;
                            newWorksheet.get_Range(newWorksheet.Cells[6, 1], newWorksheet.Cells[newWorksheet.UsedRange.Rows.Count, 1]).Interior.ColorIndex = 6;
                            newWorksheet.get_Range(newWorksheet.Cells[6, 2], newWorksheet.Cells[newWorksheet.UsedRange.Rows.Count, 9]).NumberFormat = "0.0000_ ";
                            newWorksheet.get_Range(newWorksheet.Cells[3, 1], newWorksheet.Cells[newWorksheet.UsedRange.Rows.Count, 9]).Font.Name = "楷体_GB2312";

                            //op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\fck.excel"), FileMode.OpenOrCreate);
                            //str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));

                            string fn = tlVectorControl1.SVGDocument.FileName;

                            //result1.Save(System.Windows.Forms.Application.StartupPath + "\\fck.xls");

                            newWorksheet.SaveAs(System.Windows.Forms.Application.StartupPath + "\\" + fn + "牛拉法计算结果.xls", Excel.XlFileFormat.xlXMLSpreadsheet, null, null, false, false, false, null, null, null);

                            //str1.Write();
                            //op.Close();

                            System.Windows.Forms.Clipboard.Clear();
                            result1.Workbooks.Close();
                            result1.Quit();

                        }
                        catch (System.Exception e1)
                        {
                            MessageBox.Show("请进行潮流计算后再查看结果!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        //}
                        break;
                    case "GaussSeidelResult":
                        try
                        {

                            if (!Check())
                            {
                                return;
                            }
                            Gauss pspgauss = new Gauss();
                            pspgauss.CurrentCal();
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\" + tlVectorControl1.SVGDocument.FileName + "高斯-赛德尔计算结果.xls"))
                            {
                                File.Delete(System.Windows.Forms.Application.StartupPath + "\\" + tlVectorControl1.SVGDocument.FileName + "高斯-赛德尔计算结果.xls");
                                //OpenRead(System.Windows.Forms.Application.StartupPath + "\\" + tlVectorControl1.SVGDocument.FileName + ".xls");
                            }

                            double yinzi = 0, capability = 0, volt = 0, current = 0, Rad_to_Deg = 57.29577951;
                            PSPDEV benchmark = new PSPDEV();
                            benchmark.Type = "power";
                            benchmark.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid;
                            IList list3 = Services.BaseService.GetList("SelectPSPDEVBySvgUIDAndType", benchmark);
                            if (list3 == null)
                            {
                                MessageBox.Show("请设置基准后再进行计算!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return;
                            }
                            foreach (PSPDEV dev in list3)
                            {
                                yinzi = Convert.ToDouble(dev.PowerFactor);
                                capability = Convert.ToDouble(dev.StandardCurrent);
                                volt = Convert.ToDouble(dev.StandardVolt);
                                if (dev.PowerFactor == 0)
                                {
                                    yinzi = 1;
                                }
                                if (dev.StandardCurrent == 0)
                                {
                                    capability = 1;
                                }
                                if (dev.StandardVolt == 0)
                                {
                                    volt = 1;
                                }
                                current = capability / (Math.Sqrt(3) * volt);
                            };
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\PF3.txt"))
                            {
                            }
                            else
                            {
                                return;
                            }
                            dh = new FileStream(System.Windows.Forms.Application.StartupPath + "\\PF3.txt", FileMode.Open);
                            readLine = new StreamReader(dh);

                            charSplit = new char[] { ' ' };
                            strLine = readLine.ReadLine();

                            output += ("全网母线(发电、负荷)结果报表 " + "\r\n" + "\r\n");
                            output += ("单位:kA\\kV\\MW\\Mvar" + "\r\n" + "\r\n");
                            output += ("母线名" + "," + "电压幅值" + "," + "电压相角" + "," + "有功发电" + "," + "无功发电" + "," + "有功负荷" + "," + "无功负荷" + "," + "越限标志" + "," + "过载标志" + "\r\n");
                            int count = 0;
                            while (strLine != null && strLine != "")
                            {
                                array1 = strLine.Split(charSplit);
                                string[] dev = new string[9];
                                dev.Initialize();
                                int i = 0;
                                count++;
                                PSPDEV CR = new PSPDEV();
                                CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;

                                foreach (string str in array1)
                                {
                                    if (str != "")
                                    {
                                        if (str != "NaN")
                                        {
                                            dev[i++] = Convert.ToDouble(str).ToString();
                                        }
                                        else
                                        {
                                            dev[i++] = str;
                                        }

                                    }

                                }

                                CR.Number = Convert.ToInt32(dev[0]);
                                CR.Type = "Use";
                                CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByNumberAndSvgUIDAndType", CR);
                                double vTemp = Convert.ToDouble(dev[1]) * volt;
                                double vTemp1 = volt * 95 / 100;
                                double vTemp2 = volt * 105 / 100;

                                if (vTemp >= vTemp1 && vTemp <= vTemp2)
                                {
                                    dev[5] = "0";
                                }
                                else
                                {
                                    dev[5] = "1";
                                }
                                if (Convert.ToDouble(dev[3]) * capability > Convert.ToDouble(CR.Burthen))
                                {
                                    dev[6] = "1";
                                }
                                else
                                {
                                    dev[6] = "0";
                                }

                                if (Convert.ToDouble(dev[3]) < 0)
                                {

                                    output += CR.Name + "," + (Convert.ToDouble(dev[1]) * volt).ToString() + "," + (Convert.ToDouble(dev[2]) * Rad_to_Deg).ToString() + "," + "0" + "," + "0" + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + dev[5] + "," + dev[6] + "\r\n";
                                }
                                else
                                {

                                    output += CR.Name + "," + (Convert.ToDouble(dev[1]) * volt).ToString() + "," + (Convert.ToDouble(dev[2]) * Rad_to_Deg).ToString() + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + "0" + "," + "0" + "," + dev[5] + "," + dev[6] + "\r\n";
                                }
                                strLine = readLine.ReadLine();
                            }
                            PSPDEV ct = new PSPDEV();
                            ct.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                            ct.Type = "Use";
                            IList cont = Services.BaseService.GetList("SelectPSPDEVBySvgUIDAndType", ct);
                            if (count < cont.Count)
                            {
                                MessageBox.Show("请进行潮流计算后再查看结果!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                readLine.Close();
                                return;

                            }
                            readLine.Close();
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\result.csv"))
                            {
                                File.Delete(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                            }
                            op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\result.csv"), FileMode.OpenOrCreate);
                            str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));
                            str1.Write(output);
                            str1.Close();

                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\DH3.txt"))
                            {
                            }
                            else
                            {
                                return;
                            }
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\IH3.txt"))
                            {
                            }
                            else
                            {
                                return;
                            }
                            dh = new FileStream(System.Windows.Forms.Application.StartupPath + "\\DH3.txt", FileMode.Open);
                            dh2 = new FileStream(System.Windows.Forms.Application.StartupPath + "\\IH3.txt", FileMode.Open);
                            readLine2 = new StreamReader(dh2);
                            readLine = new StreamReader(dh);
                            charSplit = new char[] { ' ' };
                            strLine = readLine.ReadLine();
                            strLine2 = readLine2.ReadLine();

                            output = null;

                            output += ("全网交流线结果报表" + "\r\n" + "\r\n");
                            output += ("单位:kA\\kV\\MW\\Mvar" + "\r\n" + "\r\n");
                            output += ("支路名称" + "," + "支路有功" + "," + "支路无功" + "," + "有功损耗" + "," + "无功损耗" + "," + "电流幅值" + "," + "电流相角" + "," + "越限标志" + "," + "\r\n");
                            while (strLine != null && strLine2 != null && strLine != "" && strLine2 != "")
                            {
                                array1 = strLine.Split(charSplit);
                                array2 = strLine2.Split(charSplit2);

                                string[] dev = new string[20];
                                dev.Initialize();
                                int i = 0;
                                PSPDEV CR = new PSPDEV();
                                CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;

                                foreach (string str in array1)
                                {
                                    if (str != "")
                                    {
                                        if (i == 0)
                                        {
                                            dev[i++] = str.ToString();
                                        }
                                        else
                                        {
                                            if (str != "NaN")
                                            {
                                                dev[i++] = Convert.ToDouble(str).ToString();
                                            }
                                            else
                                            {
                                                dev[i++] = str;
                                            }

                                        }
                                    }

                                }
                                i = 7;
                                for (int j = 3; j < 5; j++)
                                {
                                    if (array2[j] != "")
                                    {
                                        if (array2[j] != "NaN")
                                        {
                                            dev[i++] = Convert.ToDouble(array2[j]).ToString();
                                        }
                                        else
                                        {
                                            dev[i++] = array2[j];
                                        }
                                    }

                                }
                                CR.Name = dev[0];
                                CR.Type = "Polyline";
                                CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByName", CR);

                                if (CR != null)
                                {
                                    if (Convert.ToDouble(dev[7]) * current * 1000 > CR.LineChange)
                                    {
                                        dev[11] = "1";
                                    }
                                    else
                                    {
                                        dev[11] = "0";
                                    }
                                    output += CR.Name + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + (Convert.ToDouble(dev[5]) * capability).ToString() + "," + (Convert.ToDouble(dev[6]) * capability).ToString() + "," + (Convert.ToDouble(dev[7]) * current).ToString() + "," + (Convert.ToDouble(dev[8]) * Rad_to_Deg).ToString() + "," + dev[11] + "," + "\r\n";
                                }
                                else
                                {
                                    CR = new PSPDEV();
                                    CR.Name = dev[0];
                                    CR.Type = "TransformLine";
                                    CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                                    CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByName", CR);
                                    if (CR != null)
                                    {
                                        if (Convert.ToDouble(dev[7]) * current * 1000 > CR.LineChange)
                                        {
                                            dev[11] = "1";
                                        }
                                        else
                                        {
                                            dev[11] = "0";
                                        }
                                        output += CR.Name + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + (Convert.ToDouble(dev[5]) * capability).ToString() + "," + (Convert.ToDouble(dev[6]) * capability).ToString() + "," + (Convert.ToDouble(dev[7]) * current).ToString() + "," + (Convert.ToDouble(dev[8]) * Rad_to_Deg).ToString() + "," + dev[11] + "," + "\r\n";
                                    }
                                }

                                strLine = readLine.ReadLine();
                                strLine2 = readLine2.ReadLine();
                            }
                            readLine.Close();
                            readLine2.Close();
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\result1.csv"))
                            {
                                File.Delete(System.Windows.Forms.Application.StartupPath + "\\result1.csv");
                            }
                            op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\result1.csv"), FileMode.OpenOrCreate);
                            str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));
                            str1.Write(output);
                            str1.Close();

                            ex = new Excel.Application();
                            ex.Application.Workbooks.Add(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                            xSheet = (Excel.Worksheet)ex.Worksheets[1];
                            ex.Worksheets.Add(System.Reflection.Missing.Value, xSheet, 1, System.Reflection.Missing.Value);

                            result1 = new Excel.Application();
                            result1.Application.Workbooks.Add(System.Windows.Forms.Application.StartupPath + "\\result1.csv");
                            tempSheet = (Excel.Worksheet)result1.Worksheets.get_Item(1);
                            newWorksheet = (Excel.Worksheet)ex.Worksheets.get_Item(2);
                            newWorksheet.Name = "线路电流";
                            xSheet.Name = "母线潮流";
                            ex.Visible = true;

                            tempSheet.Cells.Select();
                            tempSheet.Cells.Copy(System.Reflection.Missing.Value);
                            newWorksheet.Paste(System.Reflection.Missing.Value, System.Reflection.Missing.Value);
                            xSheet.Rows.AutoFit();
                            xSheet.Columns.AutoFit();
                            newWorksheet.Rows.AutoFit();
                            newWorksheet.Columns.AutoFit();
                            xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 9]).MergeCells = true;
                            xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 1]).Font.Size = 20;
                            xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 1]).Font.Name = "黑体";
                            xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 1]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                            xSheet.get_Range(xSheet.Cells[5, 1], xSheet.Cells[5, 9]).Interior.ColorIndex = 45;
                            xSheet.get_Range(xSheet.Cells[6, 1], xSheet.Cells[xSheet.UsedRange.Rows.Count, 1]).Interior.ColorIndex = 6;
                            xSheet.get_Range(xSheet.Cells[6, 2], xSheet.Cells[xSheet.UsedRange.Rows.Count, 9]).NumberFormat = "0.0000_ ";
                            xSheet.get_Range(xSheet.Cells[3, 1], xSheet.Cells[xSheet.UsedRange.Rows.Count, 9]).Font.Name = "楷体_GB2312";

                            newWorksheet.get_Range(newWorksheet.Cells[1, 1], newWorksheet.Cells[1, 9]).MergeCells = true;
                            newWorksheet.get_Range(newWorksheet.Cells[1, 1], newWorksheet.Cells[1, 1]).Font.Size = 20;
                            newWorksheet.get_Range(newWorksheet.Cells[1, 1], newWorksheet.Cells[1, 1]).Font.Name = "黑体";
                            newWorksheet.get_Range(newWorksheet.Cells[1, 1], newWorksheet.Cells[1, 1]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                            newWorksheet.get_Range(newWorksheet.Cells[5, 1], newWorksheet.Cells[5, 8]).Interior.ColorIndex = 45;
                            newWorksheet.get_Range(newWorksheet.Cells[6, 1], newWorksheet.Cells[newWorksheet.UsedRange.Rows.Count, 1]).Interior.ColorIndex = 6;
                            newWorksheet.get_Range(newWorksheet.Cells[6, 2], newWorksheet.Cells[newWorksheet.UsedRange.Rows.Count, 9]).NumberFormat = "0.0000_ ";
                            newWorksheet.get_Range(newWorksheet.Cells[3, 1], newWorksheet.Cells[newWorksheet.UsedRange.Rows.Count, 9]).Font.Name = "楷体_GB2312";

                            //op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\fck.excel"), FileMode.OpenOrCreate);
                            //str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));

                            string fn = tlVectorControl1.SVGDocument.FileName;

                            //result1.Save(System.Windows.Forms.Application.StartupPath + "\\fck.xls");

                            newWorksheet.SaveAs(System.Windows.Forms.Application.StartupPath + "\\" + fn + "高斯-赛德尔计算结果.xls", Excel.XlFileFormat.xlXMLSpreadsheet, null, null, false, false, false, null, null, null);

                            //str1.Write();
                            //op.Close();

                            System.Windows.Forms.Clipboard.Clear();
                            result1.Workbooks.Close();
                            result1.Quit();

                        }
                        catch (System.Exception e1)
                        {
                            MessageBox.Show("请进行潮流计算后再查看结果!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }

                        break;
                    case "N_RZYzResult":
                        try
                        {
                            if (!Check())
                            {
                                return;
                            }
                            ZYZ zyz = new ZYZ();
                            zyz.CurrentCal();
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\" + tlVectorControl1.SVGDocument.FileName + "最优乘子法计算结果.xls"))
                            {
                                File.Delete(System.Windows.Forms.Application.StartupPath + "\\" + tlVectorControl1.SVGDocument.FileName + "最优乘子法计算结果.xls");
                                //OpenRead(System.Windows.Forms.Application.StartupPath + "\\" + tlVectorControl1.SVGDocument.FileName + ".xls");
                            }

                            double yinzi = 0, capability = 0, volt = 0, current = 0, Rad_to_Deg = 57.29577951;
                            PSPDEV benchmark = new PSPDEV();
                            benchmark.Type = "power";
                            benchmark.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid;
                            IList list3 = Services.BaseService.GetList("SelectPSPDEVBySvgUIDAndType", benchmark);
                            if (list3 == null)
                            {
                                MessageBox.Show("请设置基准后再进行计算!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return;
                            }
                            foreach (PSPDEV dev in list3)
                            {
                                yinzi = Convert.ToDouble(dev.PowerFactor);
                                capability = Convert.ToDouble(dev.StandardCurrent);
                                volt = Convert.ToDouble(dev.StandardVolt);
                                if (dev.PowerFactor == 0)
                                {
                                    yinzi = 1;
                                }
                                if (dev.StandardCurrent == 0)
                                {
                                    capability = 1;
                                }
                                if (dev.StandardVolt == 0)
                                {
                                    volt = 1;
                                }
                                current = capability / (Math.Sqrt(3) * volt);
                            }
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\PF4.txt"))
                            {
                            }
                            else
                            {
                                return;
                            }
                            dh = new FileStream(System.Windows.Forms.Application.StartupPath + "\\PF4.txt", FileMode.Open);
                            readLine = new StreamReader(dh);

                            charSplit = new char[] { ' ' };
                            strLine = readLine.ReadLine();

                            output += ("全网母线(发电、负荷)结果报表 " + "\r\n" + "\r\n");
                            output += ("单位:kA\\kV\\MW\\Mvar" + "\r\n" + "\r\n");
                            output += ("母线名" + "," + "电压幅值" + "," + "电压相角" + "," + "有功发电" + "," + "无功发电" + "," + "有功负荷" + "," + "无功负荷" + "," + "越限标志" + "," + "过载标志" + "\r\n");
                            int count = 0;
                            while (strLine != null && strLine != "")
                            {
                                array1 = strLine.Split(charSplit);
                                string[] dev = new string[9];
                                dev.Initialize();
                                int i = 0;
                                count++;
                                PSPDEV CR = new PSPDEV();
                                CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;

                                foreach (string str in array1)
                                {
                                    if (str != "")
                                    {
                                        if (str != "NaN")
                                        {
                                            dev[i++] = Convert.ToDouble(str).ToString();
                                        }
                                        else
                                        {
                                            dev[i++] = str;
                                        }

                                    }

                                }

                                CR.Number = Convert.ToInt32(dev[0]);
                                CR.Type = "Use";
                                CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByNumberAndSvgUIDAndType", CR);
                                double vTemp = Convert.ToDouble(dev[1]) * volt;
                                double vTemp1 = volt * 95 / 100;
                                double vTemp2 = volt * 105 / 100;

                                if (vTemp >= vTemp1 && vTemp <= vTemp2)
                                {
                                    dev[5] = "0";
                                }
                                else
                                {
                                    dev[5] = "1";
                                }
                                if (Convert.ToDouble(dev[3]) * capability > Convert.ToDouble(CR.Burthen))
                                {
                                    dev[6] = "1";
                                }
                                else
                                {
                                    dev[6] = "0";
                                }
                                if (Convert.ToDouble(dev[3]) < 0)
                                {

                                    output += CR.Name + "," + (Convert.ToDouble(dev[1]) * volt).ToString() + "," + (Convert.ToDouble(dev[2]) * Rad_to_Deg).ToString() + "," + "0" + "," + "0" + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + dev[5] + "," + dev[6] + "\r\n";
                                }
                                else
                                {

                                    output += CR.Name + "," + (Convert.ToDouble(dev[1]) * volt).ToString() + "," + (Convert.ToDouble(dev[2]) * Rad_to_Deg).ToString() + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + "0" + "," + "0" + "," + dev[5] + "," + dev[6] + "\r\n";
                                }
                                strLine = readLine.ReadLine();
                            }
                            PSPDEV ct = new PSPDEV();
                            ct.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                            ct.Type = "Use";
                            IList cont = Services.BaseService.GetList("SelectPSPDEVBySvgUIDAndType", ct);
                            if (count < cont.Count)
                            {
                                MessageBox.Show("请进行潮流计算后再查看结果!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                readLine.Close();
                                return;

                            }
                            readLine.Close();
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\result.csv"))
                            {
                                File.Delete(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                            }
                            op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\result.csv"), FileMode.OpenOrCreate);
                            str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));
                            str1.Write(output);
                            str1.Close();

                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\DH4.txt"))
                            {
                            }
                            else
                            {
                                return;
                            }
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\IH4.txt"))
                            {
                            }
                            else
                            {
                                return;
                            }
                            dh = new FileStream(System.Windows.Forms.Application.StartupPath + "\\DH4.txt", FileMode.Open);
                            dh2 = new FileStream(System.Windows.Forms.Application.StartupPath + "\\IH4.txt", FileMode.Open);
                            readLine2 = new StreamReader(dh2);
                            readLine = new StreamReader(dh);
                            charSplit = new char[] { ' ' };
                            strLine = readLine.ReadLine();
                            strLine2 = readLine2.ReadLine();

                            output = null;

                            output += ("全网交流线结果报表" + "\r\n" + "\r\n");
                            output += ("单位:kA\\kV\\MW\\Mvar" + "\r\n" + "\r\n");
                            output += ("支路名称" + "," + "支路有功" + "," + "支路无功" + "," + "有功损耗" + "," + "无功损耗" + "," + "电流幅值" + "," + "电流相角" + "," + "越限标志" + "," + "\r\n");
                            while (strLine != null && strLine2 != null && strLine != "" && strLine2 != "")
                            {
                                array1 = strLine.Split(charSplit);
                                array2 = strLine2.Split(charSplit2);

                                string[] dev = new string[20];
                                dev.Initialize();
                                int i = 0;
                                PSPDEV CR = new PSPDEV();
                                CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;

                                foreach (string str in array1)
                                {
                                    if (str != "")
                                    {
                                        if (i == 0)
                                        {
                                            dev[i++] = str.ToString();
                                        }
                                        else
                                        {
                                            if (str != "NaN")
                                            {
                                                dev[i++] = Convert.ToDouble(str).ToString();
                                            }
                                            else
                                            {
                                                dev[i++] = str;
                                            }

                                        }
                                    }

                                }
                                i = 7;
                                for (int j = 3; j < 5; j++)
                                {
                                    if (array2[j] != "")
                                    {
                                        if (array2[j] != "NaN")
                                        {
                                            dev[i++] = Convert.ToDouble(array2[j]).ToString();
                                        }
                                        else
                                        {
                                            dev[i++] = array2[j];
                                        }
                                    }

                                }
                                CR.Name = dev[0];
                                CR.Type = "Polyline";
                                CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByName", CR);

                                if (CR != null)
                                {
                                    if (Convert.ToDouble(dev[7]) * current * 1000 > CR.LineChange)
                                    {
                                        dev[11] = "1";
                                    }
                                    else
                                    {
                                        dev[11] = "0";
                                    }
                                    output += CR.Name + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + (Convert.ToDouble(dev[5]) * capability).ToString() + "," + (Convert.ToDouble(dev[6]) * capability).ToString() + "," + (Convert.ToDouble(dev[7]) * current).ToString() + "," + (Convert.ToDouble(dev[8]) * Rad_to_Deg).ToString() + "," + dev[11] + "," + "\r\n";
                                }
                                else
                                {
                                    CR = new PSPDEV();
                                    CR.Name = dev[0];
                                    CR.Type = "TransformLine";
                                    CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                                    CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByName", CR);
                                    if (CR != null)
                                    {
                                        if (Convert.ToDouble(dev[7]) * current * 1000 > CR.LineChange)
                                        {
                                            dev[11] = "1";
                                        }
                                        else
                                        {
                                            dev[11] = "0";
                                        }
                                        output += CR.Name + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + (Convert.ToDouble(dev[5]) * capability).ToString() + "," + (Convert.ToDouble(dev[6]) * capability).ToString() + "," + (Convert.ToDouble(dev[7]) * current).ToString() + "," + (Convert.ToDouble(dev[8]) * Rad_to_Deg).ToString() + "," + dev[11] + "," + "\r\n";
                                    }
                                }

                                strLine = readLine.ReadLine();
                                strLine2 = readLine2.ReadLine();
                            }
                            readLine.Close();
                            readLine2.Close();
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\result1.csv"))
                            {
                                File.Delete(System.Windows.Forms.Application.StartupPath + "\\result1.csv");
                            }
                            op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\result1.csv"), FileMode.OpenOrCreate);
                            str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));
                            str1.Write(output);
                            str1.Close();

                            ex = new Excel.Application();
                            ex.Application.Workbooks.Add(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                            xSheet = (Excel.Worksheet)ex.Worksheets[1];
                            ex.Worksheets.Add(System.Reflection.Missing.Value, xSheet, 1, System.Reflection.Missing.Value);

                            result1 = new Excel.Application();
                            result1.Application.Workbooks.Add(System.Windows.Forms.Application.StartupPath + "\\result1.csv");
                            tempSheet = (Excel.Worksheet)result1.Worksheets.get_Item(1);
                            newWorksheet = (Excel.Worksheet)ex.Worksheets.get_Item(2);
                            newWorksheet.Name = "线路电流";
                            xSheet.Name = "母线潮流";
                            ex.Visible = true;

                            tempSheet.Cells.Select();
                            tempSheet.Cells.Copy(System.Reflection.Missing.Value);
                            newWorksheet.Paste(System.Reflection.Missing.Value, System.Reflection.Missing.Value);
                            xSheet.Rows.AutoFit();
                            xSheet.Columns.AutoFit();
                            newWorksheet.Rows.AutoFit();
                            newWorksheet.Columns.AutoFit();
                            xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 9]).MergeCells = true;
                            xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 1]).Font.Size = 20;
                            xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 1]).Font.Name = "黑体";
                            xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 1]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                            xSheet.get_Range(xSheet.Cells[5, 1], xSheet.Cells[5, 9]).Interior.ColorIndex = 45;
                            xSheet.get_Range(xSheet.Cells[6, 1], xSheet.Cells[xSheet.UsedRange.Rows.Count, 1]).Interior.ColorIndex = 6;
                            xSheet.get_Range(xSheet.Cells[6, 2], xSheet.Cells[xSheet.UsedRange.Rows.Count, 9]).NumberFormat = "0.0000_ ";
                            xSheet.get_Range(xSheet.Cells[3, 1], xSheet.Cells[xSheet.UsedRange.Rows.Count, 9]).Font.Name = "楷体_GB2312";

                            newWorksheet.get_Range(newWorksheet.Cells[1, 1], newWorksheet.Cells[1, 9]).MergeCells = true;
                            newWorksheet.get_Range(newWorksheet.Cells[1, 1], newWorksheet.Cells[1, 1]).Font.Size = 20;
                            newWorksheet.get_Range(newWorksheet.Cells[1, 1], newWorksheet.Cells[1, 1]).Font.Name = "黑体";
                            newWorksheet.get_Range(newWorksheet.Cells[1, 1], newWorksheet.Cells[1, 1]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                            newWorksheet.get_Range(newWorksheet.Cells[5, 1], newWorksheet.Cells[5, 8]).Interior.ColorIndex = 45;
                            newWorksheet.get_Range(newWorksheet.Cells[6, 1], newWorksheet.Cells[newWorksheet.UsedRange.Rows.Count, 1]).Interior.ColorIndex = 6;
                            newWorksheet.get_Range(newWorksheet.Cells[6, 2], newWorksheet.Cells[newWorksheet.UsedRange.Rows.Count, 9]).NumberFormat = "0.0000_ ";
                            newWorksheet.get_Range(newWorksheet.Cells[3, 1], newWorksheet.Cells[newWorksheet.UsedRange.Rows.Count, 9]).Font.Name = "楷体_GB2312";

                            //op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\fck.excel"), FileMode.OpenOrCreate);
                            //str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));

                            string fn = tlVectorControl1.SVGDocument.FileName;

                            //result1.Save(System.Windows.Forms.Application.StartupPath + "\\fck.xls");

                            newWorksheet.SaveAs(System.Windows.Forms.Application.StartupPath + "\\" + fn + "最优乘子法计算结果.xls", Excel.XlFileFormat.xlXMLSpreadsheet, null, null, false, false, false, null, null, null);

                            //str1.Write();
                            //op.Close();

                            System.Windows.Forms.Clipboard.Clear();
                            result1.Workbooks.Close();
                            result1.Quit();

                        }
                        catch (System.Exception e1)
                        {
                            MessageBox.Show("请进行潮流计算后再查看结果!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }

                        break;
                    case "VoltEvaluation":
                        PspVoltEvaluation();
                        break;
                    case "PowerLoss":
                        try
                        {
                            PSPDEV _dev = new PSPDEV();
                            _dev.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                            _dev.Type = "Polyline";
                            IList list = Services.BaseService.GetList("SelectPSPDEVBySvgUIDAndType", _dev);
                            for (int i = 0; i < list.Count; i++)
                            {
                                PSPDEV _pp = (PSPDEV)list[i];
                                if (_pp.BigP == 0)
                                {
                                    MessageBox.Show("请设置线路" + _pp.Name + "的建设投资。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    return;
                                }
                            }
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\DH1.txt"))
                            {
                            }
                            else
                            {
                                return;
                            }
                            dh = new FileStream(System.Windows.Forms.Application.StartupPath + "\\DH1.txt", FileMode.Open);
                            readLine = new StreamReader(dh);
                            charSplit = new char[] { ' ' };
                            strLine = readLine.ReadLine();
                            output = null;
                            output += ("全网交流线结果报表" + "\r\n" + "\r\n");
                            output += ("单位:kA\\kV\\MW\\Mvar" + "\r\n" + "\r\n");
                            output += ("支路名称" + "," + "支路有功" + "," + "支路无功" + "," + "有功损耗" + "," + "无功损耗" + "\r\n");
                            while (strLine != null)
                            {
                                array1 = strLine.Split(charSplit);
                                string[] dev = new string[9];
                                dev.Initialize();
                                int i = 0;
                                PSPDEV CR = new PSPDEV();
                            }
                        }
                        catch (System.Exception e1)
                        {
                            MessageBox.Show("请进行潮流计算后再查看结果!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }

                        break;
                    case "ZLPResult1":
                        if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\DH1.txt"))
                        {
                        }
                        else
                        {
                            return;
                        }
                        dh = new FileStream(System.Windows.Forms.Application.StartupPath + "\\DH1.txt", FileMode.Open);
                        readLine = new StreamReader(dh);
                        charSplit = new char[] { ' ' };
                        strLine = readLine.ReadLine();
                        output = null;
                        output += ("全网交流线结果报表" + "\r\n" + "\r\n");
                        output += ("单位:kA\\kV\\MW\\Mvar" + "\r\n" + "\r\n");
                        output += ("支路名称" + "," + "支路有功" + "," + "支路无功" + "," + "有功损耗" + "," + "无功损耗" + "\r\n");
                        while (strLine != null)
                        {
                            array1 = strLine.Split(charSplit);
                            string[] dev = new string[9];
                            dev.Initialize();
                            int i = 0;
                            PSPDEV CR = new PSPDEV();
                            CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;

                            foreach (string str in array1)
                            {
                                if (str != "")
                                {
                                    if (str != "NaN")
                                    {
                                        dev[i++] = Convert.ToDouble(str).ToString();
                                    }
                                    else
                                    {
                                        dev[i++] = str;
                                    }

                                }

                            }
                            CR.Number = Convert.ToInt32(dev[0]);
                            CR.Type = "Polyline";
                            CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByNumberAndSvgUIDAndType", CR);
                            output += CR.Name + "," + dev[3] + "," + dev[4] + "," + dev[5] + "," + dev[6] + "\r\n";
                            strLine = readLine.ReadLine();
                        }
                        readLine.Close();
                        if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\result.csv"))
                        {
                            File.Delete(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                        }
                        op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\result.csv"), FileMode.OpenOrCreate);
                        str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));
                        str1.Write(output);
                        str1.Close();

                        ex = new Excel.Application();
                        ex.Application.Workbooks.Add(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                        ex.Visible = true;

                        break;

                    case "ZLAResult1":

                        if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\IH1.txt"))
                        {
                        }
                        else
                        {
                            return;
                        }
                        dh = new FileStream(System.Windows.Forms.Application.StartupPath + "\\IH1.txt", FileMode.Open);
                        readLine = new StreamReader(dh);
                        charSplit = new char[] { ' ' };
                        strLine = readLine.ReadLine();
                        output = null;

                        output += ("支路名称" + "," + "电流幅值" + "," + "电流相角" + "," + "越限标志" + "\r\n");
                        while (strLine != null)
                        {
                            array1 = strLine.Split(charSplit);
                            string[] dev = new string[9];
                            dev.Initialize();
                            int i = 0;
                            PSPDEV CR = new PSPDEV();
                            CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;

                            foreach (string str in array1)
                            {
                                if (str != "")
                                {
                                    if (str != "NaN")
                                    {
                                        dev[i++] = Convert.ToDouble(str).ToString();
                                    }
                                    else
                                    {
                                        dev[i++] = str;
                                    }

                                }

                            }
                            CR.Number = Convert.ToInt32(dev[0]);
                            CR.Type = "Polyline";
                            CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByNumberAndSvgUIDAndType", CR);
                            output += CR.Name + "," + dev[3] + "," + dev[4] + "," + dev[5] + "\r\n";
                            strLine = readLine.ReadLine();
                        }
                        readLine.Close();
                        if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\result.csv"))
                        {
                            File.Delete(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                        }
                        op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\result.csv"), FileMode.OpenOrCreate);
                        str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));
                        str1.Write(output);
                        str1.Close();

                        ex = new Excel.Application();
                        ex.Application.Workbooks.Add(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                        ex.Visible = true;

                        break;

                    case "PQResult":
                        try
                        {
                            if (!CheckPQ())
                            {
                                return;
                            }
                            PQ_PowerFlowCalClass pq = new PQ_PowerFlowCalClass();
                            pq.CurrentCal();
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\" + tlVectorControl1.SVGDocument.FileName + "PQ法计算结果.xls"))
                            {
                                //System.Diagnostics.Process.Start(System.Windows.Forms.Application.StartupPath + "\\" + tlVectorControl1.SVGDocument.FileName + "PQ法计算结果.xls");
                                File.Delete(System.Windows.Forms.Application.StartupPath + "\\" + tlVectorControl1.SVGDocument.FileName + "PQ法计算结果.xls");

                            }
                            double yinzi = 0, capability = 0, volt = 0, current = 0, Rad_to_Deg = 57.29577951;
                            PSPDEV benchmark = new PSPDEV();
                            benchmark.Type = "power";
                            benchmark.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid;
                            IList list3 = Services.BaseService.GetList("SelectPSPDEVBySvgUIDAndType", benchmark);
                            if (list3 == null)
                            {
                                MessageBox.Show("请设置基准后再进行计算!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return;
                            }
                            foreach (PSPDEV dev in list3)
                            {
                                yinzi = Convert.ToDouble(dev.PowerFactor);
                                capability = Convert.ToDouble(dev.StandardCurrent);
                                volt = Convert.ToDouble(dev.StandardVolt);
                                if (dev.PowerFactor == 0)
                                {
                                    yinzi = 1;
                                }
                                if (dev.StandardCurrent == 0)
                                {
                                    capability = 1;
                                }
                                if (dev.StandardVolt == 0)
                                {
                                    volt = 1;
                                }
                                current = capability / (Math.Sqrt(3) * volt);

                            }
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\PF2.txt"))
                            {
                            }
                            else
                            {
                                return;
                            }
                            dh = new FileStream(System.Windows.Forms.Application.StartupPath + "\\PF2.txt", FileMode.Open);
                            readLine = new StreamReader(dh);

                            charSplit = new char[] { ' ' };
                            strLine = readLine.ReadLine();
                            output = null;
                            int count = 0;
                            output += ("全网母线(发电、负荷)结果报表 " + "\r\n" + "\r\n");
                            output += ("单位:kA\\kV\\MW\\Mvar" + "\r\n" + "\r\n");
                            output += ("母线名" + "," + "电压幅值" + "," + "电压相角" + "," + "有功发电" + "," + "无功发电" + "," + "有功负荷" + "," + "无功负荷" + "," + "越限标志" + "," + "过载标志" + "\r\n");
                            while (strLine != null && strLine != "")
                            {
                                array1 = strLine.Split(charSplit);
                                string[] dev = new string[9];
                                dev.Initialize();
                                int i = 0;
                                count++;
                                PSPDEV CR = new PSPDEV();
                                CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;

                                foreach (string str in array1)
                                {
                                    if (str != "")
                                    {
                                        if (str != "NaN")
                                        {
                                            dev[i++] = Convert.ToDouble(str).ToString();
                                        }
                                        else
                                        {
                                            dev[i++] = str;
                                        }

                                    }

                                }

                                CR.Number = Convert.ToInt32(dev[0]);
                                CR.Type = "Use";
                                CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByNumberAndSvgUIDAndType", CR);
                                double vTemp = Convert.ToDouble(dev[1]) * volt;
                                double vTemp1 = volt * 95 / 100;
                                double vTemp2 = volt * 105 / 100;

                                if (vTemp >= vTemp1 && vTemp <= vTemp2)
                                {
                                    dev[5] = "0";
                                }
                                else
                                {
                                    dev[5] = "1";
                                }
                                if (Convert.ToDouble(dev[3]) * capability > Convert.ToDouble(CR.Burthen))
                                {
                                    dev[6] = "1";
                                }
                                else
                                {
                                    dev[6] = "0";
                                }
                                if (Convert.ToDouble(dev[3]) < 0)
                                {

                                    output += CR.Name + "," + (Convert.ToDouble(dev[1]) * volt).ToString() + "," + (Convert.ToDouble(dev[2])).ToString() + "," + "0" + "," + "0" + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + dev[5] + "," + dev[6] + "\r\n";
                                }
                                else
                                {

                                    output += CR.Name + "," + (Convert.ToDouble(dev[1]) * volt).ToString() + "," + (Convert.ToDouble(dev[2])).ToString() + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + "0" + "," + "0" + "," + dev[5] + "," + dev[6] + "\r\n";
                                }
                                strLine = readLine.ReadLine();
                            }
                            PSPDEV ct = new PSPDEV();
                            ct.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                            ct.Type = "Use";
                            IList cont = Services.BaseService.GetList("SelectPSPDEVBySvgUIDAndType", ct);
                            if (count < cont.Count)
                            {
                                MessageBox.Show("请进行潮流计算后再查看结果!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                readLine.Close();
                                return;

                            }
                            readLine.Close();

                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\result.csv"))
                            {
                                File.Delete(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                            }
                            op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\result.csv"), FileMode.OpenOrCreate);
                            str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));
                            str1.Write(output);
                            str1.Close();

                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\DH2.txt"))
                            {
                            }
                            else
                            {
                                return;
                            }
                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\IH2.txt"))
                            {
                            }
                            else
                            {
                                return;
                            }
                            dh = new FileStream(System.Windows.Forms.Application.StartupPath + "\\DH2.txt", FileMode.Open);
                            dh2 = new FileStream(System.Windows.Forms.Application.StartupPath + "\\IH2.txt", FileMode.Open);
                            readLine2 = new StreamReader(dh2);

                            readLine = new StreamReader(dh);
                            charSplit = new char[] { ' ' };
                            strLine = readLine.ReadLine();
                            charSplit2 = new char[] { ' ' };
                            strLine2 = readLine2.ReadLine();
                            output = null;
                            output += ("全网交流线结果报表" + "\r\n" + "\r\n");
                            output += ("单位:kA\\kV\\MW\\Mvar" + "\r\n" + "\r\n");
                            output += ("支路名称" + "," + "支路有功" + "," + "支路无功" + "," + "有功损耗" + "," + "无功损耗" + "," + "电流幅值" + "," + "电流相角" + "," + "越限标志" + "," + "\r\n");
                            while (strLine != null && strLine2 != null && strLine != "" && strLine2 != "")
                            {
                                array1 = strLine.Split(charSplit);
                                array2 = strLine2.Split(charSplit2);

                                string[] dev = new string[20];
                                dev.Initialize();
                                int i = 0;
                                PSPDEV CR = new PSPDEV();
                                CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;

                                foreach (string str in array1)
                                {
                                    if (str != "")
                                    {
                                        if (i == 0)
                                        {
                                            dev[i++] = str.ToString();
                                        }
                                        else
                                        {
                                            if (str != "NaN")
                                            {
                                                dev[i++] = Convert.ToDouble(str).ToString();
                                            }
                                            else
                                            {
                                                dev[i++] = str;
                                            }

                                        }
                                    }

                                }
                                i = 7;
                                for (int j = 3; j < 5; j++)
                                {
                                    if (array2[j] != "")
                                    {
                                        if (array2[j] != "NaN")
                                        {
                                            dev[i++] = Convert.ToDouble(array2[j]).ToString();
                                        }
                                        else
                                        {
                                            dev[i++] = array2[j];
                                        }
                                    }

                                }
                                CR.Name = dev[0];
                                CR.Type = "Polyline";
                                CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByName", CR);

                                if (CR != null)
                                {
                                    if (Convert.ToDouble(dev[7]) * current * 1000 > CR.LineChange)
                                    {
                                        dev[11] = "1";
                                    }
                                    else
                                    {
                                        dev[11] = "0";
                                    }
                                    output += CR.Name + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + (Convert.ToDouble(dev[5]) * capability).ToString() + "," + (Convert.ToDouble(dev[6]) * capability).ToString() + "," + (Convert.ToDouble(dev[7]) * current).ToString() + "," + (Convert.ToDouble(dev[8]) * Rad_to_Deg).ToString() + "," + dev[11] + "," + "\r\n";
                                }
                                else
                                {
                                    CR = new PSPDEV();
                                    CR.Name = dev[0];
                                    CR.Type = "TransformLine";
                                    CR.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                                    CR = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByName", CR);
                                    if (CR != null)
                                    {
                                        if (Convert.ToDouble(dev[7]) * current * 1000 > CR.LineChange)
                                        {
                                            dev[11] = "1";
                                        }
                                        else
                                        {
                                            dev[11] = "0";
                                        }
                                        output += CR.Name + "," + (Convert.ToDouble(dev[3]) * capability).ToString() + "," + (Convert.ToDouble(dev[4]) * capability).ToString() + "," + (Convert.ToDouble(dev[5]) * capability).ToString() + "," + (Convert.ToDouble(dev[6]) * capability).ToString() + "," + (Convert.ToDouble(dev[7]) * current).ToString() + "," + (Convert.ToDouble(dev[8]) * Rad_to_Deg).ToString() + "," + dev[11] + "," + "\r\n";
                                    }
                                }

                                strLine = readLine.ReadLine();
                                strLine2 = readLine2.ReadLine();
                            }
                            readLine.Close();
                            readLine2.Close();

                            if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\result1.csv"))
                            {
                                File.Delete(System.Windows.Forms.Application.StartupPath + "\\result1.csv");
                            }
                            op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\result1.csv"), FileMode.OpenOrCreate);
                            str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));
                            str1.Write(output);
                            str1.Close();

                            Excel.Application ex2 = new Excel.Application();
                            ex2.Application.Workbooks.Add(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                            Excel.Worksheet xSheet2 = (Excel.Worksheet)ex2.Worksheets[1];
                            ex2.Worksheets.Add(System.Reflection.Missing.Value, xSheet2, 1, System.Reflection.Missing.Value);

                            Excel.Application result11 = new Excel.Application();
                            result11.Application.Workbooks.Add(System.Windows.Forms.Application.StartupPath + "\\result1.csv");
                            Excel.Application result12 = new Excel.Application();

                            Excel.Worksheet tempSheet11 = (Excel.Worksheet)result11.Worksheets.get_Item(1);

                            Excel.Worksheet newWorksheet11 = (Excel.Worksheet)ex2.Worksheets.get_Item(2);

                            newWorksheet11.Name = "线路电流";
                            xSheet2.Name = "母线潮流";

                            ex2.Visible = true;
                            tempSheet11.Cells.Select();
                            tempSheet11.Cells.Copy(System.Reflection.Missing.Value);
                            newWorksheet11.Paste(System.Reflection.Missing.Value, System.Reflection.Missing.Value);
                            xSheet2.Rows.AutoFit();
                            xSheet2.Columns.AutoFit();
                            newWorksheet11.Rows.AutoFit();
                            newWorksheet11.Columns.AutoFit();

                            xSheet2.get_Range(xSheet2.Cells[1, 1], xSheet2.Cells[1, 9]).MergeCells = true;
                            xSheet2.get_Range(xSheet2.Cells[1, 1], xSheet2.Cells[1, 1]).Font.Size = 20;
                            xSheet2.get_Range(xSheet2.Cells[1, 1], xSheet2.Cells[1, 1]).Font.Name = "黑体";
                            xSheet2.get_Range(xSheet2.Cells[1, 1], xSheet2.Cells[1, 1]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                            xSheet2.get_Range(xSheet2.Cells[5, 1], xSheet2.Cells[5, 9]).Interior.ColorIndex = 45;
                            xSheet2.get_Range(xSheet2.Cells[6, 1], xSheet2.Cells[xSheet2.UsedRange.Rows.Count, 1]).Interior.ColorIndex = 6;
                            xSheet2.get_Range(xSheet2.Cells[6, 2], xSheet2.Cells[xSheet2.UsedRange.Rows.Count, 9]).NumberFormat = "0.0000_ ";
                            xSheet2.get_Range(xSheet2.Cells[3, 1], xSheet2.Cells[xSheet2.UsedRange.Rows.Count, 9]).Font.Name = "楷体_GB2312";

                            newWorksheet11.get_Range(newWorksheet11.Cells[1, 1], newWorksheet11.Cells[1, 9]).MergeCells = true;
                            newWorksheet11.get_Range(newWorksheet11.Cells[1, 1], newWorksheet11.Cells[1, 1]).Font.Size = 20;
                            newWorksheet11.get_Range(newWorksheet11.Cells[1, 1], newWorksheet11.Cells[1, 1]).Font.Name = "黑体";
                            newWorksheet11.get_Range(newWorksheet11.Cells[1, 1], newWorksheet11.Cells[1, 1]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                            newWorksheet11.get_Range(newWorksheet11.Cells[5, 1], newWorksheet11.Cells[5, 8]).Interior.ColorIndex = 45;
                            newWorksheet11.get_Range(newWorksheet11.Cells[6, 1], newWorksheet11.Cells[newWorksheet11.UsedRange.Rows.Count, 1]).Interior.ColorIndex = 6;
                            newWorksheet11.get_Range(newWorksheet11.Cells[6, 2], newWorksheet11.Cells[newWorksheet11.UsedRange.Rows.Count, 9]).NumberFormat = "0.0000_ ";
                            newWorksheet11.get_Range(newWorksheet11.Cells[3, 1], newWorksheet11.Cells[newWorksheet11.UsedRange.Rows.Count, 9]).Font.Name = "楷体_GB2312";

                            string fn = tlVectorControl1.SVGDocument.FileName;

                            //result1.Save(System.Windows.Forms.Application.StartupPath + "\\fck.xls");

                            newWorksheet11.SaveAs(System.Windows.Forms.Application.StartupPath + "\\" + fn + "PQ法计算结果.xls", Excel.XlFileFormat.xlXMLSpreadsheet, null, null, false, false, false, null, null, null);

                            System.Windows.Forms.Clipboard.Clear();

                            result11.Workbooks.Close();
                            result11.Quit();

                        }
                        catch (System.Exception e3)
                        {
                            MessageBox.Show("请进行潮流计算后再查看结果!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }

                        break;

                    case "mDLR":

                        if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\result.txt"))
                        {
                        }
                        else
                        {
                            return;
                        }
                        int ij = 1;
                        dh = new FileStream(System.Windows.Forms.Application.StartupPath + "\\result.txt", FileMode.Open);
                        readLine = new StreamReader(dh);

                        charSplit = new char[] { ' ' };
                        strLine = readLine.ReadLine();
                        output = null;

                        FileStream dh5 = new FileStream(System.Windows.Forms.Application.StartupPath + "\\dlb.txt", FileMode.Open);
                        StreamReader readLine5 = new StreamReader(dh5);
                        string strLine5;
                        string[] array5;
                        char[] charSplit5 = new char[] { ' ' };
                        strLine5 = readLine5.ReadLine();
                        array5 = strLine5.Split(charSplit5);

                        output += ("全网短路计算结果报表" + "\r\n" + "\r\n");

                        PSPDEV CR235 = new PSPDEV();
                        CR235.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                        CR235.Number = Convert.ToInt32(array5[0]);
                        CR235.Type = array5[1];
                        double ibb = 0;
                        double temp11 = 0;
                        CR235 = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByNumberAndSvgUIDAndType", CR235);

                        if (CR235 == null)
                        {
                            MessageBox.Show("错误!当前图元与结果报表不符!");
                            readLine.Close();
                            readLine5.Close();
                            return;
                        }
                        output += ("短路点" + ":" + " " + CR235.Name + "   " + "故障类型" + ":" + " " + array5[2] + "\r\n" + "\r\n");

                        output += ("名称" + "," + "零序电流" + "," + "正序电流" + "," + "负序电流" + "," + "A相电流" + "," + "B相电流" + "," + "C相电流" + "," + "短路电流" + "," + "短路容量" + "," + "\r\n");
                        while (strLine != null)
                        {
                            array1 = strLine.Split(charSplit);
                            string[] dev = new string[9];
                            dev.Initialize();
                            int i = 0;
                            PSPDEV CR2 = new PSPDEV();
                            CR2.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                            foreach (string str in array1)
                            {
                                if (str != "")
                                {
                                    if (str != "NaN")
                                    {
                                        dev[i++] = Convert.ToDouble(str).ToString();
                                    }
                                    else
                                    {
                                        dev[i++] = str;
                                    }

                                }

                            }

                            //CR2.Number = Convert.ToInt32(dev[2]);
                            //CR2.Type = "Use";
                            //CR2 = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByNumberAndSvgUIDAndType", CR2);
                            CR2.Number = Convert.ToInt32(array5[0]);
                            CR2.Type = array5[1];
                            string nodeName = CR2.Name;

                            CR2 = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByNumberAndSvgUIDAndType", CR2);
                            int vr = Convert.ToInt32(CR2.VoltR);

                            switch (vr)
                            {
                                case 220:
                                    {
                                        ibb = 251.03;
                                        for (int j = 3; j < 9; j++)
                                        {
                                            temp11 = Convert.ToDouble(dev[j]) * ibb * 0.001;
                                            dev[j] = temp11.ToString();
                                        }
                                        ibb = Convert.ToDouble(dev[4]) * 3;
                                        temp11 = 1.732 * ibb * 230;

                                    }
                                    break;
                                case 500:
                                    {
                                        ibb = 104.98;
                                        for (int j = 3; j < 9; j++)
                                        {
                                            temp11 = Convert.ToDouble(dev[j]) * ibb * 0.001;
                                            dev[j] = temp11.ToString();
                                        }
                                        ibb = Convert.ToDouble(dev[4]) * 3;
                                        temp11 = 1.732 * ibb * 550;

                                    }
                                    break;
                                default:
                                    { }
                                    break;
                            }
                            if (ij == 1)
                            {
                                output += CR2.Name + "," + dev[3] + "," + dev[4] + "," + dev[5] + "," + dev[6] + "," + dev[7] + "," + dev[8] + "," + ibb.ToString() + "," + temp11.ToString() + "," + "\r\n";
                            }
                            else
                            {
                                CR2.Number = Convert.ToInt32(dev[2]);

                                CR2.Type = "Polyline";
                                CR2 = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVByNumberAndSvgUIDAndType", CR2);

                                //output += CR2.Name + "," + dev[3] + "," + dev[4] + "," + dev[5] + "," + dev[6] + "," + dev[7] + "," + dev[8] + "\r\n";
                                if (CR2 != null)
                                {
                                    output += CR2.Name + "," + dev[3] + "," + dev[4] + "," + dev[5] + "," + dev[6] + "," + dev[7] + "," + dev[8] + "\r\n";
                                }
                                else if (dev[2] == "500")
                                {
                                    output += nodeName + "故障生成线路" + "," + dev[3] + "," + dev[4] + "," + dev[5] + "," + dev[6] + "," + dev[7] + "," + dev[8] + "\r\n";
                                }
                            }
                            ij = 0;
                            strLine = readLine.ReadLine();
                        }
                        readLine.Close();
                        readLine5.Close();
                        if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\result.csv"))
                        {
                            File.Delete(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                        }
                        op = new FileStream((System.Windows.Forms.Application.StartupPath + "\\result.csv"), FileMode.OpenOrCreate);
                        str1 = new StreamWriter(op, Encoding.GetEncoding("GB2312"));
                        str1.Write(output);
                        str1.Close();

                        ex = new Excel.Application();
                        ex.Application.Workbooks.Add(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                        //ex.Visible = true;

                        //Excel.Application ex = new Excel.Application();

                        ex.Application.Workbooks.Add(System.Windows.Forms.Application.StartupPath + "\\result.csv");
                        xSheet = (Excel.Worksheet)ex.Worksheets[1];
                        //ex.Worksheets.Add(System.Reflection.Missing.Value, xSheet, 1, System.Reflection.Missing.Value);

                        //result1 = new Excel.Application();
                        //result1.Application.Workbooks.Add(System.Windows.Forms.Application.StartupPath + "\\result1.csv");
                        //tempSheet = (Excel.Worksheet)result1.Worksheets.get_Item(1);
                        //Excel.Worksheet newWorksheet = (Excel.Worksheet)ex.Worksheets.get_Item(2);
                        //newWorksheet.Name = "线路电流";
                        xSheet.Name = "短路计算";

                        //tempSheet.Cells.Select();
                        //tempSheet.Cells.Copy(System.Reflection.Missing.Value);
                        //newWorksheet.Paste(System.Reflection.Missing.Value, System.Reflection.Missing.Value);

                        xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 9]).MergeCells = true;
                        xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 1]).Font.Size = 20;
                        xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 1]).Font.Name = "黑体";
                        xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[1, 1]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;

                        xSheet.get_Range(xSheet.Cells[3, 1], xSheet.Cells[3, 1]).Font.Name = "楷体_GB2312";

                        xSheet.get_Range(xSheet.Cells[5, 1], xSheet.Cells[5, 9]).Interior.ColorIndex = 45;

                        xSheet.get_Range(xSheet.Cells[6, 1], xSheet.Cells[xSheet.UsedRange.Rows.Count, 1]).Interior.ColorIndex = 6;
                        xSheet.get_Range(xSheet.Cells[8, 2], xSheet.Cells[xSheet.UsedRange.Rows.Count, 9]).NumberFormat = "0.0000_ ";
                        xSheet.get_Range(xSheet.Cells[5, 1], xSheet.Cells[xSheet.UsedRange.Rows.Count, 9]).Font.Name = "楷体_GB2312";

                        System.Windows.Forms.Clipboard.Clear();
                        //result1.Workbooks.Close();
                        //result1.Quit();
                        ex.Visible = true;
                        break;

                    case "mEnclosure":
                        tlVectorControl1.Operation = ToolOperation.Enclosure;

                        break;

                    case "mGroup":
                        tlVectorControl1.Group();
                        break;
                    case "mUnGroup":
                        tlVectorControl1.UnGroup();
                        break;
                    case "mlinelx":
                        tlVectorControl1.Operation = ToolOperation.ConnectLine_Line;
                        break;
                    case "mzxlx":
                        tlVectorControl1.Operation = ToolOperation.ConnectLine_Rightangle;
                        break;
                    case "mqxlx":
                        tlVectorControl1.Operation = ToolOperation.ConnectLine_Spline;
                        break;
                    case "mqzlx":
                        tlVectorControl1.Operation = ToolOperation.ConnectLine_Polyline;
                        break;
                    case "mCJ1":
                        tlVectorControl1.Operation = ToolOperation.PolyLine;
                        csOperation = CustomOperation.OP_MeasureDistance;
                        break;
                    case "powerFactor":
                        PSPDEV pspDev21 = new PSPDEV();

                        //pspDev2.SUID = Guid.NewGuid().ToString();
                        pspDev21.Type = "Power";
                        pspDev21.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid;
                        pspDev21 = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDAndType", pspDev21);
                        if (pspDev21 != null)
                        {
                        }
                        else
                        {
                            pspDev21 = new PSPDEV();
                            pspDev21.SUID = Guid.NewGuid().ToString();
                            pspDev21.Type = "Power";
                            pspDev21.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid;
                            Services.BaseService.Create<PSPDEV>(pspDev21);
                        }
                        powerf ppz = new powerf(pspDev21);
                        if (ppz.ShowDialog() == DialogResult.OK)
                        {
                            pspDev21.PowerFactor = Convert.ToDouble(ppz.powerfactor);
                            pspDev21.StandardVolt = Convert.ToDouble(ppz.standardvolt);
                            pspDev21.StandardCurrent = Convert.ToDouble(ppz.standardcurrent);
                            pspDev21.BigP = Convert.ToDouble(ppz.bigP);
                            Services.BaseService.Update<PSPDEV>(pspDev21);
                            PSPDEV voltall = new PSPDEV();
                            voltall.Type = "Use";
                            voltall.Lable = "电厂";
                            voltall.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                            IList allvolt = Services.BaseService.GetList("SelectPSPDEVBySvgUIDandLableandType", voltall);
                            foreach (PSPDEV dev in allvolt)
                            {
                                dev.OutP = Convert.ToDouble(dev.Burthen) * pspDev21.BigP;
                                //dev.InPutP=dev.Burthen*pspDev2.BigP;
                                dev.OutQ = dev.OutP * Math.Tan(Math.Acos(pspDev21.PowerFactor));
                                Services.BaseService.Update<PSPDEV>(dev);
                            }
                            voltall.Lable = "变电站";
                            allvolt = Services.BaseService.GetList("SelectPSPDEVBySvgUIDandLableandType", voltall);
                            foreach (PSPDEV dev in allvolt)
                            {
                                dev.InPutP = Convert.ToDouble(dev.Burthen) * pspDev21.BigP;
                                //dev.InPutP=dev.Burthen*pspDev2.BigP;
                                dev.InPutQ = dev.InPutP * pspDev21.BigP * Math.Tan(Math.Acos(pspDev21.PowerFactor));
                                Services.BaseService.Update<PSPDEV>(dev);
                            }

                        }

                        break;
                    //if (=null)
                    //{

                    #endregion

                    #region 视图
                    case "mLayer":
                        frmlar.Show();
                        break;
                    case "mOption":
                        tlVectorControl1.SetOption();
                        break;
                    case "mAirscape":
                        frmAirscape fAir = new frmAirscape();
                        fAir.InitData(tlVectorControl1);
                        fAir.Owner = this;
                        fAir.ShowInTaskbar = false;
                        fAir.Top = Screen.PrimaryScreen.WorkingArea.Height - 250;
                        fAir.Left = Screen.PrimaryScreen.WorkingArea.Width - 300;
                        fAir.Show();
                        break;
                    case "btTL":
                        frmGlebeTypeList fgle = new frmGlebeTypeList();
                        fgle.Show();
                        break;
                    #endregion

                    #region 布局,对齐,顺序
                    case "mRotate":
                        if (btItem.Tag is ButtonItem)
                        {
                            btItem = btItem.Tag as ButtonItem;
                            tlVectorControl1.FlipX();

                        }
                        else
                        {
                            tlVectorControl1.FlipX();
                        }
                        break;
                    case "mToH":

                        tlVectorControl1.FlipX();
                        //this.rotateButton.Tag = btItem;
                        //this.rotateButton.ImageIndex = btItem.ImageIndex;
                        break;
                    case "mToV":
                        tlVectorControl1.FlipY();
                        //this.rotateButton.Tag = btItem;
                        //this.rotateButton.ImageIndex = btItem.ImageIndex;
                        break;
                    case "mToLeft":
                        tlVectorControl1.RotateSelection(-90f);
                        ////this.rotateButton.Tag = btItem;
                        ////this.rotateButton.ImageIndex = btItem.ImageIndex;
                        break;
                    case "mToRight":
                        tlVectorControl1.RotateSelection(90f);
                        //this.rotateButton.Tag = btItem;
                        //this.rotateButton.ImageIndex = btItem.ImageIndex;
                        break;
                    case "mAlign":
                        if (btItem.Tag is ButtonItem)
                        {
                            btItem = btItem.Tag as ButtonItem;
                            tlVectorControl1.Align(AlignType.Left);

                        }
                        else
                        {
                            tlVectorControl1.Align(AlignType.Left);

                        }
                        tlVectorControl1.Refresh();
                        break;
                    case "mAlignLeft":
                        tlVectorControl1.Align(AlignType.Left);
                        this.alignButton.ImageIndex = btItem.ImageIndex;
                        this.alignButton.Tag = btItem;
                        tlVectorControl1.Refresh();
                        break;
                    case "mAlignRight":
                        tlVectorControl1.Align(AlignType.Right);
                        this.alignButton.ImageIndex = btItem.ImageIndex;
                        this.alignButton.Tag = btItem;
                        tlVectorControl1.Refresh();
                        break;
                    case "mAlignTop":
                        tlVectorControl1.Align(AlignType.Top);
                        this.alignButton.ImageIndex = btItem.ImageIndex;
                        this.alignButton.Tag = btItem;
                        tlVectorControl1.Refresh();
                        break;
                    case "mAlignBottom":
                        tlVectorControl1.Align(AlignType.Bottom);
                        this.alignButton.ImageIndex = btItem.ImageIndex;
                        this.alignButton.Tag = btItem;
                        tlVectorControl1.Refresh();
                        break;
                    case "mAlignHorizontalCenter":
                        tlVectorControl1.Align(AlignType.HorizontalCenter);
                        this.alignButton.ImageIndex = btItem.ImageIndex;
                        this.alignButton.Tag = btItem;
                        tlVectorControl1.Refresh();
                        break;
                    case "mAlignVerticalCenter":
                        tlVectorControl1.Align(AlignType.VerticalCenter);
                        this.alignButton.ImageIndex = btItem.ImageIndex;
                        this.alignButton.Tag = btItem;
                        tlVectorControl1.Refresh();
                        break;
                    case "mOrder":
                        if (btItem.Tag is ButtonItem)
                        {
                            btItem = btItem.Tag as ButtonItem;
                            tlVectorControl1.ChangeLevel(LevelType.Top);

                        }
                        else
                        {
                            tlVectorControl1.ChangeLevel(LevelType.Top);
                        }

                        break;
                    case "mGoTop":
                        tlVectorControl1.ChangeLevel(LevelType.Top);
                        this.orderButton.Tag = btItem;
                        this.orderButton.ImageIndex = btItem.ImageIndex;
                        break;
                    case "mGoUp":
                        tlVectorControl1.ChangeLevel(LevelType.Up);
                        this.orderButton.Tag = btItem;
                        this.orderButton.ImageIndex = btItem.ImageIndex;
                        break;
                    case "mGoDown":
                        tlVectorControl1.ChangeLevel(LevelType.Down);
                        this.orderButton.Tag = btItem;
                        this.orderButton.ImageIndex = btItem.ImageIndex;
                        break;
                    case "mGoBottom":
                        tlVectorControl1.ChangeLevel(LevelType.Bottom);
                        this.orderButton.Tag = btItem;
                        this.orderButton.ImageIndex = btItem.ImageIndex;
                        break;
                    #endregion
                    #region 图元操作
                    case "mCopy":
                        tlVectorControl1.Copy();
                        break;
                    case "mCut":
                        tlVectorControl1.Cut();
                        break;
                    case "mPaste":
                        tlVectorControl1.Paste();
                        break;
                    case "mDelete":
                        if (tlVectorControl1.SVGDocument.CurrentElement is SVG)
                        {
                        }
                        else
                        {
                            if (MessageBox.Show("确定要删除么?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                            {
                                SvgElementCollection collection = tlVectorControl1.SVGDocument.SelectCollection;
                                foreach (XmlElement element in collection)
                                {
                                    PSPDEV pspDev = new PSPDEV();
                                    pspDev.EleID = element.GetAttribute("id");
                                    pspDev.SvgUID = tlVectorControl1.SVGDocument.CurrentLayer.ID;
                                    pspDev = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDandEleID", pspDev);
                                    Services.BaseService.Delete<PSPDEV>(pspDev);
                                }
                                tlVectorControl1.Delete();
                            }

                        }
                        break;
                    case "mUodo":
                        tlVectorControl1.Undo();
                        break;
                    case "mRedo":
                        tlVectorControl1.Redo();
                        break;
                    #endregion
                    #region 业务操作

                    case "mXLine":
                        tlVectorControl1.Operation = ToolOperation.Select;
                        tlVectorControl1.Operation = ToolOperation.XPolyLine;
                        break;
                    case "mYLine":
                        tlVectorControl1.Operation = ToolOperation.Select;
                        tlVectorControl1.Operation = ToolOperation.YPolyLine;
                        break;

                    case "mSaveGroup":
                        if (tlVectorControl1.SVGDocument.SelectCollection.Count > 1)
                        {
                            string content = "<svg>";
                            SvgElementCollection col = tlVectorControl1.SVGDocument.SelectCollection;
                            for (int i = 0; i < col.Count; i++)
                            {
                                SvgElement _e = (SvgElement)col[i];
                                if (_e.ID != "svg")
                                {
                                    content = content + _e.OuterXml;
                                }
                            }
                            RectangleF rect = tlVectorControl1.DrawArea.viewer.SelectedViewRectangle;

                            content = content + "</svg>";
                            frmSaveGroup fm = new frmSaveGroup();
                            fm.rect = rect;
                            fm.Content = content;
                            fm.ShowDialog();
                        }
                        else
                        {
                            MessageBox.Show("请至少选择2个图元。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return;
                        }
                        break;

                    case "mInsert":
                        frmUseGroup fg = new frmUseGroup();
                        if (fg.ShowDialog() == DialogResult.OK)
                        {
                            UseGroup u = fg.SelectedUseGroup;
                            if (u != null)
                            {
                                frmXY xy = new frmXY();
                                if (xy.ShowDialog() == DialogResult.OK)
                                {
                                    decimal x = xy.GetX();
                                    decimal y = xy.GetY();
                                    string content = u.Content;
                                    XmlDocument doc = new XmlDocument();
                                    doc.LoadXml(u.Content);
                                    XmlNodeList list = doc.ChildNodes;
                                    XmlNode _node = list[0];
                                    XmlNodeList sonlist = _node.ChildNodes;
                                    XmlElement ele = tlVectorControl1.SVGDocument.CreateElement("g");
                                    ele.SetAttribute("layer", SvgDocument.currentLayer);
                                    for (int i = 0; i < sonlist.Count; i++)
                                    {
                                        XmlNode _sonnode = sonlist[i];
                                        //string str = _sonnode.OuterXml;
                                        if (_sonnode.Name == "use")
                                        {
                                            string sid = ((XmlElement)_sonnode).GetAttribute("xlink:href");
                                            XmlNode _snode = symbolSelector.SymbolDoc.SelectSingleNode("//*[@id='" + sid.Substring(1) + "']");
                                            tlVectorControl1.SVGDocument.AddDefsElement((SvgElement)_snode);
                                        }
                                        ele.AppendChild(_sonnode);
                                        string ss = ele.OuterXml;
                                    }
                                    //RectangleF r=((Group)ele).GetBounds();
                                    string tr = "matrix(1,0,0,1,";

                                    tr = tr + Convert.ToString(x - Convert.ToDecimal(u.X)) + ",";
                                    tr = tr + Convert.ToString(y - Convert.ToDecimal(u.Y)) + ")";

                                    ele.SetAttribute("transform", tr);
                                    // transform="matrix(1,0,0,1,2558.82,-352.94)"
                                    tlVectorControl1.SVGDocument.RootElement.AppendChild(ele);
                                    tlVectorControl1.SVGDocument.SelectCollection.Clear();
                                    tlVectorControl1.SVGDocument.SelectCollection.Add((SvgElement)ele);
                                    tlVectorControl1.UnGroup();
                                    // tlVectorControl1.Refresh();
                                }
                            }
                        }
                        break;
                    #endregion
                    #region 参数维护
                    case "mNodeParam":
                        frmNodeParam dlgNodeParam = new frmNodeParam(tlVectorControl1.SVGDocument.CurrentLayer.ID);
                        dlgNodeParam.ShowDialog();
                        break;
                    case "mLineParam":
                        frmLineParamWJ dlgLineParam = new frmLineParamWJ(tlVectorControl1.SVGDocument.CurrentLayer.ID);
                        dlgLineParam.ShowDialog();
                        break;
                    case "mWire":
                        wireTypeParam wirewire = new wireTypeParam();
                        wirewire.ShowDialog();
                        break;
                    case "nTransformLineParam":
                        frmTransformLineParam frmTransfor = new frmTransformLineParam(tlVectorControl1.SVGDocument.CurrentLayer.ID);
                        frmTransfor.ShowDialog();
                        break;
                    case "nGNDLineParam":
                        break;
                    case "mLineDL":
                        frmLineParamDL dlgLineParamDL = new frmLineParamDL(tlVectorControl1.SVGDocument.CurrentLayer.ID);
                        dlgLineParamDL.ShowDialog();
                        break;
                    case "mFadianDL":
                        frmFadejieDL dlgFadeDL = new frmFadejieDL(tlVectorControl1.SVGDocument.CurrentLayer.ID);
                        dlgFadeDL.ShowDialog();
                        break;
                    case "mTest":
                        tlVectorControl1.Operation = ToolOperation.AreaSelect;
                        break;
                    case "mjianLine":

                        if (tlVectorControl1.SVGDocument.CurrentLayer.ID == tlVectorControl1.SVGDocument.SvgdataUid + "4")
                        {
                            zhengtiflag = true;
                            jiqiflag = false;
                            zhongqiflag = false;
                            yuanqiflag = false;
                            jianxiancheck();

                            MessageBox.Show("整体数据减线成功。");
                            Topology2();             //颜色发生变化
                        }
                        if (tlVectorControl1.SVGDocument.CurrentLayer.ID == tlVectorControl1.SVGDocument.SvgdataUid + "1" && zhengtiflag)
                        {
                            jiqiflag = true;
                            zhengtiflag = false;
                            zhongqiflag = false;
                            yuanqiflag = false;
                            jianxiancheck();

                            MessageBox.Show("近期数据减线成功。");
                            Topology2();             //颜色发生变化
                        }
                        if (tlVectorControl1.SVGDocument.CurrentLayer.ID == tlVectorControl1.SVGDocument.SvgdataUid + "2" && jiqiflag)
                        {
                            zhongqiflag = true;
                            jiqiflag = false;
                            yuanqiflag = false;
                            jianxiancheck();

                            MessageBox.Show("中期数据减线成功。");
                            Topology2();             //颜色发生变化
                        }
                        if (tlVectorControl1.SVGDocument.CurrentLayer.ID == tlVectorControl1.SVGDocument.SvgdataUid + "3" && zhongqiflag)
                        {
                            yuanqiflag = true;
                            jiqiflag = false;
                            zhongqiflag = false;
                            jianxiancheck();

                            MessageBox.Show("远期数据减线成功,请查看结果");
                            Topology2();             //颜色发生变化
                        }
                        if (!zhengtiflag && !jiqiflag && !zhongqiflag && !yuanqiflag)
                        {
                            string msg2 = "减线法:\r\n 1、选中整体图层进行网架优化。\r\n 2、将整体图层拷贝到近期图层,然后选中近期图层进行网架优化。\r\n 3、拷贝到中期图层,然后选中中期图层进行网架优化\r\n 4、拷贝到远期图层,然后选中远期图层进行网架优化。";
                            MessageBox.Show(msg2, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        }
                        break;
                    case "mjiaLine":

                        if (tlVectorControl1.SVGDocument.CurrentLayer.ID == tlVectorControl1.SVGDocument.SvgdataUid + "4")
                        {

                            MessageBox.Show("整体图层采用的是减线法!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            break;
                        }
                        if (tlVectorControl1.SVGDocument.CurrentLayer.ID == tlVectorControl1.SVGDocument.SvgdataUid + "1" && zhengtiflag)
                        {
                            jiqiflag = true;
                            zhengtiflag = false;
                            zhongqiflag = false;
                            yuanqiflag = false;
                            addlinecheck();
                            addrightcheck();
                            for (int i = 0; i < ercilinedengdai.Count; i++)
                            {
                                ercilinedengdai[i].LineStatus = "运行";
                                Services.BaseService.Update<PSPDEV>(ercilinedengdai[i]);
                            }
                            for (int i = 0; i < lineyiyou.Count; i++)
                            {
                                lineyiyou[i].LineStatus = "待选";
                                Services.BaseService.Update<PSPDEV>(lineyiyou[i]);
                            }
                            MessageBox.Show("近期数据加线成功。");
                            Topology2();             //颜色发生变化
                        }
                        if (tlVectorControl1.SVGDocument.CurrentLayer.ID == tlVectorControl1.SVGDocument.SvgdataUid + "2" && jiqiflag)
                        {
                            zhongqiflag = true;
                            jiqiflag = false;
                            yuanqiflag = false;
                            addlinecheck();
                            addrightcheck();
                            for (int i = 0; i < ercilinedengdai.Count; i++)
                            {
                                ercilinedengdai[i].LineStatus = "运行";
                                Services.BaseService.Update<PSPDEV>(ercilinedengdai[i]);
                            }
                            for (int i = 0; i < lineyiyou.Count; i++)
                            {
                                lineyiyou[i].LineStatus = "待选";
                                Services.BaseService.Update<PSPDEV>(lineyiyou[i]);
                            }
                            MessageBox.Show("中期数据加线成功。");
                            Topology2();             //颜色发生变化
                        }
                        if (tlVectorControl1.SVGDocument.CurrentLayer.ID == tlVectorControl1.SVGDocument.SvgdataUid + "3" && zhongqiflag)
                        {
                            yuanqiflag = true;
                            jiqiflag = false;
                            zhongqiflag = false;
                            addlinecheck();
                            addrightcheck();
                            for (int i = 0; i < ercilinedengdai.Count; i++)
                            {
                                ercilinedengdai[i].LineStatus = "运行";
                                Services.BaseService.Update<PSPDEV>(ercilinedengdai[i]);
                            }
                            for (int i = 0; i < lineyiyou.Count; i++)
                            {
                                lineyiyou[i].LineStatus = "待选";
                                Services.BaseService.Update<PSPDEV>(lineyiyou[i]);
                            }
                            MessageBox.Show("远期数据加线成功。请查看优化结果");
                            Topology2();             //颜色发生变化
                        }
                        if (!zhengtiflag && !jiqiflag && !zhongqiflag && !yuanqiflag)
                        {
                            string msg2 = "加线法:\r\n 1、选中整体图层进行网架优化,此时采用的是减线法。\r\n 2、将整体图层拷贝到近期图层,然后选中近期图层进行网架优化。\r\n 3、拷贝到中期图层,然后选中中期图层进行网架优化\r\n 4、拷贝到远期图层,然后选中远期图层进行网架优化。";
                            MessageBox.Show(msg2, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            break;
                        }
                        break;

                    case "YhResult":       //优化结果
                        if (yuanqiflag)
                        {
                            frmGProList p1 = new frmGProList();
                            p1.Show();
                            p1.LoadData(LoadData());
                        }
                        else
                            MessageBox.Show("请依次做完各个时期的优化,再看结果!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        break;
                    #endregion
                    #region 参数维护
                    case "m_in":
                        if (tlVectorControl1.SVGDocument.CurrentLayer.ID != tlVectorControl1.SVGDocument.SvgdataUid + "5")
                        {
                            MessageBox.Show("请选择背景参考层。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return;
                        }

                        StringBuilder txt = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\"?><svg id=\"svg\" width=\"1500\" height=\"1000\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:itop=\"http://www.Itop.com/itop\" transform=\"matrix(1 0 0 1 0 1)\"><defs>");
                        StringBuilder Allcontent = new StringBuilder();
                        string svgdefs = "";
                        string layertxt = "";

                        frmLayerSel sel = new frmLayerSel();
                        if (sel.ShowDialog() == DialogResult.OK)
                        {
                            ArrayList tlist = sel.LayList;
                            SVG_SYMBOL sym = new SVG_SYMBOL();
                            sym.svgID = oldsid;
                            IList<SVG_SYMBOL> symlist = Services.BaseService.GetList<SVG_SYMBOL>("SelectSVG_SYMBOLBySvgID", sym);
                            foreach (SVG_SYMBOL _sym in symlist)
                            {
                                svgdefs = svgdefs + _sym.XML;
                            }
                            txt.Append(svgdefs + "</defs>");
                            for (int i = 0; i < tlist.Count; i++)
                            {
                                SVG_LAYER lar = new SVG_LAYER();
                                lar.svgID = oldsid;
                                lar.SUID = ((SVG_LAYER)tlist[i]).SUID;
                                lar = (SVG_LAYER)Services.BaseService.GetObject("SelectSVG_LAYERByKey", lar);
                                layertxt = layertxt + "<layer id=\"" + lar.SUID + "\" label=\"" + lar.NAME + "\" layerType=\"" + lar.layerType + "\" visibility=\"" + lar.visibility + "\" ParentID=\"" + lar.YearID + "\" IsSelect=\"" + lar.IsSelect + "\" />";
                                Allcontent.Append(lar.XML);
                            }
                            txt.Append(layertxt);
                            txt.Append(Allcontent.ToString() + "</svg>");
                            SvgDocument document = new SvgDocument();
                            document.LoadXml(txt.ToString());
                            document.SvgdataUid = oldsid;
                            XmlNodeList xlist = document.SelectNodes("svg/polyline [@IsLead='1']");
                            for (int i = 0; i < xlist.Count; i++)
                            {
                                SvgElement gra = xlist[i] as SvgElement;
                                gra.SetAttribute("layer", tlVectorControl1.SVGDocument.SvgdataUid + "5");
                                ((IGraph)gra).Layer = tlVectorControl1.SVGDocument.CurrentLayer;
                                tlVectorControl1.SVGDocument.RootElement.AppendChild((XmlNode)gra);

                            }
                            XmlNodeList xlist2 = document.SelectNodes("svg/use");
                            for (int i = 0; i < xlist2.Count; i++)
                            {
                                SvgElement gra = xlist2[i] as SvgElement;
                                gra.SetAttribute("layer", tlVectorControl1.SVGDocument.SvgdataUid + "5");
                                ((IGraph)gra).Layer = tlVectorControl1.SVGDocument.CurrentLayer;
                                tlVectorControl1.SVGDocument.RootElement.AppendChild((XmlNode)gra);

                            }
                            tlVectorControl1.Refresh();
                            MessageBox.Show("导入数据成功。");
                        }

                        break;
                    case "m_1to2"://近期

                        //删除掉原来元素

                        deltall(tlVectorControl1.SVGDocument.SvgdataUid + "1");
                        //********
                        ArrayList sel_line1 = new ArrayList();
                        LayerGrade l1 = new LayerGrade();
                        l1.Type = "1";
                        l1.SvgDataUid = oldsid;
                        IList ttlist = Services.BaseService.GetList("SelectLayerGradeList5", l1);
                        if (ttlist.Count > 0)
                        {
                            LayerGrade n1 = (LayerGrade)ttlist[0];
                            try
                            {
                                int yy = Convert.ToInt32(n1.Name.Substring(0, 4));
                                XmlNodeList list1to2 = tlVectorControl1.SVGDocument.SelectNodes("svg/use [@layer='" + tlVectorControl1.SVGDocument.SvgdataUid + "4" + "' and @year<='" + yy + "']");
                                for (int i = 0; i < list1to2.Count; i++)
                                {
                                    SvgElement gra = list1to2[i] as SvgElement;

                                    XmlNode temp = gra.Clone();
                                    ((SvgElement)temp).SetAttribute("layer", tlVectorControl1.SVGDocument.SvgdataUid + "1");
                                    XmlNode newnode = tlVectorControl1.SVGDocument.RootElement.AppendChild((XmlNode)temp);
                                    //加入节点的名称

                                    XmlNode text = tlVectorControl1.SVGDocument.SelectSingleNode("svg/*[@ParentID='" + gra.GetAttribute("id") + "']");
                                    XmlNode textemp = text.Clone();
                                    ((SvgElement)textemp).SetAttribute("layer", tlVectorControl1.SVGDocument.SvgdataUid + "1");
                                    ((SvgElement)textemp).SetAttribute("ParentID", ((SvgElement)temp).GetAttribute("id"));
                                    tlVectorControl1.SVGDocument.RootElement.AppendChild((XmlNode)textemp);
                                    PSPDEV pspDev = new PSPDEV();
                                    pspDev.EleID = gra.ID;
                                    pspDev.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "4";
                                    pspDev = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDandEleID", pspDev);
                                    if (pspDev != null)
                                    {
                                        pspDev.SUID = Guid.NewGuid().ToString();
                                        pspDev.EleID = ((SvgElement)newnode).ID;
                                        pspDev.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "1";
                                        Services.BaseService.Create<PSPDEV>(pspDev);
                                    }
                                }
                                XmlNodeList listline = tlVectorControl1.SVGDocument.SelectNodes("svg/polyline [@layer='" + tlVectorControl1.SVGDocument.SvgdataUid + "4']");
                                //for (int i = 0; i < list1to2.Count; i++)
                                //{
                                //    SvgElement temp = list1to2[i] as SvgElement;
                                //    RectangleF ff = ((IGraph)temp).GetBounds();
                                //    Region r = new Region(((IGraph)temp).GetBounds());
                                //    for (int j = 0; j < listline.Count;j++ )
                                //    {
                                //        Polyline pln = listline[j] as Polyline;
                                //        if (r.IsVisible(pln.Points[0]))
                                //        {
                                //            if (!sel_line1.Contains(pln))
                                //            {
                                //                sel_line1.Add(pln);
                                //            }

                                //        }
                                //    }

                                //}
                                for (int i = 0; i < listline.Count; i++)
                                {
                                    bool firstnodeflag = false; bool lastnodeflag = false;
                                    Polyline pln = listline[i] as Polyline;
                                    PSPDEV psp = new PSPDEV();
                                    psp.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "4";
                                    psp.EleID = pln.ID;
                                    psp = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDandEleID", psp);
                                    if (psp.LineStatus != "等待")
                                    {
                                        for (int j = 0; j < list1to2.Count; j++)
                                        {
                                            SvgElement temp = list1to2[j] as SvgElement;
                                            Region ff = new Region(((IGraph)temp).GetBounds());
                                            if (ff.IsVisible(pln.Points[0]))
                                            {
                                                firstnodeflag = true;
                                            }
                                            if (ff.IsVisible(pln.Points[1]))
                                            {
                                                lastnodeflag = true;
                                            }
                                        }
                                        if (firstnodeflag && lastnodeflag && !sel_line1.Contains(pln))
                                        {
                                            sel_line1.Add(pln);
                                        }

                                    }

                                }
                                for (int i = 0; i < sel_line1.Count; i++)
                                {
                                    SvgElement gra = sel_line1[i] as SvgElement;

                                    XmlNode temp = gra.Clone();
                                    ((SvgElement)temp).SetAttribute("layer", tlVectorControl1.SVGDocument.SvgdataUid + "1");
                                    XmlNode newnode = tlVectorControl1.SVGDocument.RootElement.AppendChild((XmlNode)temp);
                                    PSPDEV pspDev = new PSPDEV();
                                    pspDev.EleID = gra.ID;
                                    pspDev.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "4";
                                    pspDev = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDandEleID", pspDev);
                                    if (pspDev != null)
                                    {
                                        pspDev.SUID = Guid.NewGuid().ToString();
                                        pspDev.EleID = ((SvgElement)newnode).ID;
                                        pspDev.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "1";
                                        Services.BaseService.Create<PSPDEV>(pspDev);
                                    }
                                }
                                MessageBox.Show("数据处理成功。");
                                Topology2();             //颜色发生变化
                            }
                            catch
                            {
                                MessageBox.Show("选择的年份前4位不是数字。");
                            }
                        }
                        break;
                    case "m_2to3"://中期
                        deltall(tlVectorControl1.SVGDocument.SvgdataUid + "2");
                        ArrayList sel_line2 = new ArrayList();
                        LayerGrade l1_2 = new LayerGrade();
                        l1_2.Type = "1";
                        l1_2.SvgDataUid = oldsid;
                        l1_2 = (LayerGrade)Services.BaseService.GetObject("SelectLayerGradeList5", l1_2);
                        LayerGrade l2_2 = new LayerGrade();
                        l2_2.Type = "2";
                        l2_2.SvgDataUid = oldsid;
                        l2_2 = (LayerGrade)Services.BaseService.GetObject("SelectLayerGradeList5", l2_2);
                        if (l1_2 != null && l2_2 != null)
                        {

                            try
                            {
                                //整体规划层里的中期数据

                                int yy1 = Convert.ToInt32(l1_2.Name.Substring(0, 4));
                                int yy2 = Convert.ToInt32(l2_2.Name.Substring(0, 4));

                                XmlNodeList list1to2 = tlVectorControl1.SVGDocument.SelectNodes("svg/use [@layer='" + tlVectorControl1.SVGDocument.SvgdataUid + "4" + "' and @year>'" + yy1 + "' and @year<='" + yy2 + "']");
                                for (int i = 0; i < list1to2.Count; i++)
                                {
                                    SvgElement gra = list1to2[i] as SvgElement;
                                    XmlNode temp = gra.Clone();
                                    ((SvgElement)temp).SetAttribute("layer", tlVectorControl1.SVGDocument.SvgdataUid + "2");
                                    XmlNode newnode = tlVectorControl1.SVGDocument.RootElement.AppendChild((XmlNode)temp);
                                    //加入节点的名称

                                    XmlNode text = tlVectorControl1.SVGDocument.SelectSingleNode("svg/*[@ParentID='" + gra.GetAttribute("id") + "']");
                                    XmlNode textemp = text.Clone();
                                    ((SvgElement)textemp).SetAttribute("layer", tlVectorControl1.SVGDocument.SvgdataUid + "2");
                                    ((SvgElement)textemp).SetAttribute("ParentID", ((SvgElement)temp).GetAttribute("id"));
                                    tlVectorControl1.SVGDocument.RootElement.AppendChild((XmlNode)textemp);
                                    PSPDEV pspDev = new PSPDEV();
                                    pspDev.EleID = gra.ID;
                                    pspDev.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "4";
                                    pspDev = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDandEleID", pspDev);
                                    if (pspDev != null)
                                    {
                                        pspDev.SUID = Guid.NewGuid().ToString();
                                        pspDev.EleID = ((SvgElement)newnode).ID;
                                        pspDev.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "2";
                                        Services.BaseService.Create<PSPDEV>(pspDev);
                                    }
                                }

                                XmlNodeList listline2 = tlVectorControl1.SVGDocument.SelectNodes("svg/polyline [@layer='" + tlVectorControl1.SVGDocument.SvgdataUid + "4']");
                                XmlNodeList list1to1 = tlVectorControl1.SVGDocument.SelectNodes("svg/use [@layer='" + tlVectorControl1.SVGDocument.SvgdataUid + "4" + "' and @year<='" + yy1 + "']");
                                for (int i = 0; i < listline2.Count; i++)
                                {
                                    bool firstnodeflag = false; bool lastnodeflag = false; bool jinqifirstnodeflag = false; bool jinqilastnodeflag = false;
                                    Polyline pln = listline2[i] as Polyline;
                                    PSPDEV psp = new PSPDEV();
                                    psp.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "4";
                                    psp.EleID = pln.ID;
                                    psp = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDandEleID", psp);
                                    if (psp.LineStatus != "等待")
                                    {
                                        for (int j = 0; j < list1to2.Count; j++)
                                        {
                                            SvgElement temp = list1to2[j] as SvgElement;
                                            Region ff = new Region(((IGraph)temp).GetBounds());
                                            if (ff.IsVisible(pln.Points[0]))
                                            {
                                                firstnodeflag = true;
                                            }
                                            if (ff.IsVisible(pln.Points[1]))
                                            {
                                                lastnodeflag = true;
                                            }
                                        }
                                        for (int j = 0; j < list1to1.Count; j++)
                                        {
                                            SvgElement temp = list1to1[j] as SvgElement;
                                            Region ff = new Region(((IGraph)temp).GetBounds());
                                            if (ff.IsVisible(pln.Points[0]))
                                            {
                                                jinqifirstnodeflag = true;
                                            }
                                            if (ff.IsVisible(pln.Points[1]))
                                            {
                                                jinqilastnodeflag = true;
                                            }
                                        }
                                        if (firstnodeflag && lastnodeflag && !sel_line2.Contains(pln))
                                        {
                                            sel_line2.Add(pln);
                                        }
                                        if (firstnodeflag && jinqilastnodeflag && !sel_line2.Contains(pln))
                                        {
                                            sel_line2.Add(pln);
                                        }
                                        if (lastnodeflag && jinqifirstnodeflag && !sel_line2.Contains(pln))
                                        {
                                            sel_line2.Add(pln);
                                        }

                                    }

                                }
                                for (int i = 0; i < sel_line2.Count; i++)
                                {
                                    SvgElement gra = sel_line2[i] as SvgElement;

                                    XmlNode temp = gra.Clone();
                                    ((SvgElement)temp).SetAttribute("layer", tlVectorControl1.SVGDocument.SvgdataUid + "2");
                                    XmlNode newnode = tlVectorControl1.SVGDocument.RootElement.AppendChild((XmlNode)temp);
                                    PSPDEV pspDev = new PSPDEV();
                                    pspDev.EleID = gra.ID;
                                    pspDev.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "4";
                                    pspDev = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDandEleID", pspDev);
                                    if (pspDev != null)
                                    {
                                        pspDev.SUID = Guid.NewGuid().ToString();
                                        pspDev.EleID = ((SvgElement)newnode).ID;
                                        pspDev.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "2";
                                        Services.BaseService.Create<PSPDEV>(pspDev);
                                    }
                                }
                                //近期数据
                                XmlNodeList list_1 = tlVectorControl1.SVGDocument.SelectNodes("svg/* [@layer='" + tlVectorControl1.SVGDocument.SvgdataUid + "1']");
                                for (int i = 0; i < list_1.Count; i++)
                                {
                                    SvgElement gra = list_1[i] as SvgElement;
                                    XmlNode temp = gra.Clone();
                                    ((SvgElement)temp).SetAttribute("layer", tlVectorControl1.SVGDocument.SvgdataUid + "2");
                                    XmlNode newnode = tlVectorControl1.SVGDocument.RootElement.AppendChild((XmlNode)temp);
                                    //加入节点的名称

                                    XmlNode text = tlVectorControl1.SVGDocument.SelectSingleNode("svg/*[@ParentID='" + gra.GetAttribute("id") + "']");
                                    if (text != null)
                                    {
                                        XmlNode textemp = text.Clone();
                                        ((SvgElement)textemp).SetAttribute("layer", tlVectorControl1.SVGDocument.SvgdataUid + "2");
                                        ((SvgElement)textemp).SetAttribute("ParentID", ((SvgElement)temp).GetAttribute("id"));
                                        tlVectorControl1.SVGDocument.RootElement.AppendChild((XmlNode)textemp);
                                    }

                                    PSPDEV pspDev = new PSPDEV();
                                    pspDev.EleID = gra.ID;
                                    pspDev.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "1";
                                    pspDev = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDandEleID", pspDev);
                                    if (pspDev != null)
                                    {
                                        pspDev.SUID = Guid.NewGuid().ToString();
                                        pspDev.EleID = ((SvgElement)newnode).ID;
                                        pspDev.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "2";
                                        if (pspDev.LineStatus == "待选")
                                        {
                                            pspDev.LineStatus = "运行";
                                        }
                                        if (pspDev.LineStatus == "等待")
                                        {
                                            pspDev.LineStatus = "待选";
                                        }
                                        Services.BaseService.Create<PSPDEV>(pspDev);
                                    }
                                }
                                MessageBox.Show("数据处理成功。");
                                Topology2();             //颜色发生变化
                            }
                            catch
                            {
                                MessageBox.Show("选择的年份前4位不是数字。");
                            }
                        }
                        break;
                    case "m_3to4"://远期
                        deltall(tlVectorControl1.SVGDocument.SvgdataUid + "3");
                        ArrayList sel_line3 = new ArrayList();
                        LayerGrade l1_3 = new LayerGrade();
                        l1_3.Type = "2";
                        l1_3.SvgDataUid = oldsid;
                        l1_3 = (LayerGrade)Services.BaseService.GetObject("SelectLayerGradeList5", l1_3);
                        LayerGrade l2_3 = new LayerGrade();
                        l2_3.Type = "3";
                        l2_3.SvgDataUid = oldsid;
                        l2_3 = (LayerGrade)Services.BaseService.GetObject("SelectLayerGradeList5", l2_3);
                        if (l1_3 != null && l2_3 != null)
                        {

                            try
                            {
                                //整体规划层里的远期数据

                                int yy1 = Convert.ToInt32(l1_3.Name.Substring(0, 4));
                                int yy2 = Convert.ToInt32(l2_3.Name.Substring(0, 4));
                                XmlNodeList list1to2 = tlVectorControl1.SVGDocument.SelectNodes("svg/use [@layer='" + tlVectorControl1.SVGDocument.SvgdataUid + "4" + "' and @year>'" + yy1 + "' and @year<='" + yy2 + "']");
                                for (int i = 0; i < list1to2.Count; i++)
                                {
                                    SvgElement gra = list1to2[i] as SvgElement;
                                    XmlNode temp = gra.Clone();
                                    ((SvgElement)temp).SetAttribute("layer", tlVectorControl1.SVGDocument.SvgdataUid + "3");
                                    XmlNode newnode = tlVectorControl1.SVGDocument.RootElement.AppendChild((XmlNode)temp);
                                    XmlNode text = tlVectorControl1.SVGDocument.SelectSingleNode("svg/*[@ParentID='" + gra.GetAttribute("id") + "']");
                                    XmlNode textemp = text.Clone();
                                    ((SvgElement)textemp).SetAttribute("layer", tlVectorControl1.SVGDocument.SvgdataUid + "3");
                                    ((SvgElement)textemp).SetAttribute("ParentID", ((SvgElement)temp).GetAttribute("id"));
                                    tlVectorControl1.SVGDocument.RootElement.AppendChild((XmlNode)textemp);
                                    PSPDEV pspDev = new PSPDEV();
                                    pspDev.EleID = gra.ID;
                                    pspDev.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "4";
                                    pspDev = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDandEleID", pspDev);
                                    if (pspDev != null)
                                    {
                                        pspDev.SUID = Guid.NewGuid().ToString();
                                        pspDev.EleID = ((SvgElement)newnode).ID;
                                        pspDev.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "3";
                                        Services.BaseService.Create<PSPDEV>(pspDev);
                                    }
                                }

                                XmlNodeList listline2 = tlVectorControl1.SVGDocument.SelectNodes("svg/polyline [@layer='" + tlVectorControl1.SVGDocument.SvgdataUid + "4']");
                                XmlNodeList list1to1 = tlVectorControl1.SVGDocument.SelectNodes("svg/use [@layer='" + tlVectorControl1.SVGDocument.SvgdataUid + "4" + "' and @year<='" + yy1 + "']");
                                for (int i = 0; i < listline2.Count; i++)
                                {
                                    bool firstnodeflag = false; bool lastnodeflag = false; bool jinqifirstnodeflag = false; bool jinqilastnodeflag = false;
                                    Polyline pln = listline2[i] as Polyline;
                                    PSPDEV psp = new PSPDEV();
                                    psp.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "4";
                                    psp.EleID = pln.ID;
                                    psp = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDandEleID", psp);
                                    if (psp.LineStatus != "等待")
                                    {
                                        for (int j = 0; j < list1to2.Count; j++)
                                        {
                                            SvgElement temp = list1to2[j] as SvgElement;
                                            Region ff = new Region(((IGraph)temp).GetBounds());
                                            if (ff.IsVisible(pln.Points[0]))
                                            {
                                                firstnodeflag = true;
                                            }
                                            if (ff.IsVisible(pln.Points[1]))
                                            {
                                                lastnodeflag = true;
                                            }
                                        }
                                        for (int j = 0; j < list1to1.Count; j++)
                                        {
                                            SvgElement temp = list1to1[j] as SvgElement;
                                            Region ff = new Region(((IGraph)temp).GetBounds());
                                            if (ff.IsVisible(pln.Points[0]))
                                            {
                                                jinqifirstnodeflag = true;
                                            }
                                            if (ff.IsVisible(pln.Points[1]))
                                            {
                                                jinqilastnodeflag = true;
                                            }
                                        }
                                        if (firstnodeflag && lastnodeflag && !sel_line3.Contains(pln))
                                        {
                                            sel_line3.Add(pln);
                                        }
                                        if (firstnodeflag && jinqilastnodeflag && !sel_line3.Contains(pln))
                                        {
                                            sel_line3.Add(pln);
                                        }
                                        if (lastnodeflag && jinqifirstnodeflag && !sel_line3.Contains(pln))
                                        {
                                            sel_line3.Add(pln);
                                        }

                                    }

                                }
                                for (int i = 0; i < sel_line3.Count; i++)
                                {
                                    SvgElement gra = sel_line3[i] as SvgElement;

                                    XmlNode temp = gra.Clone();
                                    ((SvgElement)temp).SetAttribute("layer", tlVectorControl1.SVGDocument.SvgdataUid + "3");
                                    XmlNode newnode = tlVectorControl1.SVGDocument.RootElement.AppendChild((XmlNode)temp);
                                    PSPDEV pspDev = new PSPDEV();
                                    pspDev.EleID = gra.ID;
                                    pspDev.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "4";
                                    pspDev = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDandEleID", pspDev);
                                    if (pspDev != null)
                                    {
                                        pspDev.SUID = Guid.NewGuid().ToString();
                                        pspDev.EleID = ((SvgElement)newnode).ID;
                                        pspDev.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "3";
                                        Services.BaseService.Create<PSPDEV>(pspDev);
                                    }
                                }
                                //中期数据
                                XmlNodeList list_1 = tlVectorControl1.SVGDocument.SelectNodes("svg/* [@layer='" + tlVectorControl1.SVGDocument.SvgdataUid + "2']");
                                for (int i = 0; i < list_1.Count; i++)
                                {
                                    SvgElement gra = list_1[i] as SvgElement;
                                    XmlNode temp = gra.Clone();
                                    ((SvgElement)temp).SetAttribute("layer", tlVectorControl1.SVGDocument.SvgdataUid + "3");
                                    XmlNode newnode = tlVectorControl1.SVGDocument.RootElement.AppendChild((XmlNode)temp);
                                    //加入节点的名称

                                    XmlNode text = tlVectorControl1.SVGDocument.SelectSingleNode("svg/*[@ParentID='" + gra.GetAttribute("id") + "']");
                                    if (text != null)
                                    {
                                        XmlNode textemp = text.Clone();
                                        ((SvgElement)textemp).SetAttribute("layer", tlVectorControl1.SVGDocument.SvgdataUid + "3");
                                        ((SvgElement)textemp).SetAttribute("ParentID", ((SvgElement)temp).GetAttribute("id"));
                                        tlVectorControl1.SVGDocument.RootElement.AppendChild((XmlNode)textemp);
                                    }
                                    PSPDEV pspDev = new PSPDEV();
                                    pspDev.EleID = gra.ID;
                                    pspDev.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "2";
                                    pspDev = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDandEleID", pspDev);
                                    if (pspDev != null)
                                    {
                                        pspDev.SUID = Guid.NewGuid().ToString();
                                        pspDev.EleID = ((SvgElement)newnode).ID;
                                        pspDev.SvgUID = tlVectorControl1.SVGDocument.SvgdataUid + "3";
                                        if (pspDev.LineStatus == "待选")
                                        {
                                            pspDev.LineStatus = "运行";
                                        }
                                        if (pspDev.LineStatus == "等待")
                                        {
                                            pspDev.LineStatus = "待选";
                                        }
                                        Services.BaseService.Create<PSPDEV>(pspDev);
                                    }
                                }
                                MessageBox.Show("数据处理成功。");
                                Topology2();             //颜色发生变化
                            }
                            catch
                            {
                                MessageBox.Show("选择的年份前4位不是数字。");
                            }
                        }
                        break;
                    #endregion
                }
            }
        }
 private void addtotreelist(SVG_LAYER obj)
 {
     DataTable dt = treeList1.DataSource as DataTable;
     if (dt == null) return;
     dt.Rows.Add(Itop.Common.DataConverter.ObjectToRow(obj, dt.NewRow()));
 }
Exemple #22
0
        /*  public void Open(string _SvgUID)
           {
               try
               {

                   if (_SvgUID.Length < 20)
                   {
                       JxtBar();
                       tlVectorControl1.ContextMenuStrip = null;
                   }
                   SVGFILE svgFile = new SVGFILE();
                   svgFile.SUID = _SvgUID;
                   SvgDocument document = CtrlSvgView.CashSvgDocument;
                   if (document == null)
                   {
                       IList svgList = Services.BaseService.GetList("SelectSVGFILEByKey", svgFile);
                       if (svgList.Count > 0)
                       {
                           svgFile = (SVGFILE)svgList[0];
                       }

                       document = new SvgDocument();
                       if (!string.IsNullOrEmpty(svgFile.SVGDATA))
                       {
                           document.LoadXml(svgFile.SVGDATA);
                       }

                       document.FileName = svgFile.FILENAME;
                       document.SvgdataUid = svgFile.SUID;
                   }
                   SVGUID = document.SvgdataUid;

                   img = document.SelectSingleNode("//*[@TLGH=\"1\"]");
                   if (img != null)
                   {
                       ((XmlElement)img).SetAttribute("xlink:href", " ");
                   }
                   this.Text = document.FileName;
                   if (document.RootElement == null)
                   {
                       tlVectorControl1.NewFile();
                       Layer.CreateNew("背景层", tlVectorControl1.SVGDocument);
                       Layer.CreateNew("城市规划层", tlVectorControl1.SVGDocument);
                       Layer.CreateNew("供电区域层", tlVectorControl1.SVGDocument);
                   }
                   else
                   {
                       tlVectorControl1.SVGDocument = document;
                   }
                   tlVectorControl1.SVGDocument.SvgdataUid = SVGUID;
                   tlVectorControl1.SVGDocument.FileName = this.Text;
                   tlVectorControl1.DocumentbgColor = Color.White;
                   tlVectorControl1.BackColor = Color.White;
                   //tlVectorControl1.ForeColor = Color.White;
                   CreateComboBox();
                   xltProcessor = new XLTProcessor(tlVectorControl1);
                   xltProcessor.MapView = mapview;
                   xltProcessor.OnNewLine += new NewLineDelegate(xltProcessor_OnNewLine);
               }
               catch (Exception e)
               {
                   MessageBox.Show(e.Message);
               }
           }*/
        public void Open2(string _SvgUID)
        {
            StringBuilder txt = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\"?><svg id=\"svg\" width=\"1500\" height=\"1000\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:itop=\"http://www.Itop.com/itop\" transform=\"matrix(1 0 0 1 0 1)\"><defs>");
            string svgdefs = "";
            string layertxt = "";
            StringBuilder content = new StringBuilder();
            string where = "";
            if (string.IsNullOrEmpty(_SvgUID)) return;
            try {
                if (progtype == "城市规划层") {
                    where = " (layerType = '城市规划层') OR (layerType = '地理信息层') ";
                } else {
                    where = " (layerType = '地理信息层') ";
                }
                SVGFILE svgFile = new SVGFILE();
                svgFile.SUID = _SvgUID;
                svgFile = (SVGFILE)Services.BaseService.GetObject("SelectSVGFILEByKey", svgFile);
                //SvgDocument document = CashSvgDocument;
                //if (document == null) {
                SVG_LAYER lar = new SVG_LAYER();
                lar.svgID = _SvgUID;
                lar.YearID = where;
                IList<SVG_LAYER> larlist = Services.BaseService.GetList<SVG_LAYER>("SelectSVG_LAYERByWhere", lar);
                foreach (SVG_LAYER _lar in larlist) {
                    layertxt = layertxt + "<layer id=\"" + _lar.SUID + "\" label=\"" + _lar.NAME + "\" layerType=\"" + _lar.layerType + "\" visibility=\"" + _lar.visibility + "\" ParentID=\"" + _lar.YearID + "\" IsSelect=\"" + _lar.IsSelect + "\" />";
                    content.Append(_lar.XML);
                }
                txt.Append(layertxt);

                SVG_SYMBOL sym = new SVG_SYMBOL();
                sym.svgID = _SvgUID;
                IList<SVG_SYMBOL> symlist = Services.BaseService.GetList<SVG_SYMBOL>("SelectSVG_SYMBOLBySvgID", sym);
                foreach (SVG_SYMBOL _sym in symlist) {
                    svgdefs = svgdefs + _sym.XML;
                }

                txt.Append(svgdefs + "</defs>");
                txt.Append(content.ToString() + "</svg>");

                SvgDocument document = new SvgDocument();
                document.LoadXml(txt.ToString());
                document.FileName = SvgName;
                document.SvgdataUid = _SvgUID;
                SVGUID = _SvgUID;

                this.Text = document.FileName;
                if (document.RootElement == null) {
                    tlVectorControl1.NewFile();
                    Layer.CreateNew("背景层", tlVectorControl1.SVGDocument);
                    Layer.CreateNew("城市规划层", tlVectorControl1.SVGDocument);
                    Layer.CreateNew("供电区域层", tlVectorControl1.SVGDocument);
                } else {
                    tlVectorControl1.SVGDocument = document;
                }
                tlVectorControl1.SVGDocument.SvgdataUid = _SvgUID;
                tlVectorControl1.SVGDocument.FileName = this.Text;
                tlVectorControl1.DocumentbgColor = Color.White;
                tlVectorControl1.BackColor = Color.White;
                //tlVectorControl1.ForeColor = Color.White;
                CreateComboBox();
                xltProcessor = new XLTProcessor(tlVectorControl1);
                xltProcessor.MapView = mapview;
                xltProcessor.OnNewLine += new NewLineDelegate(xltProcessor_OnNewLine);
            } catch (Exception e) {
                MessageBox.Show(e.Message);
            }
        }
        private void bbtaddfa_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            frmInput dlg = new frmInput();
            dlg.Text = "������Ϣ";
            dlg.InputType = progtype;
            if (dlg.ShowDialog(this) == DialogResult.OK)
            {
                if (Layer.CkLayerExist(dlg.InputString, this.SymbolDoc))
                {
                    MessageBox.Show("�ĵ����Ѿ�����ͬ��������", "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                //Layer lar = Layer.CreateNew(dlg.InputString, this.SymbolDoc);
                //lar.SetAttribute("layerType", dlg.InputType);
                //if (ilist.Count > 0)
                //{
                //    lar.SetAttribute("ParentID", ilist[0].ToString());
                //}
                addflag = true;
                //this.checkedListBox1.Items.Add(lar, true);
                //checkedListBox1.SelectedIndex = checkedListBox1.Items.Count - 1;
                DataTable dt = treeList1.DataSource as DataTable;
                SVG_LAYER _svg = new SVG_LAYER() { SUID = Guid.NewGuid().ToString().Substring(0, 10) };
                //if (treeList1.FocusedNode != null)
                {
                    _svg.NAME = dlg.InputString;
                    _svg.SUID = "FA" + _svg.SUID;
                    //_svg.ParentID = treeList1.FocusedNode["ParentID"].ToString();
                    _svg.YearID = ilist[0].ToString();
                    _svg.svgID = symbolDoc.SvgdataUid;
                    //_svg.OrderID = int.Parse(treeList1.FocusedNode["OrderID"].ToString()) + 1;
                    _svg.MDATE = DateTime.Now;
                    Services.BaseService.Create<SVG_LAYER>(_svg);
                    //�������㷽��
                    PSP_ELCPROJECT pd = new PSP_ELCPROJECT();
                    pd.ID = _svg.SUID;
                    pd.Name = dlg.InputString;
                    pd.FileType = "����";
                    pd.Class = System.DateTime.Now.ToString();
                    if (!string.IsNullOrEmpty(StrYear) && StrYear.Length == 4)
                    {
                        pd.BelongYear = StrYear;
                    }

                    pd.ProjectID = Itop.Client.MIS.ProgUID;
                    Services.BaseService.Create<PSP_ELCPROJECT>(pd);
                }
                DataRow row = dt.NewRow();
                dt.Rows.Add(DataConverter.ObjectToRow(_svg, row));
            }
        }
Exemple #24
0
        public void Open(string _SvgUID)
        {
            string id = "''";
            frmLayerGrade fgrade = new frmLayerGrade();
            fgrade.SymbolDoc = tlVectorControl1.SVGDocument;
            fgrade.InitData(_SvgUID);

            if (fgrade.ShowDialog() == DialogResult.OK) {
                id = fgrade.GetSelectNode();
                str_selID = id;
            } else {
                id = fgrade.GetSelectNode();
                str_selID = id;
            }
            frmlar.YearID = id;
            StringBuilder txt = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\"?><svg id=\"svg\" width=\"1500\" height=\"1000\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:itop=\"http://www.Itop.com/itop\" transform=\"matrix(1 0 0 1 0 1)\"><defs>");
            string svgdefs = "";
            string layertxt = "";
            StringBuilder content = new StringBuilder();

            if (string.IsNullOrEmpty(_SvgUID)) return;
            try {
                SVGFILE svgFile = new SVGFILE();
                svgFile.SUID = _SvgUID;
                svgFile = (SVGFILE)Services.BaseService.GetObject("SelectSVGFILEByKey", svgFile);
                //SvgDocument document = CashSvgDocument;
                //if (document == null) {
                SVG_LAYER lar = new SVG_LAYER();
                lar.svgID = _SvgUID;
                lar.YearID = "Yearid in(" + id + ") or layerType='城市规划层'";
                IList<SVG_LAYER> larlist = Services.BaseService.GetList<SVG_LAYER>("SelectSVG_LAYERByWhere", lar);
                foreach (SVG_LAYER _lar in larlist) {
                    layertxt = layertxt + "<layer id=\"" + _lar.SUID + "\" label=\"" + _lar.NAME + "\" layerType=\"" + _lar.layerType + "\" visibility=\"" + _lar.visibility + "\" ParentID=\"" + _lar.YearID + "\" IsSelect=\"" + _lar.IsSelect + "\" />";
                    content.Append(_lar.XML);
                }
                txt.Append(layertxt);

                SVG_SYMBOL sym = new SVG_SYMBOL();
                sym.svgID = _SvgUID;
                IList<SVG_SYMBOL> symlist = Services.BaseService.GetList<SVG_SYMBOL>("SelectSVG_SYMBOLBySvgID", sym);
                foreach (SVG_SYMBOL _sym in symlist) {
                    svgdefs = svgdefs + _sym.XML;
                }

                txt.Append(svgdefs + "</defs>");
                txt.Append(content.ToString() + "</svg>");

                //IList svgList = Services.BaseService.GetList("SelectSVGFILEByKey", svgFile);
                //svgFile = (SVGFILE)svgList[0];

                SvgDocument document = SvgDocumentFactory.CreateDocument();
                if (txt.ToString() != "1") {
                    string filename = Path.GetTempFileName();
                    if (File.Exists("tmp080321.temp")) {
                        filename = "tmp080321.temp";
                    } else {
                        StreamWriter sw = new StreamWriter(filename);
                        sw.Write(txt.ToString());
                        sw.Close();
                    }
                    tlVectorControl1.OpenFile(filename);
                    document = tlVectorControl1.SVGDocument;
                    int chose = Convert.ToInt32(ConfigurationSettings.AppSettings.Get("chose"));
                    //if (chose == 2)
                    //{ convertDoc(document); }
                } else {
                    NullFile(_SvgUID);
                    return;
                }
                document.FileName = svgFile.FILENAME;
                document.SvgdataUid = svgFile.SUID;
                //CashSvgDocument = document;
                //}

                SvgUID = document.SvgdataUid;
                //this.Text = document.FileName;
                string title = " ";
                string t = "";
                getProjName(MIS.ProgUID, ref title);

                string[] str = str_selID.Split(",".ToCharArray());
                if (str.Length > 1) {
                    for (int i = 1; i < str.Length; i++) {
                        LayerGrade ll = Services.BaseService.GetOneByKey<LayerGrade>(str[i].Replace("'", ""));
                        if (ll != null) {
                            if (ll.ParentID != "SUID") {
                                LayerGrade ll2 = Services.BaseService.GetOneByKey<LayerGrade>(ll.ParentID);
                                t = t + ll2.Name + " " + ll.Name + ", ";
                            }
                        }
                    }
                }

                this.ParentForm.Text = title + " " + t + " 浏览状态";
                if (document.RootElement == null) {
                    tlVectorControl1.NewFile();
                    Layer.CreateNew("背景层", tlVectorControl1.SVGDocument);
                    Layer.CreateNew("城市规划层", tlVectorControl1.SVGDocument);
                    Layer.CreateNew("供电区域层", tlVectorControl1.SVGDocument);
                } else {
                    tlVectorControl1.SVGDocument = document;
                }
                tlVectorControl1.SVGDocument.SvgdataUid = SvgUID;
                tlVectorControl1.SVGDocument.FileName = this.Text;
                if (svgFile.SUID.Length > 20) {
                    MapType = "接线图";
                }

                CreateComboBox();
                AddCombolScale();
                Init();
                this.tlVectorControl1.IsPasteGrid = false;
                this.tlVectorControl1.IsShowGrid = false;
                this.tlVectorControl1.IsShowRule = false;
                this.tlVectorControl1.IsShowTip = false;
                contextMenuStrip1.Enabled = false;
                //tlVectorControl1.Operation = ToolOperation.Roam;
                //tlVectorControl1.ScaleRatio = 0.1f;
                //LayerManagerShow();
            } catch (Exception e) {
                MessageBox.Show(e.Message);
            }
        }
        private void bbtaddlayer_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            frmInput dlg = new frmInput();
            dlg.InputType = progtype;
            if (dlg.ShowDialog(this) == DialogResult.OK)
            {
                if (Layer.CkLayerExist(dlg.InputString, this.SymbolDoc))
                {
                    MessageBox.Show("�ĵ����Ѿ�����ͬ��ͼ�㡣", "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                Layer lar = Layer.CreateNew(dlg.InputString, this.SymbolDoc);
                lar.SetAttribute("layerType", dlg.InputType);
                if (ilist.Count > 0)
                {
                    lar.SetAttribute("ParentID", ilist[0].ToString());
                }
                addflag = true;

                DataTable dt = treeList1.DataSource as DataTable;
                SVG_LAYER _svg = new SVG_LAYER() { SUID = lar.ID, NAME = lar.Label };
                if (treeList1.FocusedNode != null)
                {
                    _svg.ParentID = treeList1.FocusedNode["ParentID"].ToString();
                    if (ilist.Count!=0)
                    {
                        _svg.YearID = ilist[0].ToString();
                    }

                    _svg.svgID = symbolDoc.SvgdataUid;
                    _svg.OrderID = int.Parse(treeList1.FocusedNode["OrderID"].ToString()) + 1;
                    _svg.MDATE = DateTime.Now;
                    _svg.layerType = progtype;
                    Services.BaseService.Create<SVG_LAYER>(_svg);
                }
                DataRow row = dt.NewRow();
                dt.Rows.Add(DataConverter.ObjectToRow(_svg, row));

            }
        }
        private void bbtdellayer_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (treeList1.FocusedNode != null)
            {
                TreeListNode treenode = treeList1.FocusedNode;
                if (treenode["SUID"].ToString().Contains("FA"))
                {
                    return;
                }
                if (treenode.HasChildren)
                {
                    MessageBox.Show("���ӽڵ�ʱ����ɾ����", "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                Layer layer = symbolDoc.Layers[treenode["SUID"].ToString()] as Layer;
                if (!CkRight(layer))
                {
                    MessageBox.Show("����ͼ�㲻�ܸ�����ɾ����", "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                if (MessageBox.Show("ɾ��ͼ���ʹ��ǰͼ�����������ݶ�ʧ���Ҳ��ɻָ���ȷ��Ҫɾ����", "��ʾ", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                {
                    //    return;
                    //}
                    //if (MessageBox.Show(this, "�Ƿ�ɾ��ͼ�㣺" + layer.Label + "?", "��ȷ��", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    //{
                    XmlNode node = this.SymbolDoc.SelectSingleNode("//*[@layer='" + layer.ID + "']");
                    if (node != null)
                    {

                        if ((MessageBox.Show(this, "��ͼ������ͼԪ,�Ƿ�ɾ��ͼ�㣺" + layer.Label + "?", "��ȷ��", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes))
                        {
                            //PSPDEV _line = new PSPDEV();
                            //_line.LayerID = layer.ID;
                            //Services.BaseService.Update("DeletePSPDEVbyLayerID", _line);
                            glebeProperty gle = new glebeProperty();
                            gle.LayerID = layer.ID;
                            Services.BaseService.Update("DeleteglebePropertyByLayerID", gle);
                            //PSP_Substation_Info _sub = new PSP_Substation_Info();
                            //_sub.LayerID = layer.ID;
                            //Services.BaseService.Update("DeletePSP_Substation_InfoByLayerID", _sub);

                            SVG_LAYER lar = new SVG_LAYER();
                            lar.SUID = layer.ID;
                            Services.BaseService.Update("DeleteSVG_LAYER", lar);
                            XmlNodeList list = this.SymbolDoc.SelectNodes("//*[@layer='" + layer.ID + "']");
                            foreach (XmlNode elNode in list)
                            {
                                this.SymbolDoc.RootElement.RemoveChild(elNode);
                            }
                            // Services.BaseService.Update("UpdateGraPowerRelationByLayerID", layer.ID);
                            //���ĵ����Ƴ�
                            layer.Remove();
                            //���б����Ƴ�
                            if (treenode.ParentNode != null)
                                treenode.ParentNode.Nodes.Remove(treenode);
                            else
                                treeList1.Nodes.Remove(treenode);
                            layer = null;
                            LayerName = "";
                        }
                        //layer.Attributes.RemoveAll();
                    }
                    else
                    {
                        // Services.BaseService.Update("UpdateGraPowerRelationByLayerID", layer.ID);
                        //���ĵ����Ƴ�
                        SVG_LAYER lar = new SVG_LAYER();
                        lar.SUID = layer.ID;
                        Services.BaseService.Update("DeleteSVG_LAYER", lar);
                        try
                        {
                            layer.Remove();
                        }
                        catch { }
                        //���б����Ƴ�
                        if (treenode.ParentNode != null)
                            treenode.ParentNode.Nodes.Remove(treenode);
                        else
                            treeList1.Nodes.Remove(treenode);
                        layer = null;
                        LayerName = "";
                    }
                }
                //if(this.checkedListBox1.Items.Count<1){
                if (OnDeleteLayer != null)
                {
                    OnDeleteLayer(sender);
                }
                //}
            }
        }
        private void bbteditfa_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            TreeListNode node = treeList1.FocusedNode;
            if (node != null)
            {
                string suid = node["SUID"].ToString();
                if (suid.Contains("FA"))
                {
                    frmInput dlg = new frmInput();
                    dlg.Text = "������Ϣ";
                    dlg.hide = true;
                    dlg.id = symbolDoc.SvgdataUid;
                    dlg.symbolDoc = symbolDoc;
                    dlg.InputString = node["NAME"].ToString();
                    dlg.InputType = progtype;

                    DialogResult d = dlg.ShowDialog(this);
                    if (d == DialogResult.OK)
                    {
                        SVG_LAYER temp = new SVG_LAYER();
                        temp.SUID = suid;
                        temp.svgID = symbolDoc.SvgdataUid;
                        SVG_LAYER lar = (SVG_LAYER)Services.BaseService.GetObject("SelectSVG_LAYERByKey", temp);
                        // lar.YearID = dlg.list[1].ToString();
                        lar.NAME = dlg.InputString;

                        Services.BaseService.Update<SVG_LAYER>(lar);
                        PSP_ELCPROJECT pe = new PSP_ELCPROJECT();
                        pe.ID = lar.SUID;
                        pe = Services.BaseService.GetOneByKey<PSP_ELCPROJECT>(pe);
                        if (pe != null)
                        {
                            pe.Name = dlg.InputString;
                            Services.BaseService.Update<PSP_ELCPROJECT>(pe);
                        }
                        treeList1.FocusedNode.SetValue("NAME", dlg.InputString);
                        treeList1.Refresh();
                        //InitData();
                    }
                    if (d == DialogResult.Retry)
                    {
                        if (dlg.list.Count > 1)
                        {

                            SVG_LAYER temp = new SVG_LAYER();
                            temp.SUID = suid;
                            temp.svgID = symbolDoc.SvgdataUid;
                            SVG_LAYER lar = (SVG_LAYER)Services.BaseService.GetObject("SelectSVG_LAYERByKey", temp);
                            lar.YearID = dlg.list[1].ToString();
                            Services.BaseService.Update<SVG_LAYER>(lar);
                        }
                    }
                }
                else
                {
                    MessageBox.Show("��ѡ�з�����", "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
            }
        }
        private void LayerGradeDel(object sender, EventArgs e)
        {
            if (treeList1.FocusedNode == null)
                return;
            IList list = this.SymbolDoc.getLayerList();
            foreach (Layer lay in list)
            {
                if (treeList1.FocusedNode[treeListColumn2].ToString()==lay.ID)
                {
                    return;
                }
            }
            if (treeList1.FocusedNode.Nodes.Count > 0)
            {
                MsgBox.Show("有下级目录,不能删除!");
                return;
            }
            string uid = treeList1.FocusedNode[treeListColumn2].ToString();
            SVG_LAYER lar = new SVG_LAYER();
            lar.svgID = strSvgDataUid;
            lar.YearID = " YearID='"+uid+"' ";
            IList<SVG_LAYER> list4= Services.BaseService.GetList<SVG_LAYER>("SelectSVG_LAYERByWhere", lar);
            if (list4.Count > 0)
            {
                MsgBox.Show("当前分级下有图形数据,不能删除!");
                return;
            }

            //请求确认
            if (MsgBox.ShowYesNo(Strings.SubmitDelete) != DialogResult.Yes)
            {
                return;
            }

            //执行删除操作
            try
            {
                Services.BaseService.DeleteByKey<LayerGrade>(uid);
            }
            catch (Exception exc)
            {
                Debug.Fail(exc.Message);
                HandleException.TryCatch(exc);
                return;
            }
            this.treeList1.Nodes.Remove(this.treeList1.FocusedNode);
            InitData(strSvgDataUid);
        }
Exemple #29
0
        //
        private void btEdit_Click(object sender, EventArgs e)
        {
            if (this.checkedListBox1.SelectedIndex >= 0 && this.checkedListBox1.SelectedIndex < this.checkedListBox1.Items.Count) {
                Layer layer = this.checkedListBox1.Items[this.checkedListBox1.SelectedIndex] as Layer;
                if (!CkRight(layer)) {
                    MessageBox.Show("����ͼ�㲻�ܸ�����ɾ����", "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                frmInput dlg = new frmInput();
                dlg.id = symbolDoc.SvgdataUid;
                dlg.symbolDoc = symbolDoc;
                dlg.InputString = layer.Label;
                dlg.InputType = layer.GetAttribute("layerType");

                DialogResult d = dlg.ShowDialog(this);
                if (d == DialogResult.OK) {
                    layer.Label = dlg.InputString;
                    layer.SetAttribute("layerType", dlg.InputType);
                    InitData();
                }
                if (d == DialogResult.Retry) {
                    if (dlg.list.Count > 1) {
                        layer.SetAttribute("ParentID", dlg.list[1].ToString());
                        SVG_LAYER temp = new SVG_LAYER();
                        temp.SUID = layer.ID;
                        temp.svgID = symbolDoc.SvgdataUid;
                        SVG_LAYER lar = (SVG_LAYER)Services.BaseService.GetObject("SelectSVG_LAYERByKey", temp);
                        lar.YearID = dlg.list[1].ToString();
                        Services.BaseService.Update<SVG_LAYER>(lar);
                    }
                }

            }
        }