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); }
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; } }
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(); } }
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; }
/// <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; }
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; } }
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); }
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; }
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); }
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; }
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); }
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); }
/// <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; }
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}"; //} }
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; }
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; } }
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); }
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; } }
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; }
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米" }; }
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."); } }
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; } } }
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"); } }
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); }
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; } } }
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; } }