Ejemplo n.º 1
0
        private void chartControl1_ObjectHotTracked(object sender, DevExpress.XtraCharts.HotTrackEventArgs e)
        {
            SeriesPoint point = e.AdditionalObject as SeriesPoint;

            if (point != null)
            {
                PivotChartDataSourceRowItem coord = point.Tag as PivotChartDataSourceRowItem;

                ChartControl           chart  = (ChartControl)sender;
                PivotGridControl       pivot  = (PivotGridControl)chart.DataSource;
                PivotCellEventArgs     info   = pivot.Cells.GetCellInfo(coord.CellX, coord.CellY);
                PivotSummaryDataSource source = info.CreateSummaryDataSource();
                string s = string.Empty;
                for (int i = 0; i < source.RowCount; i++)
                {
                    s += "Country = " + source.GetValue(i, 0).ToString() +
                         "\r\tYear = " + source.GetValue(i, 1).ToString() +
                         "\r\tExtended Price = " + source.GetValue(i, 2).ToString() + "\r\n";
                }
                toolTipController1.ShowHint(s);
            }
            else
            {
                toolTipController1.HideHint();
            }
        }
Ejemplo n.º 2
0
        // Returns a list of summary values against which
        // a Custom Total will be calculated.
        private ArrayList GetSummaryValues(PivotCellValueEventArgs e)
        {
            ArrayList values = new ArrayList();

            // Creates a summary data source.
            PivotSummaryDataSource sds = e.CreateSummaryDataSource();

            // Iterates through summary data source records
            // and copies summary values to an array.
            for (int i = 0; i < sds.RowCount; i++)
            {
                object value = sds.GetValue(i, e.DataField);
                if (value == null)
                {
                    continue;
                }
                values.Add(value);
            }

            // Sorts summary values.
            values.Sort();

            // Returns the summary values array.
            return(values);
        }
    protected void ASPxPivotGrid1_CustomCellValue(object sender, DevExpress.Web.ASPxPivotGrid.PivotCellValueEventArgs e)
    {
        if (ReferenceEquals(e.RowCustomTotal, null))
        {
            return;
        }

        if (e.RowCustomTotal.SummaryType == DevExpress.Data.PivotGrid.PivotSummaryType.Sum)
        {
            PivotSummaryDataSource ds = e.CreateSummaryDataSource();
            decimal customSum         = 0;
            for (int i = 0; i < ds.RowCount; i++)
            {
                customSum += Convert.ToDecimal(ds.GetValue(i, e.DataField));
            }
            e.Value = customSum;
        }
        else if (e.RowCustomTotal.SummaryType == DevExpress.Data.PivotGrid.PivotSummaryType.Average)
        {
            PivotSummaryDataSource ds = e.CreateSummaryDataSource();
            if (ds.RowCount == 0)
            {
                return;
            }
            decimal customAverage = 0;
            for (int i = 0; i < ds.RowCount; i++)
            {
                customAverage += Convert.ToDecimal(ds.GetValue(i, e.DataField));
            }
            e.Value = customAverage / ds.RowCount;
        }
    }
        void CalculateSalesPerProduct()
        {
            Dictionary <string, decimal> sales = new Dictionary <string, decimal>();
            PivotSummaryDataSource       ds    = pivotGridControl1.CreateSummaryDataSource();

            for (int i = 0; i < ds.RowCount; i++)
            {
                string  product = (string)ds.GetValue(i, fieldProduct);
                decimal sale    = (decimal)ds.GetValue(i, fieldRank);
                if (sales.ContainsKey(product))
                {
                    sales[product] += sale;
                }
                else
                {
                    sales.Add(product, sale);
                }
            }
            totalSales = new List <decimal>(sales.Count);
            foreach (decimal value in sales.Values)
            {
                totalSales.Add(value);
            }
            totalSales.Sort(ReverseDecimalSort);
        }
        private void simpleButton1_Click(object sender, System.EventArgs e)
        {
            Form2        form2 = new Form2();
            ChartControl chart = form2.chartControl1;

            PivotSummaryDataSource ds = pivotGridControl1.CreateSummaryDataSource();

            // Set the chart's datasource.
            chart.DataSource = ds;

            // Every month will be represented as a single series in the chart.
            chart.SeriesDataMember = "orderDate_Month";

            // Every product will be a series point argument.
            chart.SeriesTemplate.ArgumentDataMember = "productName";

            // Sum of products sold for this month will be a series point value.
            chart.SeriesTemplate.ValueDataMembers.AddRange(new string[] { "quantity_Sum" });

            // Filter chart's datasource by category and year.
            chart.SeriesTemplate.FilterString = string.Format("[categoryName] = '{0}' And [orderDate_Year] = {1}", category, year);
            chart.SeriesSorting = SortingMode.Ascending;

            // Get the X-Axis of a Chart and adjust its labels.
            Axis xAxis = ((XYDiagram)chart.Diagram).AxisX;

            xAxis.Label.Angle = 45;
            xAxis.Label.EnableAntialiasing = DevExpress.Utils.DefaultBoolean.True;

            // Show the form.
            form2.Text = form2.Text.Replace("Category", category);
            form2.Text = form2.Text.Replace("Year", year.ToString());
            form2.Show();
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 포커스가 가 있는 그리드의 정보를 데이터 테이블로 변환한다.
        /// </summary>
        /// <param name="pGrid">그리드.</param>
        /// <returns>리턴값</returns>
        public static DataTable GetPivotFocusedCellInfo(PivotGridControl pGrid, DataReturnType type)
        {
            try
            {
                DataTable table = new DataTable();

                if (type == DataReturnType.FocusedCell)
                {
                    PivotSummaryDataSource dataSource = pGrid.Cells.GetFocusedCellInfo().CreateSummaryDataSource() as PivotSummaryDataSource;
                    ITypedList             list       = dataSource as ITypedList;
                    foreach (PropertyDescriptor property in list.GetItemProperties(null))
                    {
                        table.Columns.Add(property.Name, property.PropertyType);
                    }

                    for (int rowIndex = 0; rowIndex < dataSource.RowCount; rowIndex++)
                    {
                        object[] values = new object[table.Columns.Count];
                        for (int columnIndex = 0; columnIndex < table.Columns.Count; columnIndex++)
                        {
                            values[columnIndex] = dataSource.GetValue(rowIndex, /*rowIndex*/ columnIndex);
                        }
                        table.Rows.Add(values);
                    }
                }
                else if (type == DataReturnType.All)
                {
                    PivotSummaryDataSource dataSourceAll = pGrid.CreateSummaryDataSource() as PivotSummaryDataSource;
                    ITypedList             listAll       = dataSourceAll as ITypedList;
                    foreach (PropertyDescriptor property in listAll.GetItemProperties(null))
                    {
                        table.Columns.Add(property.Name, property.PropertyType);
                    }
                    for (int rowIndex = 0; rowIndex < dataSourceAll.RowCount; rowIndex++)
                    {
                        object[] values = new object[table.Columns.Count];
                        for (int columnIndex = 0; columnIndex < table.Columns.Count; columnIndex++)
                        {
                            values[columnIndex] = dataSourceAll.GetValue(rowIndex, /*rowIndex*/ columnIndex);
                        }
                        table.Rows.Add(values);
                    }
                }


                return(table);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 7
0
        DataTable CreateIntermediateData(PivotGridControl pivotgridControl)
        {
            PivotSummaryDataSource summaryDataSource = pivotGridControl1.CreateSummaryDataSource();

            DataTable intermediateDS = new DataTable();

            intermediateDS.Columns.Add("Argument", typeof(string));
            intermediateDS.Columns.Add("Series", typeof(string));
            intermediateDS.Columns.Add("Value", typeof(decimal));

            foreach (PivotSummaryDataRow record in summaryDataSource)
            {
                DataRow row = intermediateDS.NewRow();
                if (pivotGridControl1.OptionsChartDataSource.ProvideDataByColumns)
                {
                    List <string> rowValues = new List <string>();
                    foreach (PivotGridField rowField in pivotGridControl1.GetFieldsByArea(PivotArea.RowArea))
                    {
                        rowValues.Add(record[rowField].ToString());
                    }
                    row["Series"] = string.Join("|", rowValues);

                    List <string> columnValues = new List <string>();
                    foreach (PivotGridField columnField in pivotGridControl1.GetFieldsByArea(PivotArea.ColumnArea))
                    {
                        columnValues.Add(record[columnField].ToString());
                    }
                    row["Argument"] = string.Join("|", columnValues);
                }
                else
                {
                    List <string> columnValues = new List <string>();
                    foreach (PivotGridField columnField in pivotGridControl1.GetFieldsByArea(PivotArea.ColumnArea))
                    {
                        columnValues.Add(record[columnField].ToString());
                    }
                    row["Series"] = string.Join("|", columnValues);
                    List <string> rowValues = new List <string>();
                    foreach (PivotGridField rowField in pivotGridControl1.GetFieldsByArea(PivotArea.RowArea))
                    {
                        rowValues.Add(record[rowField].ToString());
                    }
                    row["Argument"] = string.Join("|", rowValues);
                }
                row["Value"] = (decimal)record[pivotGridControl1.GetFieldByArea(PivotArea.DataArea, 0)];
                intermediateDS.Rows.Add(row);
            }
            return(intermediateDS);
        }
    private DataTable CreateSummaryTable(ASPxPivotGrid pivotGrid, PivotGridField sourceField, PivotGridField targetField, PivotGridField valueField, object sourceFieldValue)
    {
        PivotSummaryDataSource ds = ASPxPivotGrid1.CreateSummaryDataSource();
        DataTable dt = new DataTable();

        dt.Columns.Add("SourceField", typeof(string));
        dt.Columns.Add("TargetField", typeof(string));
        dt.Columns.Add("Value", typeof(decimal));
        for (int i = 0; i < ds.RowCount; i++)
        {
            if (ds.GetValue(i, sourceField) == sourceFieldValue)
            {
                dt.Rows.Add(new object[] { ds.GetValue(i, sourceField), ds.GetValue(i, targetField), ds.GetValue(i, valueField) });
            }
        }
        return(dt);
    }
        private DataTable ConvertPivotSummaryDataSourceToDataTable(PivotSummaryDataSource source)
        {
            DataTable dt = new DataTable();

            foreach (PropertyDescriptor _propertyDescriptor in source.GetItemProperties(null))
            {
                dt.Columns.Add(_propertyDescriptor.Name, _propertyDescriptor.PropertyType);
            }
            for (int r = 0; r < source.RowCount; r++)
            {
                object[] rowValues = new object[dt.Columns.Count];
                for (int c = 0; c < dt.Columns.Count; c++)
                {
                    rowValues[c] = source.GetValue(r, dt.Columns[c].ColumnName);
                }
                dt.Rows.Add(rowValues);
            }
            return(dt);
        }
        void CalculateSalesPerYear()
        {
            salesPerYear = new Dictionary <int, List <decimal> >();
            PivotSummaryDataSource ds = pivotGridControl1.CreateSummaryDataSource();

            for (int i = 0; i < ds.RowCount; i++)
            {
                int            year = (int)ds.GetValue(i, fieldYear);
                List <decimal> list;
                if (!salesPerYear.TryGetValue(year, out list))
                {
                    list = new List <decimal>();
                    salesPerYear.Add(year, list);
                }
                list.Add((decimal)ds.GetValue(i, fieldRank));
            }
            foreach (List <decimal> list in salesPerYear.Values)
            {
                list.Sort(ReverseDecimalSort);
            }
        }
Ejemplo n.º 11
0
        public static DataTable ConvertSummaryDataSourceToDataTable(PivotSummaryDataSource source)
        {
            DataTable  result         = new DataTable();
            ITypedList dataProperties = source as ITypedList;

            if (dataProperties == null)
            {
                return(result);
            }
            foreach (PropertyDescriptor prop in dataProperties.GetItemProperties(null))
            {
                result.Columns.Add(prop.Name, prop.PropertyType);
            }
            for (int row = 0; row < source.RowCount; row++)
            {
                List <object> values = new List <object>();
                foreach (DataColumn col in result.Columns)
                {
                    values.Add(source.GetValue(row, col.ColumnName));
                }
                result.Rows.Add(values.ToArray());
            }
            return(result);
        }