Ejemplo n.º 1
0
        private void frm_ThongKe_Load(object sender, EventArgs e)
        {
            Series series = new Series("Thống kê chi", ViewType.Pie);

            //DataTable dt = new DataTable();
            //dt = pHIEU_CHITableAdapter1.GetData();


            dataTable2DataGridView.DataSource = dataTable2TableAdapter.GetData(LogIn.GetUserName.userNAME);

            foreach (DataGridViewRow row in dataTable2DataGridView.Rows)
            {
                try
                {
                    series.Points.Add(new SeriesPoint(row.Cells[0].Value.ToString(), double.Parse(row.Cells[2].Value.ToString())));
                }
                catch (Exception ex)
                { }
            }


            chartControl1.Series.Add(series);

            series.Label.TextPattern = "{A}: {VP:p0}";

            ((PieSeriesLabel)series.Label).Position = PieSeriesLabelPosition.TwoColumns;

            ((PieSeriesLabel)series.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;

            PieSeriesView view = (PieSeriesView)series.View;

            //chartControl1.Dock = DockStyle.Fill;
            this.Controls.Add(chartControl1);
        }
Ejemplo n.º 2
0
 private void cmbChooseChart_SelectedIndexChanged(object sender, EventArgs e)
 {
     switch (cmbChooseChart.SelectedIndex)
     {
         case 0:
             {
                 var shape = new SideBySideBarSeriesView();
                 ccTaskStatisticalFigure.Series[0].View = shape;
             } break;
         case 1:
             {
                 var shape = new PieSeriesView();
                 var label = ccTaskStatisticalFigure.Series[0].Label;
                 var pointOptions = label.PointOptions;
                 pointOptions.PointView = PointView.ArgumentAndValues;
                 pointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
                 ccTaskStatisticalFigure.Series[0].View = shape;
             } break;
         case 2:
             {
                 var shape = new LineSeriesView();
                 ccTaskStatisticalFigure.Series[0].View = shape;
             } break;
         case 3:
             {
                 var shape = new AreaSeriesView();
                 shape.Transparency = (byte)135;
                 ccTaskStatisticalFigure.Series[0].View = shape;
             } break;
     }
 }
Ejemplo n.º 3
0
        private void cmbChooseChart_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (cmbChooseChart.SelectedIndex)
            {
            case 0:
            {
                var shape = new SideBySideBarSeriesView();
                ccTaskStatisticalFigure.Series[0].View = shape;
            } break;

            case 1:
            {
                var shape        = new PieSeriesView();
                var label        = ccTaskStatisticalFigure.Series[0].Label;
                var pointOptions = label.PointOptions;
                pointOptions.PointView = PointView.ArgumentAndValues;
                pointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
                ccTaskStatisticalFigure.Series[0].View  = shape;
            } break;

            case 2:
            {
                var shape = new LineSeriesView();
                ccTaskStatisticalFigure.Series[0].View = shape;
            } break;

            case 3:
            {
                var shape = new AreaSeriesView();
                shape.Transparency = (byte)135;
                ccTaskStatisticalFigure.Series[0].View = shape;
            } break;
            }
        }
Ejemplo n.º 4
0
 private static void OnPieCheckedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
 {
     if ((bool)e.NewValue)
     {
         PieDonutSeriesViewModule module = (PieDonutSeriesViewModule)d;
         module.UpdateSeriesView((series) => {
             SeriesLabelOptions seriesLabelOptions = new SeriesLabelOptions()
             {
                 Indent = 10, FontSize = 12, Pattern = LabelPattern
             };
             PieSeriesView.SetLabelPosition(seriesLabelOptions, PieLabelPosition.TwoColumns);
             string toolTipPattern = series.DisplayName == "Total" ? ToolTipPointPatternForPieDoughnutTotal : ToolTipPointPatternForPieDoughnutPerCapita;
             return(new PieSeriesView()
             {
                 ShowLabels = true,
                 LegendPointPattern = LegendPointPattern,
                 ToolTipPointPattern = toolTipPattern,
                 LabelOptions = seriesLabelOptions,
                 Title = new SeriesTitle()
                 {
                     Content = series.DisplayName,
                     FontSize = 20
                 }
             });
         });
         module.SetLegendHorizontal();
     }
 }
Ejemplo n.º 5
0
        private void ResetChart()
        {
            chartCompPrecio.Series.Clear();

            // Create a pie series.
            Series series1 = new Series("Incidencia de Costos (Ingrediente Vs Costo)", ViewType.Pie);

            // Populate the series with points.
            series1.Points.AddRange(_rec.GetChartPoints());

            // Format the the series labels.
            series1.Label.TextPattern = "{A}: {VP:p0}";
            series1.ShowInLegend      = false;

            // Add the series to the chart.
            chartCompPrecio.Series.Add(series1);

            // Adjust the position of series labels.
            //((PieSeriesLabel)series1.Label).Position = PieSeriesLabelPosition.TwoColumns;

            // Detect overlapping of series labels.
            ((PieSeriesLabel)series1.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;

            // Access the view-type-specific options of the series.
            PieSeriesView myView = (PieSeriesView)series1.View;

            // Show a title for the series.
            myView.Titles.Add(new SeriesTitle());
            myView.Titles[0].Text = series1.Name;
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 绘制饼状图
        /// </summary>
        /// <param name="bindingTable"></param>
        public void DrawPie(DataTable bindingTable)
        {
            Series series = new Series("Series1", ViewType.Pie);

            chart.Series.Add(series);

            series.DataSource = bindingTable;

            series.ArgumentScaleType  = ScaleType.Auto;
            series.ArgumentDataMember = "Argument";
            series.ValueScaleType     = ScaleType.Numerical;
            series.ValueDataMembers.AddRange(new string[] { "Value" });

            chart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;

            //series.Label.TextPattern = "{A}: {VP:p0}";无法设置

            // 调整标签位置
            ((PieSeriesLabel)series.Label).Position = PieSeriesLabelPosition.TwoColumns;

            PieSeriesView myView = (PieSeriesView)series.View;

            myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Value_1,
                                                                   DataFilterCondition.GreaterThanOrEqual, 9));
            myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Argument,
                                                                   DataFilterCondition.NotEqual, "Others"));
            myView.ExplodeMode = PieExplodeMode.UseFilters;
            myView.ExplodedDistancePercentage = 30;
            myView.RuntimeExploding           = true;
            myView.HeightToWidthRatio         = 0.75;
        }
Ejemplo n.º 7
0
 private void inventoryChart_ObjectSelected(object sender, DevExpress.XtraCharts.HotTrackEventArgs e)
 {
     if (e.HitInfo.InSeries && e.AdditionalObject is SeriesPoint)
     {
         SeriesPoint currentPoint = (SeriesPoint)e.AdditionalObject;
         if (currentPoint.Tag.GetType() == typeof(InventoryChart.BO.CategoryItem))
         {
             InventoryChart.BO.CategoryItem currentCategory = (InventoryChart.BO.CategoryItem)currentPoint.Tag;
             int        categoryID            = currentCategory.CategoryID;
             DataFilter currentCategoryFilter = new DataFilter("ProductItems.CategoryID", "System.Int32", DataFilterCondition.Equal, categoryID);
             this.inventoryChart.Series["ProductUnits"].DataFilters.Clear();
             this.inventoryChart.Series["ProductUnits"].DataFilters.Add(currentCategoryFilter);
             this.inventoryChart.Series["CategoryUnits"].Visible = false;
             this.inventoryChart.Series["ProductUnits"].Visible  = true;
             this.inventoryChart.Legend.AlignmentHorizontal      = LegendAlignmentHorizontal.RightOutside;
             this.inventoryChart.Legend.AlignmentVertical        = LegendAlignmentVertical.Center;
             this.inventoryChart.Annotations[0].Visible          = true;
             PieSeriesView view = (PieSeriesView)this.inventoryChart.Series["ProductUnits"].View;
             view.Titles[0].Text = currentCategory.CategoryName;
         }
     }
     else if (e.HitInfo.InAnnotation && e.Object is TextAnnotation)
     {
         this.inventoryChart.Annotations[0].Visible          = false;
         this.inventoryChart.Series["CategoryUnits"].Visible = true;
         this.inventoryChart.Series["ProductUnits"].Visible  = false;
         this.inventoryChart.Legend.AlignmentHorizontal      = LegendAlignmentHorizontal.Center;
         this.inventoryChart.Legend.AlignmentVertical        = LegendAlignmentVertical.TopOutside;
     }
 }
Ejemplo n.º 8
0
        public Report()
        {
            InitializeComponent();
            Series sr = new Series("San Pham Ban Chay", ViewType.Pie);
            List <ThongTinHoaDon> tt = ThongTinHoaDonDAO.Instance.Loadtthd();
            DataTable             sl = ThongTinHoaDonDAO.Instance.LaySlThucAn();
            int tong = 0;

            foreach (var x in tt)
            {
                tong += x.Soluong;
            }

            foreach (DataRow y in sl.Rows)
            {
                int       slTA = 0;
                string    s    = "";
                DataTable sltt = ThongTinHoaDonDAO.Instance.LayThongTinTheoIDTA((int)y["idTA"]);
                foreach (DataRow x in sltt.Rows)
                {
                    slTA += (int)x["soluong"];
                    s     = (string)x["tenTA"];
                }
                float gt = (slTA * 0.1f / tong) * 100;
                sr.Points.Add(new SeriesPoint(s, gt));
            }

            sr.Label.TextPattern = "{A}: {VP:p0}";
            ((PieSeriesLabel)sr.Label).Position = PieSeriesLabelPosition.TwoColumns;
            ((PieSeriesLabel)sr.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;
            PieSeriesView myView = (PieSeriesView)sr.View;

            ChartReport.Series.Add(sr);
        }
Ejemplo n.º 9
0
        private void DrawBars()
        {
            this.chartControl1.Series.Clear();
            foreach (string _yfield in AxisYFields)
            {
                Series _se = new DevExpress.XtraCharts.Series();
                _se.View = new DevExpress.XtraCharts.PieSeriesView();
                PieSeriesView _pv = _se.View as PieSeriesView;
                _pv.RuntimeExploding = true;


                PieSeriesLabel _ps = _se.Label as PieSeriesLabel;
                _ps.Position = PieSeriesLabelPosition.TwoColumns;

                PiePointOptions _piePointOptions = _se.PointOptions as PiePointOptions;
                _se.PointOptions.HiddenSerializableString = "to be serialized";
                _se.PointOptions.PointView = DevExpress.XtraCharts.PointView.ArgumentAndValues;
                _piePointOptions.PercentOptions.ValueAsPercent     = true;
                _piePointOptions.PercentOptions.PercentageAccuracy = dataPrecision + 2;
                _se.PointOptions.ValueNumericOptions.Format        = DevExpress.XtraCharts.NumericFormat.Percent;
                _se.PointOptions.ValueNumericOptions.Precision     = dataPrecision;
                _se.PointOptionsTypeName = "PiePointOptions";
                _se.ValueDataMembers.Clear();
                _se.DataSource         = chartData;
                _se.ArgumentDataMember = AxisXField;
                _se.ValueDataMembers.AddRange(new string[] { _yfield });
                _se.LegendText = AxisYTitle[_yfield];
                this.chartControl1.Series.Add(_se);
            }
            int _rowCount = chartData.Rows.Count;
        }
Ejemplo n.º 10
0
        private void MyCharts01_Load(object sender, EventArgs e)
        {
            // https://documentation.devexpress.com/WindowsForms/2978/Controls-and-Libraries/Chart-Control/Fundamentals/Series-Views/2D-Series-Views/Pie-and-Donut-Series-Views/Pie-Chart
            // Create an empty chart.

            pieChart.CustomDrawSeriesPoint += PieChart_CustomDrawSeriesPoint;
            // Create a pie series.
            Series series1 = new Series("24 시간", ViewType.Pie);

            // Populate the series with points.
            series1.Points.Add(new SeriesPoint("Russia", 17.0752));
            series1.Points.Add(new SeriesPoint("Canada", 9.98467));
            series1.Points.Add(new SeriesPoint("USA", 9.63142));
            series1.Points.Add(new SeriesPoint("China", 9.59696));
            series1.Points.Add(new SeriesPoint("Brazil", 8.511965));
            series1.Points.Add(new SeriesPoint("Australia", 7.68685));
            series1.Points.Add(new SeriesPoint("India", 3.28759));
            series1.Points.Add(new SeriesPoint("Others", 81.2));
            // Add the series to the chart.
            pieChart.Series.Add(series1);

            // Format the the series labels.
            series1.Label.TextPattern = "{A}: {VP:p0}";

            // Adjust the position of series labels.
            ((PieSeriesLabel)series1.Label).Position = PieSeriesLabelPosition.TwoColumns;

            // Detect overlapping of series labels.
            ((PieSeriesLabel)series1.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;

            // Access the view-type-specific options of the series.
            PieSeriesView myView = (PieSeriesView)series1.View;

            // Show a title for the series.
            myView.Titles.Add(new SeriesTitle());
            myView.Titles[0].Text = series1.Name;

            // Specify a data filter to explode points.
            myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Value_1, DataFilterCondition.GreaterThanOrEqual, 9));
            myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Argument, DataFilterCondition.NotEqual, "Others"));
            //myView.ExplodeMode = PieExplodeMode.UseFilters;
            //myView.ExplodedDistancePercentage = 30;
            //myView.RuntimeExploding = true;
            //myView.HeightToWidthRatio = 0.75;

            // Hide the legend (if necessary).
            pieChart.Legend.Visibility          = DevExpress.Utils.DefaultBoolean.True;
            pieChart.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center;
            pieChart.Legend.AlignmentVertical   = LegendAlignmentVertical.Center;
            //pieChart.Legend.VerticalIndent = 100;
            //pieChart.Legend.HorizontalIndent = 100;
            // Add the chart to the form.
            pieChart.Dock = DockStyle.Fill;
            this.Controls.Add(pieChart);
        }
Ejemplo n.º 11
0
        private void ShowOnTimeDeliveryByQuoteEngineer()
        {
            string result = _metrics.GetOnTimeByEngineer();

            if (result != "")
            {
                MessageBox.Show(result);
                return;
            }

            // Create a chart series for each active quote engineer
            _metrics.GetQuoteEngineerNames();
            int i = 0;

            foreach (var name in _metrics.quoteEngineerNames)
            {
                // Create pie series.
                Series series = new Series(name.FirstName, ViewType.Pie)
                {
                    Name = name.FirstName
                };

                // Populate the series with points.
                series.Points.Add(new SeriesPoint(_metrics.onTimeByEngineer[i].OnTime, _metrics.onTimeByEngineer[i].OnTime));
                series.Points.Add(new SeriesPoint(_metrics.onTimeByEngineer[i].Late, _metrics.onTimeByEngineer[i].Late));

                // Access the view-type-specific options of the series.
                PieSeriesView seriesView = (PieSeriesView)series.View;

                // Show a title for the series.
                seriesView.Titles.Add(new SeriesTitle());
                seriesView.Titles[0].Text       = series.Name;
                seriesView.Titles[0].Visibility = DevExpress.Utils.DefaultBoolean.True;


                // Adjust the point options of the series.
                series.Label.PointOptions.PointView = PointView.ArgumentAndValues;
                series.Label.PointOptions.ValueNumericOptions.Format    = NumericFormat.Percent;
                series.Label.PointOptions.ValueNumericOptions.Precision = 0;

                // Add series to chart
                _chartControl.Series.Add(series);

                i++;
            }

            // Add title to chart
            ChartTitle chartTitle = new ChartTitle();

            chartTitle.Text = "On Time Delivery";
            _chartControl.Titles.Add(chartTitle);

            _chartControl.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
        }
Ejemplo n.º 12
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // Create an empty chart.
            ChartControl pieChart = new ChartControl();

            pieChart.Titles.Add(new ChartTitle()
            {
                Text = "Land Area by Country"
            });

            // Create a pie series.
            Series series1 = new Series("Land Area by Country", ViewType.Pie);

            // Bind the series to data.
            series1.DataSource         = DataPoint.GetDataPoints();
            series1.ArgumentDataMember = "Argument";
            series1.ValueDataMembers.AddRange(new string[] { "Value" });

            // Add the series to the chart.
            pieChart.Series.Add(series1);

            // Format the the series labels.
            series1.Label.TextPattern = "{VP:p0} ({V:.##}M km²)";

            // Format the series legend items.
            series1.LegendTextPattern = "{A}";

            // Adjust the position of series labels.
            ((PieSeriesLabel)series1.Label).Position = PieSeriesLabelPosition.TwoColumns;

            // Detect overlapping of series labels.
            ((PieSeriesLabel)series1.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;

            // Access the view-type-specific options of the series.
            PieSeriesView myView = (PieSeriesView)series1.View;

            // Specify a data filter to explode points.
            myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Value_1,
                                                                   DataFilterCondition.GreaterThanOrEqual, 9));
            myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Argument,
                                                                   DataFilterCondition.NotEqual, "Others"));
            myView.ExplodeMode = PieExplodeMode.UseFilters;
            myView.ExplodedDistancePercentage = 30;
            myView.RuntimeExploding           = true;

            // Customize the legend.
            pieChart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;

            // Add the chart to the form.
            pieChart.Dock = DockStyle.Fill;
            this.Controls.Add(pieChart);
        }
Ejemplo n.º 13
0
        private void loadcharTinhTrangCN()
        {
            DataTable dt = new DataTable();

            dt.Load(SqlHelper.ExecuteReader(Commons.IConnections.CNStr, "spGetChartUserTinhTrangHT", Commons.Modules.UserName, Commons.Modules.TypeLanguage));
            pieChart.Series.Clear();
            pieChart.Titles.Clear();

            pieChart.Titles.Add(new ChartTitle()
            {
                Text = "Bểu Đồ Tình Trạng Hiện Tại Công Nhân"
            });
            // Create a pie series.
            Series series1 = new Series("charpie", ViewType.Pie);

            // Bind the series to data.
            series1.DataSource         = dt;
            series1.ArgumentDataMember = "TEN_TT_HT";
            series1.ValueDataMembers.AddRange(new string[] { "SL_CN" });


            // Format the the series labels.
            series1.Label.TextPattern = "{VP:p0} ({V:0})";
            // Format the series legend items.
            series1.LegendTextPattern = "{A}";



            // Adjust the position of series labels.
            ((PieSeriesLabel)series1.Label).Position = PieSeriesLabelPosition.TwoColumns;

            // Detect overlapping of series labels.
            ((PieSeriesLabel)series1.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;

            // Access the view-type-specific options of the series.
            PieSeriesView myView = (PieSeriesView)series1.View;

            // Specify a data filter to explode points.
            myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Value_1,
                                                                   DataFilterCondition.GreaterThanOrEqual, 9));
            myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Argument,
                                                                   DataFilterCondition.NotEqual, "Làm việc"));
            myView.ExplodeMode = PieExplodeMode.UseFilters;
            myView.ExplodedDistancePercentage = 30;
            myView.RuntimeExploding           = true;

            // Customize the legend.
            pieChart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;

            // Add the series to the chart.
            pieChart.Series.Add(series1);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// 饼状图突出设置
        /// </summary>
        /// <param name="chart">ChartControl</param>
        /// <param name="pieSeries">Series【仅仅适用于PieSeriesView】</param>
        /// <param name="explodeMode">突出模式【枚举】</param>
        /// <param name="explodedValue">突出间距</param>
        /// <param name="dragPie">是否可以拖动突出饼状</param>
        public static void SetPieExplode(this ChartControl chart, SeriesBase pieSeries, PieExplodeMode explodeMode, int explodedValue, bool dragPie)
        {
            if (pieSeries.View is PieSeriesView)
            {
                if (!chart.RuntimeHitTesting)
                {
                    chart.RuntimeHitTesting = true;
                }

                PieSeriesView _pieView = pieSeries.View as PieSeriesView;
                _pieView.ExplodeMode = explodeMode;
                _pieView.ExplodedDistancePercentage = explodedValue;
                _pieView.RuntimeExploding           = dragPie;
            }
        }
        private void btnCantVtasProd_Click(object sender, EventArgs e)
        {
            DateTime dtDesde = dtpDesdeCantVtasProd.Value;
            DateTime dtHasta = dtpHastaCantVtasProd.Value;

            var pedidos = GetPedidosByDates(dtDesde, dtHasta);

            if (pedidos == null)
            {
                return;
            }

            var ordenes = new List <Orden>();

            foreach (var p in pedidos)
            {
                ordenes.AddRange(p.OrdenesValidas);
            }

            var totalVtas = ordenes.Sum(a => a.Cantidad);

            txtCantVtasProd.EditValue = totalVtas;

            var seriePoint = (from or in ordenes
                              group or.Cantidad by or.NombreReceta into g
                              select new SeriesPoint(g.Key, Math.Round(Convert.ToDecimal(g.Sum() * 100 / totalVtas), 2))).ToArray();

            Series serieCantVtasProd = new Series("Cantidad de Vtas. Productos", ViewType.Pie);

            serieCantVtasProd.Points.AddRange(seriePoint);
            serieCantVtasProd.Label.TextPattern = "{A}: {VP:p0}";
            serieCantVtasProd.ShowInLegend      = true;

            charCantVtasProd.Series.Clear();
            charCantVtasProd.Series.Add(serieCantVtasProd);

            ((PieSeriesLabel)serieCantVtasProd.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;

            // Access the view-type-specific options of the series.
            PieSeriesView myView = (PieSeriesView)serieCantVtasProd.View;

            // Show a title for the series.
            myView.Titles.Add(new SeriesTitle());
            myView.Titles[0].Text = serieCantVtasProd.Name;
        }
Ejemplo n.º 16
0
        private void load_data_to_chart()
        {
            chartControl.DataSource = v_ds.Tables[0];
            //chartControl.SeriesDataMember = "TRANG_THAI";
            //chartControl.SeriesTemplate.ArgumentDataMember = "TEN_CHI_NHANH";
            //chartControl.SeriesTemplate.SummaryFunction = "COUNT()";

            var v_ssv = new PieSeriesView();

            //chartControl.SeriesTemplate.View = v_ssv;
            //foreach (Series item in chartControl.Series)
            //{
            //    item.ShowInLegend = true;
            //    item.LegendText = item.Name;
            //    item.LegendTextPattern = "{S} - {A} : {VP:0.##%} ({V} Lao động)";
            //    item.Label.TextPattern = "{S} - {A}";
            //}
        }
Ejemplo n.º 17
0
        private void MakePieChartLeft()
        {
            Series series1 = new Series("24시간", ViewType.Pie);

            series1.Points.Add(new SeriesPoint("가동", 61));
            series1.Points.Add(new SeriesPoint("비가동", 39));
            chartControl2.Series.Add(series1);
            series1.Label.TextPattern = "{A}: {VP:p0}";
            ((PieSeriesLabel)series1.Label).Position = PieSeriesLabelPosition.TwoColumns;
            ((PieSeriesLabel)series1.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;
            PieSeriesView myView = (PieSeriesView)series1.View;

            myView.Titles.Add(new SeriesTitle());
            myView.Titles[0].Text = series1.Name;
            myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Value_1, DataFilterCondition.GreaterThanOrEqual, 9));
            myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Argument, DataFilterCondition.NotEqual, "Others"));
            chartControl2.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
        }
Ejemplo n.º 18
0
 private void LoadCharProduct(DataSet ds)
 {
     if (ds != null)
     {
         chartControl1.DataSource = ds.Tables["Data"];
         chartControl1.Series["SrChart"].ArgumentDataMember = "colname";
         chartControl1.Series["SrChart"].ValueDataMembers.AddRange(new string[] { "TongTien" });
         chartControl1.Series["SrChart"].LegendTextPattern = "  {A}";
         chartControl1.Series["SrChart"].Label.TextPattern = "{V:c2}";
         PieSeriesView myView = (PieSeriesView)chartControl1.Series["SrChart"].View;
         myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Value_1,
                                                                DataFilterCondition.GreaterThanOrEqual, 9));
         myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Argument,
                                                                DataFilterCondition.NotEqual, "Others"));
         myView.ExplodeMode = PieExplodeMode.UseFilters;
         myView.ExplodedDistancePercentage = 5;
         myView.RuntimeExploding           = true;
     }
 }
Ejemplo n.º 19
0
        private void InitChart(ChartControl chart, string title, int completedValue, int waitingValue, int missingValue)
        {
            var series          = new Series();
            var seriesLabel     = new PieSeriesLabel();
            var seriesCompleted = new SeriesPoint("Tamamlanan", new object[] { completedValue }, 0);
            var seriesWaiting   = new SeriesPoint("Bekleyen", new object[] { waitingValue }, 1);
            var seriesMissing   = new SeriesPoint("Eksik", new object[] { missingValue }, 2);
            var pieView         = new PieSeriesView();
            var chartTitle      = new ChartTitle();

            ((ISupportInitialize)chart).BeginInit();
            ((ISupportInitialize)series).BeginInit();
            ((ISupportInitialize)seriesLabel).BeginInit();
            ((ISupportInitialize)pieView).BeginInit();

            SuspendLayout();

            chart.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center;
            chart.Legend.AlignmentVertical   = LegendAlignmentVertical.TopOutside;
            chart.Legend.Direction           = LegendDirection.LeftToRight;
            chart.Legend.Name                       = "Default";
            chart.Legend.Font                       = AppAppearance.DefaultFont;
            chart.Location                          = new Point(12, 12);
            seriesLabel.LineVisibility              = DevExpress.Utils.DefaultBoolean.True;
            seriesLabel.TextPattern                 = "{A} : {V} - {VP:0.0%}";
            seriesLabel.Font                        = AppAppearance.DefaultFont;
            seriesLabel.ResolveOverlappingMode      = ResolveOverlappingMode.JustifyAllAroundPoint;
            seriesLabel.ResolveOverlappingMinIndent = 5;
            series.Label = seriesLabel;
            series.Name  = "Sipariş";
            seriesMissing.ColorSerializable = "#9BBB59";
            series.Points.AddRange(seriesCompleted, seriesWaiting, seriesMissing);
            series.View = pieView;
            chart.SeriesSerializable = new[] { series };
            chartTitle.Text          = title;
            chart.Titles.AddRange(new[] { chartTitle });

            ((ISupportInitialize)seriesLabel).EndInit();
            ((ISupportInitialize)pieView).EndInit();
            ((ISupportInitialize)series).EndInit();
            ((ISupportInitialize)chart).EndInit();
            ResumeLayout(false);
        }
Ejemplo n.º 20
0
        private void InitPieChart(List <ProjectSummary> dataSource, string valueName, ChartControl pieChart)
        {
            // pie chart
            Series pieSeries = new Series();

            pieSeries.ValueScaleType = ScaleType.Numerical;
            pieSeries.LegendPointOptions.PointView = PointView.Argument;
            pieSeries.LegendPointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
            PieSeriesView pieView = new PieSeriesView();

            pieView.ExplodedDistancePercentage = 10;
            SeriesTitle title = new SeriesTitle();

            title.Text = Properties.Resources.ResourceManager.GetString(valueName + "Rate");
            pieView.Titles.Add(title);
            pieView.RuntimeExploding = true;
            pieSeries.View           = pieView;

            foreach (var item in dataSource)
            {
                SeriesPoint seriesPoint = new SeriesPoint(item.Name, new object[] { ((object)(item.GetType().GetProperty(valueName).GetValue(item, null))) });
                pieSeries.Points.Add(seriesPoint);
            }
            pieChart.Series.Add(pieSeries);


            PieSeriesLabel pieSerieslable = pieSeries.Label as PieSeriesLabel;

            if (pieSerieslable != null)
            {
                pieSerieslable.PointOptions.PointView = PointView.ArgumentAndValues;
                pieSerieslable.Position      = PieSeriesLabelPosition.TwoColumns;
                pieSerieslable.TextAlignment = StringAlignment.Center;
            }
            PiePointOptions options = pieSeries.Label.PointOptions as PiePointOptions;

            if (options != null)
            {
                options.PercentOptions.PercentageAccuracy = 2;
                options.PercentOptions.ValueAsPercent     = true;
                options.ValueNumericOptions.Format        = NumericFormat.Percent;
            }
        }
Ejemplo n.º 21
0
        void binding_bandchart()
        {
            chartControl1.Series.Clear();
            SqlParameter[] p = new SqlParameter[3];
            p[0] = new SqlParameter("@first", Convert.ToDateTime(txt_date1.Text));
            p[1] = new SqlParameter("@last", Convert.ToDateTime(txt_date2.Text));
            p[2] = new SqlParameter("@cashier_name", cmb_cashier.Text);

            DataTable dt = new DataTable();

            dt = cd.getdata("sp_expensesBandchart", p);
            //chartControl3.DataSource = dt;
            DevExpress.XtraCharts.Series sales = new DevExpress.XtraCharts.Series("band analyzing", DevExpress.XtraCharts.ViewType.Doughnut);
            sales.DataSource                   = dt;
            sales.ArgumentDataMember           = "البند";
            sales.ValueDataMembersSerializable = "القيمة";
            sales.ValueDataMembers.AddRange(new string[] { "القيمة" });
            sales.ShowInLegend = true;
            chartControl1.Series.Add(sales);
            sales.Label.TextPattern = "{VP:p0} ({V:.##}LE)";
            sales.LegendTextPattern = "{A}";
            // Adjust the position of series labels.
            ((PieSeriesLabel)sales.Label).Position = PieSeriesLabelPosition.TwoColumns;

            // Detect overlapping of series labels.
            ((PieSeriesLabel)sales.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;

            // Access the view-type-specific options of the series.
            PieSeriesView myView = (PieSeriesView)sales.View;

            // Specify a data filter to explode points.
            myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Value_1,
                                                                   DataFilterCondition.GreaterThanOrEqual, 9));
            myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Argument,
                                                                   DataFilterCondition.NotEqual, "Others"));
            myView.ExplodeMode = PieExplodeMode.UseFilters;
            myView.ExplodedDistancePercentage = 5;
            myView.RuntimeExploding           = true;

            // Customize the legend.
            chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
        }
Ejemplo n.º 22
0
        private void FRMInsideInspectionReport_Load(object sender, EventArgs e)
        {
            DataTable t1 = tablelist[0];
            DataTable t2 = tablelist[1];

            gridControl1.DataSource = t1;
            gridControl2.DataSource = t2;

            gridView2.OptionsView.ColumnAutoWidth = false;
            gridView1.OptionsView.ColumnAutoWidth = false;
            gridControl1.Refresh();
            gridControl2.Refresh();
            chartControl1.Series.Clear();
            DevExpress.XtraCharts.Series      s  = new DevExpress.XtraCharts.Series("", ViewType.Pie);
            DevExpress.XtraCharts.SeriesPoint sp = new DevExpress.XtraCharts.SeriesPoint();
            s.Points.Add(new DevExpress.XtraCharts.SeriesPoint("小于1米", t2.Rows[0][2]));
            s.Points.Add(new DevExpress.XtraCharts.SeriesPoint(">1米且≤2米", t2.Rows[1][2]));
            s.Points.Add(new DevExpress.XtraCharts.SeriesPoint("大于2米", t2.Rows[2][2]));
            ((DevExpress.XtraCharts.PieSeriesLabel)s.Label).PointOptions.Pattern = "{A}: {V}";
            ((DevExpress.XtraCharts.PieSeriesLabel)s.Label).Position             = DevExpress.XtraCharts.PieSeriesLabelPosition.TwoColumns;
            // Detect overlapping of series labels.
            ((DevExpress.XtraCharts.PieSeriesLabel)s.Label).ResolveOverlappingMode = DevExpress.XtraCharts.ResolveOverlappingMode.Default;
            PieSeriesView myView = (PieSeriesView)s.View;

            myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Value_1,
                                                                   DataFilterCondition.GreaterThanOrEqual, 9));
            myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Argument,
                                                                   DataFilterCondition.NotEqual, "Others"));
            myView.ExplodeMode = PieExplodeMode.UseFilters;
            myView.ExplodedDistancePercentage = 30;
            myView.RuntimeExploding           = true;
            myView.HeightToWidthRatio         = 0.75;
            chartControl1.Series.Add(s);

            //microChart1.Text = "内检测对齐分析";
            //microChart1.ChartType = DevComponents.DotNetBar.eMicroChartType.Pie;

            //microChart1.DataPoints = new List<double>() {Convert.ToDouble(t2.Rows[0][2]), Convert.ToDouble(t2.Rows[1][2]) ,Convert.ToDouble(t2.Rows[2][2])};
            //microChart1.DataPointTooltips = new List<string>() { "≤1米", ">1米且≤2米", "大于2米" };
        }
Ejemplo n.º 23
0
        private void XuatBieuDo(List <DoanhSoBan_Mon> dt, bool isTop10 = false)
        {
            if (chartControlBieuDo.Series.Count > 0)
            {
                chartControlBieuDo.Series.Clear();
            }
            var nhom = (DoanhSoBan_NhomMon)gridViewNhomMon.GetFocusedRow();

            if (dt.Count == 0)
            {
                XtraMessageBox.Show("Không có dữ liệu chi tiết", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            Series pie    = new Series(!isTop10 ? "Biểu đồ doanh thu của nhóm " + nhom.TenNhom : "Top 10 sản phẩm bán chạy", ViewType.Pie);
            var    TongSL = dt.Select(s => s.SoLuongBan).Sum();

            foreach (var item in dt)
            {
                var phantram = (double)item.SoLuongBan / TongSL;
                pie.Points.Add(new SeriesPoint(item.TenMon, phantram));
            }
            chartControlBieuDo.Series.Add(pie);
            pie.Label.TextPattern = "{A}: {VP:p0}";
            ((PieSeriesLabel)pie.Label).Position = PieSeriesLabelPosition.TwoColumns;

            // Detect overlapping of series labels.
            ((PieSeriesLabel)pie.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;

            // Access the view-type-specific options of the series.
            PieSeriesView myView = (PieSeriesView)pie.View;

            // Show a title for the series.
            myView.Titles.Add(new SeriesTitle());
            myView.Titles[0].Text = pie.Name;

            // Hide the legend (if necessary).
            chartControlBieuDo.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
        }
        static void Main(string[] args)
        {
            using (ChartContainer container = new ChartContainer()) {
                container.Size = new Size(500, 500);
                container.Chart.Titles.Add(new ChartTitle()
                {
                    Text = "Linux OpenGL test very very long title a b c aaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbb cccccccccccccccccccccc dddddddddddddddddddddddddddddd"
                });
                container.Chart.Titles[0].WordWrap  = true;
                container.Chart.Titles[0].Alignment = StringAlignment.Near;
                Random random = new Random(0);
                container.Chart.Legend.Visibility = DefaultBoolean.False;
                for (int i = 0; i < 1; i++)
                {
                    Series series = new Series("Series", ViewType.Pie);
                    series.Label.TextPattern = "{S} : {A} : {V} : {VP}";
                    PieSeriesView view = (PieSeriesView)series.View;
                    view.MinAllowedSizePercentage = 80;
                    for (int j = 0; j < 10; j++)
                    {
                        series.Points.Add(new SeriesPoint(j.ToString() + " Long Argument", random.Next(100)));
                    }
                    container.Chart.Series.Add(series);
                }

                if (!Directory.Exists(OutputPath))
                {
                    Directory.CreateDirectory(OutputPath);
                }

                container.Chart.ExportToImage(OutputPath + "/Test.png", ImageFormat.Png);
                PdfExportOptions options = new PdfExportOptions();
                options.ConvertImagesToJpeg = false;
                container.Chart.ExportToPdf(OutputPath + "/Test.pdf", options);

                Console.WriteLine("Done.");
            }
        }
Ejemplo n.º 25
0
        private void list_man_SelectedIndexChanged(object sender, EventArgs e)
        {
            int w_id = 0;

            m_year  = ctl_man_calendar.SelectedRanges.Start.Year;
            m_month = ctl_man_calendar.SelectedRanges.Start.Month;
            foreach (Employee w_item in w_list)
            {
                if ((string)list_man.SelectedValue == w_item.f_name)
                {
                    w_id = w_item.id;
                    List <int> w_quartes = new List <int>();
                    w_quartes.Add(m_month);
                    DataTable w_dt = m_report_model.GetReportPerMan(m_year, w_quartes, w_id);

                    //*****//
                    man_chart.Series.Clear();
                    Series series1 = new Series(w_item.f_name + " sales of all items", ViewType.Pie);
                    foreach (DataRow w_man in w_dt.Rows)
                    {
                        series1.Points.Add(new SeriesPoint(w_man[1], w_man[2]));
                    }
                    man_chart.Series.Add(series1);
                    series1.Label.TextPattern = "{A}: {VP:p0}";


                    PieSeriesView myView = (PieSeriesView)series1.View;
                    myView.Titles.Add(new SeriesTitle());
                    myView.Titles[0].Text = series1.Name;



                    break;
                }
            }
        }
Ejemplo n.º 26
0
        public void LoadGraph()
        {
            int t1 = System.Environment.TickCount;

            if (_report.State != Report.StateEnum.Executed)
            {
                return;
            }

            _chCtrl.BeginInit();

            bool rotateGraph = false;
            bool pivotAxes   = ((_report.GraphOptions & OlapReport.GraphOptionsEnum.Pivot) > 0);

            int seriesPosCount = (pivotAxes ? _report.Cellset.Axis1PosCount : _report.Cellset.Axis0PosCount);
            int seriesMemCount = (pivotAxes ? _report.Cellset.Axis1TupleMemCount : _report.Cellset.Axis0TupleMemCount);
            int catPosCount    = (pivotAxes ? _report.Cellset.Axis0PosCount : _report.Cellset.Axis1PosCount);
            int catMemCount    = (pivotAxes ? _report.Cellset.Axis0TupleMemCount : _report.Cellset.Axis1TupleMemCount);

            if (seriesPosCount == 0 || catPosCount == 0)
            {
                return;
            }

            Size size = new Size(_report.GraphWidth, _report.GraphHeight);

            size = this.AdjustGraphWidth(size, _report.GraphType);

            // limit number of series
            if (seriesPosCount > __MaxSeriesCount)
            {
                seriesPosCount = __MaxSeriesCount;
            }
            if (_report.GraphType == OlapReport.GraphTypeEnum.Pie || _report.GraphType == OlapReport.GraphTypeEnum.PieBrokenApart)
            {
                if (seriesPosCount > __MaxPieCount)
                {
                    seriesPosCount = __MaxPieCount;
                }
            }

            // limit number of categories
            if (catPosCount > __MaxCategoriesCount)
            {
                catPosCount = __MaxCategoriesCount;
            }

            bool showValues      = (_report.GraphOptions & OlapReport.GraphOptionsEnum.ShowValues) > 0;
            bool showSeries      = (_report.GraphOptions & OlapReport.GraphOptionsEnum.ShowSeries) > 0;
            bool showCats        = (_report.GraphOptions & OlapReport.GraphOptionsEnum.ShowCategories) > 0;
            bool setScaling      = _report.GraphType != OlapReport.GraphTypeEnum.Pie && ((_report.GraphOptions & OlapReport.GraphOptionsEnum.ScalingBySeries) > 0);
            bool setPerc         = !setScaling && ((_report.GraphOptions & OlapReport.GraphOptionsEnum.PercentByCategories) > 0);
            byte graphPieColumns = (_report.GraphPieColumns == 0 ?
                                    Convert.ToByte(Math.Sqrt(seriesPosCount)) : _report.GraphPieColumns);
            byte graphMixedLinePos = _report.GraphMixedLinePosition;

            graphMixedLinePos = (graphMixedLinePos <= 0 || graphMixedLinePos > seriesPosCount ? (byte)1 : graphMixedLinePos);

            // theme
            if (_report.GraphTheme != null && _report.GraphTheme != "")
            {
                _chCtrl.AppearanceName = _report.GraphTheme;
            }

            // create series
            for (int i = 0; i < seriesPosCount; i++)
            {
                string name = "";
                for (int j = 0; j < seriesMemCount; j++)
                {
                    name += (j == 0 ? "" : " | ") + (pivotAxes ? _report.Cellset.GetCellsetMember(1, j, i).Name : _report.Cellset.GetCellsetMember(0, j, i).Name);
                }

                Series series = new Series();
                series.Name = name;


                // type
                if (_report.GraphType == OlapReport.GraphTypeEnum.Pie || _report.GraphType == OlapReport.GraphTypeEnum.PieBrokenApart)
                {
                    // if pie, each of series is displayed as individual graph
                    if (_report.GraphType == OlapReport.GraphTypeEnum.PieBrokenApart)
                    {
                        _chCtrl.Series.Clear();
                    }
                    _chCtrl.Series.Add(series);

                    series.ChangeView(ViewType.Pie);

                    PiePointOptions ppo = (PiePointOptions)series.PointOptions;
                    PieSeriesView   psw = (PieSeriesView)series.View;
                    PieSeriesLabel  psl = (PieSeriesLabel)series.Label;

                    psl.Position = PieSeriesLabelPosition.TwoColumns;
                    series.PointOptions.PointView = PointView.Undefined;

                    if (_report.GraphType == OlapReport.GraphTypeEnum.Pie)
                    {
                        SimpleDiagram sd = new SimpleDiagram();
                        sd.LayoutDirection = LayoutDirection.Horizontal;
                        sd.Dimension       = graphPieColumns;
                        _chCtrl.Diagram    = sd;
                    }

                    // legend
                    if (showCats)
                    {
                        _chCtrl.Legend.Visible = false;
                    }

                    series.Label.OverlappingOptions.ResolveOverlapping = true;
                    series.LegendPointOptions.PointView = PointView.Argument;

                    _chCtrl.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center;
                    _chCtrl.Legend.AlignmentVertical   = LegendAlignmentVertical.BottomOutside;
                    _chCtrl.Legend.Direction           = LegendDirection.LeftToRight;


                    // series title
                    SeriesTitle sTitle = new SeriesTitle();
                    sTitle.Text      = name;
                    sTitle.Alignment = StringAlignment.Center;
                    sTitle.Dock      = ChartTitleDockStyle.Bottom;
                    psw.Titles.Add(sTitle);
                }
                else
                {
                    // diagram
                    if (_chCtrl.Diagram == null)
                    {
                        _chCtrl.Diagram = new XYDiagram();
                    }
                    XYDiagram diag = (XYDiagram)_chCtrl.Diagram;


                    //// panes
                    //if (_report.GraphType == OlapReport.GraphTypeEnum.LineWithBars && graphMixedLinePos <= seriesPosCount && diag.Panes.Count == 0)
                    //{
                    //    // add new pane
                    //    XYDiagramPane pane = new XYDiagramPane();
                    //    pane.Visible = true;
                    //    pane.SizeMode = PaneSizeMode.UseWeight;
                    //    pane.Weight = 0.66;
                    //    diag.PaneLayoutDirection = PaneLayoutDirection.Vertical;
                    //    diag.Panes.Add(pane);

                    //    // set default pane weight
                    //    diag.DefaultPane.SizeMode = PaneSizeMode.UseWeight;
                    //    diag.DefaultPane.Weight = 0.33;
                    //}

                    // add series
                    _chCtrl.Series.Add(series);

                    // add series to secondary pane if needed (in case of LineWithBars)
                    if (diag.Panes.Count > 0 && i != graphMixedLinePos - 1)
                    {
                        ((XYDiagramSeriesViewBase)series.View).Pane = diag.Panes[0];
                    }

                    if (_report.GraphType == OlapReport.GraphTypeEnum.BarVertical)
                    {
                        series.ChangeView(ViewType.Bar);
                    }
                    else if (_report.GraphType == OlapReport.GraphTypeEnum.BarHorizontal)
                    {
                        series.ChangeView(ViewType.Bar);
                        rotateGraph = true;
                    }
                    else if (_report.GraphType == OlapReport.GraphTypeEnum.StackedBarVertical)
                    {
                        series.ChangeView(ViewType.StackedBar);
                    }
                    else if (_report.GraphType == OlapReport.GraphTypeEnum.StackedBarHorizontal)
                    {
                        series.ChangeView(ViewType.StackedBar);
                        rotateGraph = true;
                    }
                    else if (_report.GraphType == OlapReport.GraphTypeEnum.LineHorizontal)
                    {
                        series.ChangeView(ViewType.Line);
                    }
                    else if (_report.GraphType == OlapReport.GraphTypeEnum.LineWithBars)
                    {
                        if (i == graphMixedLinePos - 1)
                        {
                            //if (!setScaling)
                            //{
                            //    // create secondary axis
                            //    SecondaryAxisY axisY = new SecondaryAxisY(series.Name);
                            //    axisY.Visible = true;
                            //    axisY.Title.Text = series.Name;
                            //    axisY.Title.Visible = true;
                            //    axisY.Alignment = AxisAlignment.Near;
                            //    ((XYDiagram)_chCtrl.Diagram).SecondaryAxesY.Add(axisY);
                            //    ((XYDiagramSeriesViewBase)series.View).AxisY = axisY;

                            //    // set default axis title
                            //    ((XYDiagram)_chCtrl.Diagram).AxisY.Title.Text = "Bar axis";
                            //    ((XYDiagram)_chCtrl.Diagram).AxisY.Title.Visible = true;
                            //}

                            // change view
                            series.ChangeView(ViewType.Line);
                        }
                        else
                        {
                            series.ChangeView(ViewType.Bar);
                        }
                    }

                    // 20 pixels per label (250 pixels for legend), othervise overlapping resolution will never finish
                    if ((size.Width - 250) / catPosCount > 20)
                    {
                        series.Label.OverlappingOptions.ResolveOverlapping = true;
                        PointOverlappingOptions poo = series.Label.OverlappingOptions as PointOverlappingOptions;
                        if (poo != null)
                        {
                            poo.AttractToMarker = true;
                        }
                    }

                    series.LegendText                   = name;
                    series.ShowInLegend                 = true;
                    series.ValueScaleType               = ScaleType.Numerical;
                    series.PointOptions.PointView       = PointView.Undefined;
                    series.LegendPointOptions.PointView = PointView.SeriesName;
                    series.Visible = true;

                    // labels orientation
                    diag.Rotated = rotateGraph;
                    if (rotateGraph)
                    {
                        diag.AxisY.Label.Antialiasing = true;
                        diag.AxisY.Label.Angle        = 315;
                    }
                    else
                    {
                        diag.AxisX.Label.Antialiasing = true;
                        diag.AxisX.Label.Angle        = 315;
                    }

                    // if scaling
                    if (setScaling)
                    {
                        diag.AxisY.Visible = false;
                    }
                }


                // prepare scaling ranges
                double scalingMin = double.MaxValue;
                double scalingMax = double.MinValue;
                if (setScaling)
                {
                    for (int l = 0; l < catPosCount; l++)
                    {
                        string val  = (pivotAxes ? _report.Cellset.GetCell(l, i).Value : _report.Cellset.GetCell(i, l).Value);
                        double dVal = 0;
                        double.TryParse(val, System.Globalization.NumberStyles.Float, System.Globalization.NumberFormatInfo.InvariantInfo, out dVal);
                        if (dVal < scalingMin)
                        {
                            scalingMin = dVal;
                        }
                        if (dVal > scalingMax)
                        {
                            scalingMax = dVal;
                        }
                    }
                }
                scalingMin = scalingMin - (scalingMax - scalingMin) * 0.1;

                // set data
                double percSum = 0;
                for (int l = 0; l < catPosCount; l++)
                {
                    string argument = "";
                    for (int m = 0; m < catMemCount; m++)
                    {
                        argument += (m == 0 ? "" : " | ") + (pivotAxes ? _report.Cellset.GetCellsetMember(0, m, l).Name : _report.Cellset.GetCellsetMember(1, m, l).Name);
                    }

                    string val = (pivotAxes ? _report.Cellset.GetCell(l, i).Value : _report.Cellset.GetCell(i, l).Value);

                    double dVal = 0;
                    double.TryParse(val, System.Globalization.NumberStyles.Float, System.Globalization.NumberFormatInfo.InvariantInfo, out dVal);
                    if (setPerc)
                    {
                        percSum += dVal;
                    }
                    else if (setScaling)
                    {
                        dVal = (scalingMax - scalingMin == 0 ? 0 : (dVal - scalingMin) / (scalingMax - scalingMin));
                    }

                    string fVal = (pivotAxes ? _report.Cellset.GetCell(l, i).FormattedValue : _report.Cellset.GetCell(i, l).FormattedValue);

                    SeriesPoint sp = new SeriesPoint(argument, new double[] { dVal });
                    sp.Tag = fVal;
                    series.Points.Add(sp);
                }

                // set custom labels and value as percentage
                for (int l = 0; l < catPosCount; l++)
                {
                    SeriesPoint sp = series.Points[l];
                    if (setPerc)
                    {
                        sp.Values[0] = sp.Values[0] / percSum;
                        sp.Tag       = sp.Values[0].ToString("P");
                    }

                    // custom point label
                    string customLabel = string.Empty;
                    if (!showValues && !showSeries && !showCats)
                    {
                        series.Label.Visible = false;
                    }
                    else
                    {
                        string fVal = (string)sp.Tag;
                        if (fVal == null || fVal == "")
                        {
                            fVal = "0";
                        }
                        customLabel  = (showSeries ? series.Name : string.Empty);
                        customLabel += (showCats ? (customLabel != string.Empty ? " | " : string.Empty) + sp.Argument : string.Empty);
                        customLabel += (showValues ? (customLabel != string.Empty ? ": " : string.Empty) + fVal : string.Empty);
                    }

                    series.Points[l].Tag = customLabel;
                }

                // for pie, layout each of series individually
                if (_report.GraphType == OlapReport.GraphTypeEnum.PieBrokenApart)
                {
                    _chCtrl.Titles.Clear();
                    _chCtrl.EndInit();
                    LayoutGraph(_report.ID.ToString() + "." + i.ToString(), size, graphPieColumns);

                    // init next chart
                    if (i < seriesPosCount - 1)
                    {
                        _chCtrl = new DevExpress.XtraCharts.Web.WebChartControl();
                        _chCtrl.BeginInit();
                    }
                }
            }


            int t2 = System.Environment.TickCount;

            if (_report.GraphType != OlapReport.GraphTypeEnum.PieBrokenApart)
            {
                ChartTitle title = new ChartTitle();
                title.Alignment = StringAlignment.Center;
                title.Lines     = new string[] { _report.Name, _report.Description };
                _chCtrl.Titles.Add(title);

                LayoutGraph(_report.ID.ToString(), size, 0);
            }

            // if LineWithBars
            if (_report.GraphType == OlapReport.GraphTypeEnum.LineWithBars)
            {
                // fill combo
                for (int i = 0; i < _chCtrl.Series.Count; i++)
                {
                    this.selMixedLinePos.Items.Add(new ListItem(_chCtrl.Series[i].Name, (i + 1).ToString()));
                }
                this.selMixedLinePos.SelectedIndex = graphMixedLinePos - 1;

                // set line as last
                if (!(_chCtrl.Series[_chCtrl.Series.Count - 1].View is LineSeriesView))
                {
                    // roll down through series
                    for (int i = graphMixedLinePos - 1; i < _chCtrl.Series.Count - 1; i++)
                    {
                        _chCtrl.Series.Swap(i, i + 1);
                    }
                }
            }

            int    t3    = System.Environment.TickCount;
            double time1 = (t3 - t2) / 1000.0;
            double time2 = (t2 - t1) / 1000.0;

            t1 = 0;
        }
        public void LoadGraph()
        {
            if (_report.State != Report.StateEnum.Executed)
            {
                return;
            }

            bool rotateGraph = false;
            bool rotateAxes  = ((_report.GraphOptions & OlapReport.GraphOptionsEnum.RotateAxes) > 0);

            int seriesPosCount = (rotateAxes ? _report.Cellset.Axis1PosCount: _report.Cellset.Axis0PosCount);
            int seriesMemCount = (rotateAxes ? _report.Cellset.Axis1TupleMemCount: _report.Cellset.Axis0TupleMemCount);
            int catPosCount    = (rotateAxes ? _report.Cellset.Axis0PosCount: _report.Cellset.Axis1PosCount);
            int catMemCount    = (rotateAxes ? _report.Cellset.Axis0TupleMemCount: _report.Cellset.Axis1TupleMemCount);

            if (seriesPosCount > 256)
            {
                seriesPosCount = 256;
            }

            if (catPosCount > 1024)
            {
                catPosCount = 1024;
            }

            bool showValues = (_report.GraphOptions & OlapReport.GraphOptionsEnum.ShowValues) > 0;
            bool showSeries = (_report.GraphOptions & OlapReport.GraphOptionsEnum.ShowSeries) > 0;
            bool showCats   = (_report.GraphOptions & OlapReport.GraphOptionsEnum.ShowCategories) > 0;
            bool setScaling = (_report.GraphOptions & OlapReport.GraphOptionsEnum.SetScaling) > 0;

            // create series
            for (int i = 0; i < seriesPosCount; i++)
            {
                string name = "";
                for (int j = 0; j < seriesMemCount; j++)
                {
                    name += (j == 0 ? "" : " | ") + (rotateAxes ? _report.Cellset.GetCellsetMember(1, j, i).Name : _report.Cellset.GetCellsetMember(0, j, i).Name);
                }

                Series series = new Series();
                series.Name = name;
                _chCtrl.Series.Add(series);

                // type
                if (_report.GraphType == OlapReport.GraphTypeEnum.Pie)
                {
                    // limit number of series
                    if (seriesPosCount > 6)
                    {
                        seriesPosCount = 6;
                    }

                    // disable scaling for pie
                    setScaling = false;

                    series.ChangeView(ViewType.Pie);

                    PiePointOptions ppo = (PiePointOptions)series.PointOptions;
                    PieSeriesView   psw = (PieSeriesView)series.View;
                    PieSeriesLabel  psl = (PieSeriesLabel)series.Label;

                    psl.Position        = PieSeriesLabelPosition.TwoColumns;
                    series.ShowInLegend = false;                   // cause it's shown in pie anyway
                    showValues          = true;
                    showCats            = true;

                    this.chkCat.Checked     = true;
                    this.chkCat.Disabled    = true;
                    this.chkValues.Checked  = true;
                    this.chkValues.Disabled = true;
                }
                else
                {
                    if (_report.GraphType == OlapReport.GraphTypeEnum.BarVertical)
                    {
                        series.ChangeView(ViewType.Bar);
                    }
                    else if (_report.GraphType == OlapReport.GraphTypeEnum.BarHorizontal)
                    {
                        series.ChangeView(ViewType.Bar);
                        rotateGraph = true;
                    }
                    else if (_report.GraphType == OlapReport.GraphTypeEnum.StackedBarVertical)
                    {
                        series.ChangeView(ViewType.StackedBar);
                    }
                    else if (_report.GraphType == OlapReport.GraphTypeEnum.StackedBarHorizontal)
                    {
                        series.ChangeView(ViewType.StackedBar);
                        rotateGraph = true;
                    }
                    else if (_report.GraphType == OlapReport.GraphTypeEnum.LineHorizontal)
                    {
                        series.ChangeView(ViewType.Line);
                    }

                    series.LegendText     = name;
                    series.ShowInLegend   = true;
                    series.ValueScaleType = ScaleType.Numerical;
                    series.Visible        = true;

                    // labels orientation
                    XYDiagram diag = (XYDiagram)_chCtrl.Diagram;
                    diag.Rotated = rotateGraph;
                    if (rotateGraph)
                    {
                        diag.AxisY.Label.Antialiasing = true;
                        diag.AxisY.Label.Angle        = 315;
                    }
                    else
                    {
                        diag.AxisX.Label.Antialiasing = true;
                        diag.AxisX.Label.Angle        = 315;
                    }

                    // if scaling
                    if (setScaling)
                    {
                        diag.AxisY.Visible = false;
                    }

//					if(setScaling)
//					{
//						// hide axis, cause it won't display real values
//						if(seriesPosCount<10)
//							diag.AxisY.Visible=false;
//						if(i<10)
//						{
//							SecondaryAxisY axisY=new SecondaryAxisY(name);
//
//							axisY.Alignment=AxisAlignment.Near;
//							axisY.Title.Text = name;
//							axisY.Title.Visible = true;
//							axisY.Title.Font=new Font(axisY.Title.Font.Name, 10);
//							axisY.Label.Antialiasing=true;
//							axisY.Label.Angle=315;
//
//							diag.SecondaryAxesY.Add(axisY);
//							((XYDiagramSeriesViewBase)series.View).AxisY = axisY;
//						}
//					}
                }


                // prepare scaling ranges
                double scalingMin = double.MaxValue;
                double scalingMax = double.MinValue;
                if (setScaling)
                {
                    for (int l = 0; l < catPosCount; l++)
                    {
                        string val  = (rotateAxes ? _report.Cellset.GetCell(l, i).Value : _report.Cellset.GetCell(i, l).Value);
                        double dVal = 0;
                        double.TryParse(val, System.Globalization.NumberStyles.Float, System.Globalization.NumberFormatInfo.InvariantInfo, out dVal);
                        if (dVal < scalingMin)
                        {
                            scalingMin = dVal;
                        }
                        if (dVal > scalingMax)
                        {
                            scalingMax = dVal;
                        }
                    }
                }
                scalingMin = scalingMin - (scalingMax - scalingMin) * 0.1;

                // set data
                for (int l = 0; l < catPosCount; l++)
                {
                    string argument = "";
                    for (int m = 0; m < catMemCount; m++)
                    {
                        argument += (m == 0 ? "" : " | ") + (rotateAxes ? _report.Cellset.GetCellsetMember(0, m, l).Name : _report.Cellset.GetCellsetMember(1, m, l).Name);
                    }

                    string val  = (rotateAxes ? _report.Cellset.GetCell(l, i).Value : _report.Cellset.GetCell(i, l).Value);
                    string fVal = (rotateAxes ? _report.Cellset.GetCell(l, i).FormattedValue : _report.Cellset.GetCell(i, l).FormattedValue);
                    double dVal = 0;
                    double.TryParse(val, System.Globalization.NumberStyles.Float, System.Globalization.NumberFormatInfo.InvariantInfo, out dVal);

                    if (setScaling)
                    {
                        dVal = (scalingMax - scalingMin == 0 ? 0 : (scalingMin + dVal) / (scalingMax - scalingMin));
                    }

                    // custom point label
                    string customLabel = string.Empty;
                    if (!showValues && !showSeries && !showCats)
                    {
                        series.Label.Visible = false;
                    }
                    else
                    {
                        customLabel  = (showSeries ? series.Name : string.Empty);
                        customLabel += (showCats ? (customLabel != string.Empty ? " | " : string.Empty) + argument : string.Empty);
                        customLabel += (showValues ? (customLabel != string.Empty ? ": " : string.Empty) + fVal : string.Empty);
                    }

                    CustomChartSeriesPoint sp = new CustomChartSeriesPoint(argument, dVal, customLabel);
                    series.Points.Add(sp);
                }
            }


            ChartTitle title = new ChartTitle();

            title.Alignment = StringAlignment.Center;
            title.Lines     = new string[] { _report.Name, _report.Description };
            _chCtrl.Titles.Add(title);

            if (_report.GraphTheme != null && _report.GraphTheme != "")
            {
                _chCtrl.AppearanceName = _report.GraphTheme;
            }
            _chCtrl.Width  = AdjustGraphSize(_report.GraphWidth);
            _chCtrl.Height = AdjustGraphSize(_report.GraphHeight);

            string imgNamePrefix = _report.GetType().Name + _report.ID.ToString();

            //delete older images of same report
            string[] filePaths = System.IO.Directory.GetFiles(FI.Common.AppConfig.TempDir, imgNamePrefix + "*.PNG");
            if (filePaths != null && filePaths.Length > 0)
            {
                for (int j = 0; j < filePaths.Length; j++)
                {
                    try
                    {
                        System.IO.File.Delete(filePaths[j]);
                    }
                    catch (Exception exc)
                    {
                        //do nothing
                        exc = null;
                    }
                }
            }


            //write to file and display, it will overwite itself if needed
            string imgName     = imgNamePrefix + "." + DateTime.Now.ToString("yyyyMMddHHssfff") + ".PNG";
            string imgVirtPath = Request.ApplicationPath + "/" + FI.Common.AppConfig.TempVirtualDir + "/" + imgName;
            string imgPhysPath = FI.Common.AppConfig.TempDir + @"\" + imgName;

            _chCtrl.ExportToImage(imgPhysPath, System.Drawing.Imaging.ImageFormat.Png);

            System.Web.UI.WebControls.Image img = new System.Web.UI.WebControls.Image();
            img.ImageUrl = imgVirtPath;
            this.cellGraph.Controls.Add(img);
        }
        private void load_data_to_chart()
        {
            m_chart.DataSource = m_ds.Tables[0];
            m_chart.SeriesDataMember = "GIOI_TINH";
            m_chart.SeriesTemplate.ArgumentDataMember = "QUOC_TICH";
            m_chart.SeriesTemplate.SummaryFunction = "COUNT()";

            var v_ssv = new PieSeriesView();
            m_chart.SeriesTemplate.View = v_ssv;
            foreach (Series item in m_chart.Series)
            {
                item.ShowInLegend = true;
                item.LegendText = item.Name;
                item.LegendTextPattern = "{S} - {A} : {VP:0.##%} ({V} Lao động)";
                item.Label.TextPattern = "{A}";
                SeriesTitle st = new SeriesTitle();
                st.Text = item.Name;
                st.Dock = ChartTitleDockStyle.Bottom;
                ((PieSeriesView)item.View).Titles.Add(st);
            }
        }
        private void LoadData(DateTime TuNgay, DateTime DenNgay)
        {
            bool DonDuoc   = false;
            bool TruotHoan = false;
            bool KhongXe   = false;

            if (chkDonDuoc.Checked)
            {
                DonDuoc = true;
            }
            if (chkTruotHoan.Checked)
            {
                TruotHoan = true;
            }
            if (chkKhongXe.Checked)
            {
                KhongXe = true;
            }

            DataTable dt = new TimKiem_BaoCao().GROUP_BC_GPS_BCCuocKhachGPSTheoQuan(TuNgay, DenNgay, DonDuoc, TruotHoan, KhongXe);

            if (dt != null && dt.Rows.Count > 0 && DSTinhThanh != null && DSTinhThanh.Rows.Count > 0)
            {
                if (DSTinhThanh.Columns.Contains("TongCuocGoi"))
                {
                    DSTinhThanh.Columns.Remove("TongCuocGoi");
                    DSTinhThanh.Columns.Add("TongCuocGoi", typeof(int));
                }
                else
                {
                    DSTinhThanh.Columns.Add("TongCuocGoi", typeof(int));
                }
                string polygon = "";
                float  KinhDo  = 0;
                float  ViDo    = 0;
                foreach (DataRow CuocKhach in dt.Rows)
                {
                    KinhDo = float.Parse(CuocKhach["GPS_KinhDo"].ToString());
                    ViDo   = float.Parse(CuocKhach["GPS_ViDo"].ToString());

                    foreach (DataRow quanHuyen in DSTinhThanh.Rows)
                    {
                        polygon = quanHuyen["Polygon"].ToString();

                        if (CheckPointInPolygon(ViDo, KinhDo, polygon))
                        {
                            int cuocGoi = 0;
                            int.TryParse(quanHuyen["TongCuocGoi"].ToString(), out cuocGoi);
                            quanHuyen["TongCuocGoi"] = cuocGoi + 1;
                        }
                    }
                }

                gridBinhQuan.SetDataBinding(null, "ListBQ");
                gridBinhQuan.DataMember = "ListBQ";
                gridBinhQuan.SetDataBinding(DSTinhThanh, "ListBQ");

                btnRefresh.Enabled     = false;
                btnExportExcel.Enabled = !btnRefresh.Enabled;
                Series series1 = new Series("Cuốc khách điều hành GPS theo quận", ViewType.Pie);
                foreach (DataRow quanHuyen in DSTinhThanh.Rows)
                {
                    int tongcuoc = 0;
                    int.TryParse(quanHuyen["TongCuocGoi"].ToString(), out tongcuoc);
                    if (tongcuoc > 0)
                    {
                        series1.Points.Add(new SeriesPoint(quanHuyen["NameVN"].ToString(), tongcuoc));
                    }
                }
                if (chartControl.Series.Count > 0)
                {
                    chartControl.Series.Clear();
                }
                chartControl.Series.Add(series1);
                series1.PointOptions.PointView = PointView.ArgumentAndValues;
                series1.PointOptions.ValueNumericOptions.Format    = NumericFormat.Percent;
                series1.PointOptions.ValueNumericOptions.Precision = 0;
                // Detect overlapping of series labels.
                ((PieSeriesLabel)series1.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;

                // Access the view-type-specific options of the series.
                PieSeriesView myView = (PieSeriesView)series1.View;

                // Show a title for the series.
                myView.Titles.Add(new SeriesTitle());
                myView.Titles[0].Text = series1.Name;

                // Specify a data filter to explode points.
                myView.ExplodeMode = PieExplodeMode.None;
                myView.ExplodedDistancePercentage = 30;
                myView.RuntimeExploding           = true;
                myView.HeightToWidthRatio         = 99;
            }
            else
            {
                gridBinhQuan.SetDataBinding(null, "ListBQ");
            }
        }
Ejemplo n.º 30
0
        string   loading_data()
        {
            DateTime dt1 = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);
            DateTime dt2 = dt1.AddMonths(1).AddDays(-1);

            SqlParameter[] p = new SqlParameter[2];
            p[0] = new SqlParameter("@first", dt1);
            p[1] = new SqlParameter("@last", dt2);
            DataSet ds = new DataSet();

            ds = cd.get_dataset("sp_loadingmaindata", p);
            //binding company data............
            dt_setting          = ds.Tables[5];
            dt_copmany          = ds.Tables[0];
            lb_companyname.Text = Properties.Settings.Default.company_name;
            if (string.IsNullOrEmpty(ds.Tables[0].Rows[0]["logo"].ToString()))
            {
                logo.Image = Properties.Resources.product_image;
            }
            else
            {
                byte[]       imagebyt = (byte[])ds.Tables[0].Rows[0]["logo"];
                MemoryStream ms       = new MemoryStream(imagebyt);
                logo.Image = Image.FromStream(ms);
            }
            //binding totals for today only...........
            lb_salescash.Text      = ds.Tables[1].Rows[0]["sales_cash"].ToString();
            lb_salesdebit.Text     = ds.Tables[1].Rows[0]["sales_debit"].ToString();
            lb_salesreturn.Text    = ds.Tables[1].Rows[0]["sales_return"].ToString();
            lb_purchasecash.Text   = ds.Tables[1].Rows[0]["purchase_cash"].ToString();
            lb_purachasedebit.Text = ds.Tables[1].Rows[0]["purchase_debit"].ToString();
            lb_purchasereturn.Text = ds.Tables[1].Rows[0]["purchase_return"].ToString();
            //binding monthly sales chart............
            chartControl1.Series.Clear();
            chartControl1.DataSource = ds.Tables[2];
            DevExpress.XtraCharts.Series sales = new DevExpress.XtraCharts.Series("", ViewType.StackedLine);
            sales.ArgumentDataMember           = "اليوم";
            sales.ValueDataMembersSerializable = "المبيعات";
            sales.ShowInLegend = true;
            sales.Name         = "";
            chartControl1.Series.Add(sales);
            //binding top 10 customer monthly sales...........
            chartControl3.Series.Clear();
            DevExpress.XtraCharts.Series customer = new DevExpress.XtraCharts.Series("Customer Sales", ViewType.Pie);
            customer.DataSource                   = ds.Tables[3];
            customer.ArgumentDataMember           = "العميل";
            customer.ValueDataMembersSerializable = "المبيعات";
            customer.ValueDataMembers.AddRange(new string[] { "المبيعات" });
            customer.ShowInLegend = true;
            chartControl3.Series.Add(customer);
            customer.Label.TextPattern = "{VP:p0} ({V:.##}LE)";
            customer.LegendTextPattern = "{A}";
            // Adjust the position of series labels.
            ((PieSeriesLabel)customer.Label).Position = PieSeriesLabelPosition.TwoColumns;

            // Detect overlapping of series labels.
            ((PieSeriesLabel)customer.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;

            // Access the view-type-specific options of the series.
            PieSeriesView myView = (PieSeriesView)customer.View;

            // Specify a data filter to explode points.
            myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Value_1,
                                                                   DataFilterCondition.GreaterThanOrEqual, 9));
            myView.ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Argument,
                                                                   DataFilterCondition.NotEqual, "Others"));
            myView.ExplodeMode = PieExplodeMode.UseFilters;
            myView.ExplodedDistancePercentage = 5;
            myView.RuntimeExploding           = true;
            // Customize the legend.
            chartControl3.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;

            //binding top10 products sales monthly.................
            chartControl2.Series.Clear();
            chartControl2.DataSource = ds.Tables[4];
            DevExpress.XtraCharts.Series products = new DevExpress.XtraCharts.Series();
            products.ArgumentDataMember           = "الصنف";
            products.ValueDataMembersSerializable = "المبيعات";
            products.ShowInLegend = true;
            products.Name         = "";
            chartControl2.Series.Add(products);
            first_open = false;
            string x = "";

            return(x);
        }
Ejemplo n.º 31
0
        private void BindChart()
        {
            string dimensionName = string.Empty;

            if (dimsionValue > 0)
            {
                dimensionName = ((Dimension)dimsionValue).ToString();
            }
            xrChart1.Series.Clear();
            if (dimsionValue <= 0 && chartType == 0)
            {
                Series pieSeries = new Series();
                pieSeries.ValueScaleType = ScaleType.Numerical;
                pieSeries.LegendPointOptions.PointView = PointView.Argument;
                pieSeries.LegendPointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
                PieSeriesView pieView = new PieSeriesView();
                pieView.ExplodedDistancePercentage = 10;
                SeriesTitle title = new SeriesTitle();
                title.Text = GetLocalizedCaption(targetName) + "-" + GetLocalizedCaption("Rate");
                pieView.Titles.Add(title);
                pieView.RuntimeExploding = true;
                pieSeries.View           = pieView;

                List <SaleOverview> dataList = (List <SaleOverview>) this.DataSource;
                var resultData = dataList.AsQueryable().GroupBy("UnitName", "it")
                                 .Select("new (Key as UnitName,Sum(" + targetName + ") as " + targetName + ")", null);

                foreach (var item in resultData)
                {
                    Type        itemType    = item.GetType();
                    SeriesPoint seriesPoint = new SeriesPoint(itemType.GetProperty("UnitName").GetValue(item, null)
                                                              , new object[] { ((object)itemType.GetProperty(targetName).GetValue(item, null)) });
                    pieSeries.Points.Add(seriesPoint);
                }
                xrChart1.Series.Add(pieSeries);

                PieSeriesLabel pieSerieslable = pieSeries.Label as PieSeriesLabel;
                if (pieSerieslable != null)
                {
                    pieSerieslable.PointOptions.PointView = PointView.ArgumentAndValues;
                    pieSerieslable.Position      = PieSeriesLabelPosition.TwoColumns;
                    pieSerieslable.TextAlignment = StringAlignment.Center;
                }
                PiePointOptions options = pieSeries.Label.PointOptions as PiePointOptions;
                if (options != null)
                {
                    options.PercentOptions.PercentageAccuracy = 2;
                    options.PercentOptions.ValueAsPercent     = true;
                    options.ValueNumericOptions.Format        = NumericFormat.Percent;
                }
            }
            else
            {
                List <SaleOverview> dataList     = (List <SaleOverview>) this.DataSource;
                List <string>       demisionList = new List <string>();

                if (!string.IsNullOrEmpty(dimensionName))
                {
                    foreach (var item in dataList)
                    {
                        Type   itemType     = item.GetType();
                        string demisionName = itemType.GetProperty(dimensionName).GetValue(item, null).ToString();
                        if (!demisionList.Contains(demisionName))
                        {
                            demisionList.Add(demisionName);
                        }
                    }
                }
                else
                {
                    demisionList.Add(string.Empty);
                }

                for (int d = 0; d < demisionList.Count; d++)
                {
                    IQueryable resultData = null;
                    if (!string.IsNullOrEmpty(dimensionName))
                    {
                        resultData = dataList.AsQueryable().Where(dimensionName + "=@0", demisionList[d]).GroupBy("UnitName", "it")
                                     .Select("new (Key as UnitName,Sum(" + targetName + ") as " + targetName + ")", null);
                    }
                    else
                    {
                        resultData = dataList.AsQueryable().GroupBy("UnitName", "it")
                                     .Select("new (Key as UnitName,Sum(" + targetName + ") as " + targetName + ")", null);
                    }

                    Series lineSeries = new Series();
                    lineSeries.Name         = demisionList[d];
                    lineSeries.ShowInLegend = true;
                    if (chartType == 1)
                    {
                        LineSeriesView lineView = new LineSeriesView();
                        lineSeries.View = lineView;
                    }
                    else if (chartType == 2)
                    {
                        BarSeriesView barView = new SideBySideBarSeriesView();
                        lineSeries.View = barView;
                    }

                    foreach (var item in resultData)
                    {
                        Type itemType = item.GetType();

                        SeriesPoint effortSeriesPoint = new SeriesPoint(itemType.GetProperty("UnitName").GetValue(item, null)
                                                                        , new object[] { ((object)(itemType.GetProperty(targetName).GetValue(item, null))) });
                        lineSeries.Points.Add(effortSeriesPoint);
                    }
                    xrChart1.Series.Add(lineSeries);
                }
                XYDiagram diagram = xrChart1.Diagram as XYDiagram;
                if (diagram == null)
                {
                    return;
                }
                diagram.AxisY.Title.Visible = true;
                if (!string.IsNullOrEmpty(dimensionName))
                {
                    diagram.AxisY.Title.Text = GetLocalizedCaption(dimensionName) + "-" + GetLocalizedCaption(targetName);
                }
                else
                {
                    diagram.AxisY.Title.Text = string.Empty;
                }
            }
        }
Ejemplo n.º 32
0
        public void SetGraphForDiskSpace(string serverName)
        {
            DataTable dt = VSWebBL.ConfiguratorBL.DominoServerDetails_BL.Ins.SetGraphForDiskSpace(serverName);

            DiskSpaceWebChartControl.DataSource = dt;

            double[] double1 = new double[dt.Rows.Count];
            double[] double2 = new double[dt.Rows.Count];

            Series series = null;

            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (series != null)
                    {
                        DiskSpaceWebChartControl.Series.Add(series);
                        DiskSpaceWebChartControl.DataBind();
                    }
                    series = new Series(dt.Rows[i]["DiskName"].ToString(), ViewType.Pie);
                    if (dt.Rows[i]["DiskFree"] != "" && dt.Rows[i]["DiskFree"] != null)
                    {
                        double1[i] = Convert.ToDouble(dt.Rows[i]["DiskFree"].ToString());
                    }
                    if (dt.Rows[i]["DiskUsed"] != "" && dt.Rows[i]["DiskUsed"] != null)
                    {
                        double2[i] = Convert.ToDouble(dt.Rows[i]["DiskUsed"].ToString());
                    }
                    series.Points.Add(new SeriesPoint("DiskFree", double1[i]));
                    series.Points.Add(new SeriesPoint("DiskUsed", double2[i]));

                    //series.Label.Visible = true;
                    series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;
                    PieSeriesLabel seriesLabel = (PieSeriesLabel)series.Label;
                    seriesLabel.Position  = PieSeriesLabelPosition.Radial;
                    seriesLabel.BackColor = System.Drawing.Color.Transparent;
                    seriesLabel.TextColor = System.Drawing.Color.Black;

                    PieSeriesView seriesView = (PieSeriesView)series.View;
                    seriesView.Titles.Add(new SeriesTitle());
                    seriesView.Titles[0].Dock = ChartTitleDockStyle.Bottom;

                    if (i == 0)
                    {
                        PiePointOptions seriesPointOptions = (PiePointOptions)series.LegendPointOptions;
                        series.LegendPointOptions.PointView             = PointView.Argument;
                        DiskSpaceWebChartControl.Series[i].ShowInLegend = true;
                        DiskSpaceWebChartControl.Series[i].LegendPointOptions.PointView = PointView.Argument;
                        DiskSpaceWebChartControl.Series[i].ShowInLegend = true;
                        DiskSpaceWebChartControl.Legend.Visible         = true;
                    }
                    else
                    {
                        DiskSpaceWebChartControl.Series[i].LegendPointOptions.PointView = PointView.Argument;
                        DiskSpaceWebChartControl.Series[i].ShowInLegend = false;
                    }

                    seriesView.Titles[0].Text     = series.Name;
                    seriesView.Titles[0].Visible  = true;
                    seriesView.Titles[0].WordWrap = true;
                }
            }
            if (series != null)
            {
                DiskSpaceWebChartControl.Series.Add(series);
                series.LegendPointOptions.PointView = PointView.Argument;
                DiskSpaceWebChartControl.DataBind();
                //DiskSpaceWebChartControl.Series[i].LegendPointOptions.PointView = PointView.Argument;
                //DiskSpaceWebChartControl.Series[i].ShowInLegend = false;
            }
        }