Esempio n. 1
0
        private void FormChartWizard_Load(object sender, EventArgs e)
        {
            #region Tab Chart Type

            foreach (gvChart.gvChartType chartType in gvChart.ChartTypes)
            {
                lstChartTypes.Items.Add(chartType);
            }
            lstChartTypes.SelectedItem = 0;

            Series ser1 = new Series("Serie 1");
            ser1.Points.AddXY("A", 10);
            ser1.Points.AddXY("B", 6);
            ser1.Points.AddXY("C", 8);
            ser1.Points.AddXY("D", 12);
            ser1.Points.AddXY("E", 3);
            ser1.Color     = Color.Red;
            ser1.ChartArea = "Area1";

            Series ser2 = new Series("Serie 2");
            ser2.Points.AddXY("A", 5);
            ser2.Points.AddXY("B", 3);
            ser2.Points.AddXY("C", 7);
            ser2.Points.AddXY("D", 8);
            ser2.Points.AddXY("E", 6);
            ser2.Color     = Color.Blue;
            ser2.ChartArea = "Area1";

            _gvChart.Series.Add(ser1);
            _gvChart.Series.Add(ser2);
            _gvChart.Refresh();

            #endregion

            #region Tab Data

            ITableClass tc = (ITableClass)_layer.Class;
            foreach (IField field in _layer.Fields)
            {
                if (field.type == FieldType.biginteger ||
                    field.type == FieldType.Double ||
                    field.type == FieldType.Float ||
                    field.type == FieldType.integer ||
                    field.type == FieldType.smallinteger)
                {
                    lstSeries.Items.Add(new FieldItem()
                    {
                        Field = field
                    });
                }

                if (field.type != FieldType.binary &&
                    field.type != FieldType.GEOGRAPHY &&
                    field.type != FieldType.GEOMETRY &&
                    field.type != FieldType.Shape)
                {
                    cmbDataFields.Items.Add(new FieldItem()
                    {
                        Field = field
                    });
                }
            }
            if (cmbDataFields.Items.Count > 0)
            {
                cmbDataFields.SelectedIndex = 0;
            }

            #region Filter
            //All Features
            //Selected Features
            //Features in actual extent
            cmbFeatures.Items.Add(new ExportMethodItem("All Features", new QueryFilter()));

            if (_layer is IFeatureSelection &&
                ((IFeatureSelection)_layer).SelectionSet != null &&
                ((IFeatureSelection)_layer).SelectionSet.Count > 0)
            {
                ISelectionSet selectionSet = ((IFeatureSelection)_layer).SelectionSet;
                IQueryFilter  selFilter    = null;
                if (selectionSet is IIDSelectionSet)
                {
                    selFilter = new RowIDFilter(tc.IDFieldName, ((IIDSelectionSet)selectionSet).IDs);
                }
                else if (selectionSet is IGlobalIDSelectionSet)
                {
                    selFilter = new GlobalRowIDFilter(tc.IDFieldName, ((IGlobalIDSelectionSet)selectionSet).IDs);
                }
                else if (selectionSet is IQueryFilteredSelectionSet)
                {
                    selFilter = ((IQueryFilteredSelectionSet)selectionSet).QueryFilter.Clone() as IQueryFilter;
                }

                if (selFilter != null)
                {
                    selFilter.SubFields = "*";
                    ExportMethodItem item = new ExportMethodItem("Selected Features", selFilter);
                    cmbFeatures.Items.Add(item);
                    cmbFeatures.SelectedItem = item;
                }
            }

            if (_display != null && _display.Envelope != null)
            {
                SpatialFilter dispFilter = new SpatialFilter();
                dispFilter.SubFields = "*";

                dispFilter.FilterSpatialReference = _display.SpatialReference;
                dispFilter.Geometry        = _display.Envelope;
                dispFilter.SpatialRelation = spatialRelation.SpatialRelationIntersects;

                cmbFeatures.Items.Add(new ExportMethodItem("Features in actual extent", dispFilter));
            }

            if (cmbFeatures.SelectedIndex == -1)
            {
                cmbFeatures.SelectedIndex = 0;
            }
            #endregion

            #endregion
        }
Esempio n. 2
0
        public ExportFeatureClassDialog(IDisplay display, IFeatureLayer sourceFeatureLayer)
        {
            InitializeComponent();

            _sourceFeatureClass = sourceFeatureLayer.Class as IFeatureClass;

            #region Filter
            //All Features
            //Selected Features
            //Features in actual extent
            cmbExport.Items.Add(new ExportMethodItem("All Features", null));

            if (sourceFeatureLayer is IFeatureSelection &&
                ((IFeatureSelection)sourceFeatureLayer).SelectionSet != null &&
                ((IFeatureSelection)sourceFeatureLayer).SelectionSet.Count > 0)
            {
                ISelectionSet selectionSet = ((IFeatureSelection)sourceFeatureLayer).SelectionSet;
                IQueryFilter  selFilter    = null;
                if (selectionSet is IIDSelectionSet)
                {
                    selFilter = new RowIDFilter(_sourceFeatureClass.IDFieldName, ((IIDSelectionSet)selectionSet).IDs);
                }
                else if (selectionSet is IGlobalIDSelectionSet)
                {
                    selFilter = new GlobalRowIDFilter(_sourceFeatureClass.IDFieldName, ((IGlobalIDSelectionSet)selectionSet).IDs);
                }
                else if (selectionSet is IQueryFilteredSelectionSet)
                {
                    selFilter = ((IQueryFilteredSelectionSet)selectionSet).QueryFilter.Clone() as IQueryFilter;
                }

                if (selFilter != null)
                {
                    selFilter.SubFields = "*";
                    ExportMethodItem item = new ExportMethodItem("Selected Features", selFilter);
                    cmbExport.Items.Add(item);
                    cmbExport.SelectedItem = item;
                }
            }

            if (display != null && display.Envelope != null)
            {
                SpatialFilter dispFilter = new SpatialFilter();
                dispFilter.SubFields = "*";

                dispFilter.FilterSpatialReference = display.SpatialReference;
                dispFilter.Geometry        = display.Envelope;
                dispFilter.SpatialRelation = spatialRelation.SpatialRelationIntersects;

                cmbExport.Items.Add(new ExportMethodItem("Features in actual extent", dispFilter));
            }

            if (cmbExport.SelectedIndex == -1)
            {
                cmbExport.SelectedIndex = 0;
            }
            #endregion

            _listViewItem       = new FeatureClassListViewItem(_sourceFeatureClass, 255);
            gvFields.DataSource = _listViewItem.Fields;

            panelStep1.Dock = panelStep2.Dock = DockStyle.Fill;
            SetPanelVisibity();
        }
Esempio n. 3
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            ExportMethodItem filterItem = (ExportMethodItem)cmbFeatures.SelectedItem;
            IQueryFilter     filter     = filterItem.QueryFilter;

            filter.SubFields = String.Empty;

            DataTable tab       = new DataTable();
            IField    dataField = ((FieldItem)cmbDataFields.SelectedItem).Field;

            filter.AddField(dataField.name);
            tab.Columns.Add(new DataFieldColumn(dataField.name));

            Fields seriesFields = new Fields();

            foreach (SymbolsListView.SymbolListViewItem item in seriesListView.Items)
            {
                seriesFields.Add(((ITableClass)_layer.Class).Fields.FindField(item.Text));
                filter.AddField(item.Text);

                IBrushColor brushColor = item.Symbol as IBrushColor;
                Color       col        = brushColor != null ? brushColor.FillColor : Color.Red;

                tab.Columns.Add(new SeriesDataColumn(item.Text)
                {
                    Color = col, SeriesName = item.SubItems[1].Text
                });
            }

            using (ICursor cursor = ((ITableClass)_layer.Class).Search(filterItem.QueryFilter))
            {
                IRow row = null;
                while ((row = NextRow(cursor)) != null)
                {
                    object dataValue = row[dataField.name];
                    if (dataValue == System.DBNull.Value)
                    {
                        continue;
                    }

                    DataRow dataRow = GetDataRow(tab, dataValue);
                    for (int i = 1, to = tab.Columns.Count; i < to; i++)
                    {
                        double val = Convert.ToDouble((row[tab.Columns[i].ColumnName] == System.DBNull.Value ? 0D : row[tab.Columns[i].ColumnName]));
                        dataRow[tab.Columns[i].ColumnName] = Convert.ToDouble(dataRow[tab.Columns[i].ColumnName]) + val;
                    }
                }
            }

            DataFieldColumn         dataCol = this.DataFieldCol(tab);
            List <SeriesDataColumn> serCols = this.SeriesColumns(tab);

            if (tab != null && tab.Rows.Count > 0 && dataCol != null && serCols != null)
            {
                Series[] ser = new Series[serCols.Count];
                for (int i = 0; i < ser.Length; i++)
                {
                    ser[i]       = new Series(serCols[i].SeriesName);
                    ser[i].Color = serCols[i].Color;
                }

                foreach (DataRow row in tab.Rows)
                {
                    for (int i = 0; i < ser.Length; i++)
                    {
                        ser[i].Points.AddXY(row[dataCol.ColumnName], row[serCols[i].ColumnName]);
                    }
                }

                for (int i = 0; i < ser.Length; i++)
                {
                    _series.Add(ser[i]);
                }
            }
        }