Newer
Older
EMS_SZ / FrmMDDictory.cs
root on 21 Mar 2016 15 KB first
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using System.Xml;
using System.Data.SqlClient; 
using System.IO;

namespace Cyberpipe
{
    public partial class FrmMDDictory : Office2007Form
    {
        string filename = Utility.filename;
        List<string> pipelineLayerNames = new List<string>();//线图层名称
        List<string> workwellLayerNames = new List<string>();//工井图层名称
        List<string> valueLayerNames = new List<string>();//阀门图层名称
        List<string> instrumenLayerNames = new List<string>();//附属物图层名称

        private static SqlConnection conn = null;
        private static SqlCommand sqlCmd = null;
        private static SqlDataReader sqlReader = null;
        public static string layernamePub;

        public FrmMDDictory()
        {
            InitializeComponent();

            //初始化树
            loadTreeView(layerTree);
        }
        private void layerTree_AfterSelect(object sender, TreeViewEventArgs e)
        {
            String layername = this.layerTree.SelectedNode.Text;
            layernamePub = layername;
            if (this.layerTree.SelectedNode.GetNodeCount(true) == 0)
            {
                searchLayerDicInfo(layername);
                 
            }
            else
            {

            } 
        }
        private void searchLayerDicInfo(string layername)
        {
            string strSql = "select COLUMN_NAME 字段名, DATA_TYPE 类型编号, DATA_LENGTH 长度 from "
                + " user_tab_columns where TABLE_NAME='" + layername+"'";
             
            DataTable table = OledbHelper.QueryTable(strSql);
            dataGridViewX1.DataSource = table;                                                             
             
        }

        private void loadTreeView(TreeView tv)//构建图层树
        {
            try
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(filename);
                XmlNodeList Params1 = doc.SelectNodes("/Params/layers");
                //tv.ShowPlusMinus = false;

                //tv.Nodes.Clear();
                tv.ShowLines = true;
                // tv.ImageList = imageList1;
                tv.CheckBoxes = false;
                 

                foreach (XmlNode paramsNode in Params1) //layers
                {
                    foreach (XmlNode layerNode in paramsNode) //layer
                    {
                        TreeNode nodelayer = new TreeNode();
                        string layerName = layerNode.Attributes["label"].Value;
                        nodelayer.Text = layerName;

                        if (layerNode.HasChildNodes != false)
                        {
                            tv.Nodes.Add(nodelayer);
                            foreach (XmlNode layerchildNode in layerNode) //layerchild
                            {
                                if (layerchildNode.Name == "layerchild")
                                {
                                    TreeNode nodelayerchild = new TreeNode();
                                    string layerType = layerchildNode.Attributes["type"].Value;
                                    string layerchildName = layerchildNode.Attributes["label"].Value;
                                    if (layerType == "locaserver")
                                    {
                                        //string layerName1 = layerchildNode.Attributes["layer"].Value;
                                        //nodelayerchild.Text = layerchildName;
                                        //nodelayerchild.Tag = layerType + "|" + layerName1;
                                        //nodelayerchild.Checked = true;
                                        //nodelayer.Nodes.Add(nodelayerchild);

                                    }
                                    else
                                    {
                                        string layerName1 = layerchildNode.Attributes["layer"].Value;
                                        if (layerchildNode.Attributes["isPipeLine"] != null)
                                        {
                                            pipelineLayerNames.Add(layerName1);
                                        }
                                        if (layerchildNode.Attributes["isWorkWell"] != null)
                                        {
                                            workwellLayerNames.Add(layerName1);
                                        }
                                        if (layerchildNode.Attributes["isValve"] != null)
                                        {
                                            valueLayerNames.Add(layerName1);
                                        }
                                        if (layerchildNode.Attributes["isInstrument"] != null)
                                        {
                                            instrumenLayerNames.Add(layerName1);
                                        }
                                        //bool boollayer = AddLayers(layerName1, "");
                                        nodelayerchild.Text = layerchildName;
                                        nodelayerchild.Tag = layerType + "|" + layerName1;
                                        //nodelayerchild.Checked = boollayer;
                                        nodelayer.Nodes.Add(nodelayerchild);
                                    }
                                }
                                else if (layerchildNode.Name == "layertype")
                                {
                                    TreeNode nodelayerchild = new TreeNode();
                                    string layerType = layerchildNode.Attributes["label"].Value;
                                    nodelayerchild.Text = layerType;
                                    nodelayerchild.Tag = layerType;
                                    nodelayerchild.Checked = true;
                                    nodelayer.Nodes.Add(nodelayerchild);
                                    if (layerchildNode.HasChildNodes == true)
                                    {
                                        foreach (XmlNode childNodeLayer in layerchildNode)
                                        {
                                            if (childNodeLayer.HasChildNodes == true)
                                            {
                                                TreeNode nodelayerchild2 = new TreeNode();
                                                string layer = childNodeLayer.Attributes["label"].Value;
                                                nodelayerchild2.Text = layer;
                                                nodelayerchild2.Tag = layer;
                                                nodelayerchild2.Checked = true;
                                                nodelayerchild.Nodes.Add(nodelayerchild2);
                                                foreach (XmlNode n in childNodeLayer)
                                                {
                                                    TreeNode nodelayerchild1 = new TreeNode();
                                                    string layerName1 = n.Attributes["layer"].Value;
                                                    string layerchildName = n.Attributes["label"].Value;
                                                    string layerType1 = n.Attributes["type"].Value;
                                                    if (n.Attributes["isPipeLine"] != null)
                                                    {
                                                        pipelineLayerNames.Add(layerName1);
                                                    }
                                                    if (n.Attributes["isWorkWell"] != null)
                                                    {
                                                        workwellLayerNames.Add(layerName1);
                                                    }
                                                    if (n.Attributes["isValve"] != null)
                                                    {
                                                        valueLayerNames.Add(layerName1);
                                                    }
                                                    if (n.Attributes["isInstrument"] != null)
                                                    {
                                                        instrumenLayerNames.Add(layerName1);
                                                    }
                                                    //bool boollayer = AddLayers(layerName1, "");
                                                    nodelayerchild1.Text = layerchildName;
                                                    nodelayerchild1.Tag = layerType1 + "|" + layerName1;
                                                    //nodelayerchild1.Checked = boollayer;
                                                    nodelayerchild2.Nodes.Add(nodelayerchild1);

                                                }
                                            }
                                            else
                                            {
                                                TreeNode nodelayerchild1 = new TreeNode();
                                                string layerName1 = childNodeLayer.Attributes["layer"].Value;
                                                string layerchildName = childNodeLayer.Attributes["label"].Value;
                                                string layerType1 = childNodeLayer.Attributes["type"].Value;
                                                if (childNodeLayer.Attributes["isPipeLine"] != null)
                                                {
                                                    pipelineLayerNames.Add(layerName1);
                                                }
                                                if (childNodeLayer.Attributes["isWorkWell"] != null)
                                                {
                                                    workwellLayerNames.Add(layerName1);
                                                }
                                                if (childNodeLayer.Attributes["isValve"] != null)
                                                {
                                                    valueLayerNames.Add(layerName1);
                                                }
                                                if (childNodeLayer.Attributes["isInstrument"] != null)
                                                {
                                                    instrumenLayerNames.Add(layerName1);
                                                }
                                                //bool boollayer = AddLayers(layerName1, "");
                                                nodelayerchild1.Text = layerchildName;
                                                nodelayerchild1.Tag = layerType1 + "|" + layerName1;
                                                //nodelayerchild1.Checked = boollayer;
                                                nodelayerchild.Nodes.Add(nodelayerchild1);

                                            }
                                        }
                                    }
                                }

                            }
                        }
                        else
                        {
                            tv.Nodes.Add(nodelayer);
                        }
                    }

                }
                if (tv.Nodes.Count > 0)
                {
                    //tv.Nodes[0].Expand();
                    if (tv.Nodes.Count > 0)
                    {
                        foreach (TreeNode node in tv.Nodes)
                        {
                            //node.Expand();
                        }
                    }
                }
                //tv.ExpandAll();

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        } 

        //导出结果
        private void buttonX1_Click(object sender, EventArgs e)
        {
            if (dataGridViewX1.Rows.Count > 0)
            {
                SaveFileDialog dlg = new SaveFileDialog();
                dlg.Filter = "Excel files (*.xls)|*.xls";
                dlg.FilterIndex = 0;
                dlg.RestoreDirectory = true;
                //dlg.CreatePrompt = true;
                dlg.Title = "保存为Excel文件";
                dlg.FileName = layernamePub + "图层-" + DateTime.Now.ToString("yyyyMMdd") + ".xls";
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    Stream myStream;
                    myStream = dlg.OpenFile();
                    StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));
                    string columnTitle = "";
                    try
                    {
                        sw.WriteLine("内容:操作日志;日期:" + DateTime.Now.ToString("yyyy-MM-dd"));

                        //写入列标题   
                        for (int i = 0; i < dataGridViewX1.ColumnCount; i++)
                        {
                            if (i > 0)
                            {
                                columnTitle += "\t";
                            }
                            columnTitle += dataGridViewX1.Columns[i].HeaderText;
                        }
                        sw.WriteLine(columnTitle);

                        //写入列内容   
                        for (int j = 0; j < dataGridViewX1.Rows.Count; j++)
                        {
                            string columnValue = "";
                            for (int k = 0; k < dataGridViewX1.Columns.Count; k++)
                            {
                                if (k > 0)
                                {
                                    columnValue += "\t";
                                }
                                if (dataGridViewX1.Rows[j].Cells[k].Value == null)
                                    columnValue += "";
                                else
                                    columnValue += dataGridViewX1.Rows[j].Cells[k].Value.ToString().Trim();
                            }

                            sw.WriteLine(columnValue);
                        }
                        sw.Close();
                        myStream.Close();
                        if (MessageBox.Show("导出Excel文件成功!是否打开?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            System.Diagnostics.Process.Start(dlg.FileName);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                    finally
                    {
                        sw.Close();
                        myStream.Close();
                    }
                }
            }
        } 
   
 
    
    }
}