Newer
Older
GHFX_REFACTOR / FrmThreeOracle.cs
wxn on 9 Nov 2016 3 KB 冗余代码整理
using System;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using GeoScene.Engine;
using GeoScene.Globe;

namespace Cyberpipe
{
    public partial class FrmThreeOracle : Office2007Form
    {

        public static GSODataSource dsdes;
        string sourIp, sourDb, sourUser, sourPwd;
        GSOGlobeControl globeControl;
        public GSOLayer rukuLayer;

        public FrmThreeOracle(GSOGlobeControl _globeControl)
        {
            InitializeComponent();
            globeControl = _globeControl;
        }

        private void FrmThreeOracle_Load(object sender, EventArgs e)
        {
            comboBox1.Items.Add("施工数据");
            comboBox1.Items.Add("规划数据");

        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string db = comboBox1.Text;
            listBox1.Items.Clear();
            if (db == "施工数据")
            {
                sourIp = Utility.sgdbip;
                sourDb = Utility.sgdbname;
                sourUser = Utility.sgdbuser;
                sourPwd = Utility.sgdbpwd;
            }
            else {
                sourIp = Utility.ghdbip;
                sourDb = Utility.ghdbname;
                sourUser = Utility.ghdbuser;
                sourPwd = Utility.ghdbpwd;
            }

            dsdes = globeControl.Globe.DataManager.OpenOracleDataSource(sourIp + "/" + sourDb, "", "", sourUser, sourPwd);
            if (dsdes == null)
            {
                MessageBox.Show("数据库连接失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            for (int i = 0; i < dsdes.DatasetCount; i++)
            {
                GSODataset dataset = dsdes.GetDatasetAt(i);

                if (dataset.Name.ToLower().Contains("network"))
                {
                    continue;
                }
                //if (!dataset.Name.ToLower().EndsWith("管线") && !dataset.Name.ToLower().EndsWith("附属物") && !dataset.Name.ToLower().EndsWith("管点"))

                //if(!dataset.Name.ToString().Contains("管线"))
                if (dataset.Name.Contains("SH"))
                {
                    continue;
                }
                listBox1.Items.Add(dataset.Name);
            }

        }

        private void buttonXOK_Click(object sender, EventArgs e)
        {
            if (listBox1.SelectedItems.Count == 0)
            {
                MessageBox.Show("请选择要查看的数据!", "提示");
                return;
            }
            for (int i = 0; i < listBox1.SelectedItems.Count; i++)
            {

                GSODataset dt = dsdes.GetDatasetByName(listBox1.SelectedItems[i].ToString());
                GSOFeatureDataset ly = dt as GSOFeatureDataset;

                //if (ly != null)
                //{
                //    globeControl.Globe.Layers.Remove(ly);
                //}
                ly.Caption = ly.Name;
                GSOLayer layerRuku = globeControl.Globe.Layers.Add(ly);
                rukuLayer = layerRuku;
                //重新调整模型位置,这样可以保证新入库的管线也能通过调节透明度隐现 
                globeControl.Globe.Layers.MoveTo(0, globeControl.Globe.Layers.Count - 1);
                globeControl.Globe.Refresh();

                    
            }

            DialogResult = DialogResult.OK;
        }


    }
}