using DevExpress.Utils; using DevExpress.XtraCharts; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace FocasCncCollect.Helper { public static class ChartUtils { /// /// 增加数据筛选 /// /// Series /// 列名称 /// 列名称对应的筛选数值 /// DataFilterCondition枚举 public static void AddDataFilter(this SeriesBase series, string columnName, object value, DataFilterCondition dataFilterCondition) { //series.DataFilters.Add(new DataFilter(columnName, value.GetType().FullName, dataFilterCondition, value)); } /// /// 设置X轴Lable角度 /// /// ChartControl /// 角度 public static void SetXLableAngle(this ChartControl chart, int angle) { XYDiagram _xyDiagram = (XYDiagram)chart.Diagram; if (_xyDiagram != null) _xyDiagram.AxisX.Label.Angle = angle; } /// /// 设置Y轴Lable角度 /// /// ChartControl /// 角度 public static void SetYLableAngle(this ChartControl chart, int angle) { XYDiagram _xyDiagram = (XYDiagram)chart.Diagram; _xyDiagram.AxisY.Label.Angle = angle; } /// /// 设置ColorEach /// /// ChartControl /// 是否设置成ColorEach public static void SetColorEach(this Series series, bool colorEach) { SeriesViewColorEachSupportBase colorEachView = (SeriesViewColorEachSupportBase)series.View; if (colorEachView != null) { colorEachView.ColorEach = colorEach; } } /// /// 设置是否显示十字标线 /// /// ChartControl /// 是否显示十字标线 public static void SetCrosshair(this ChartControl chart, bool crosshair) { chart.CrosshairEnabled = crosshair ? DefaultBoolean.True : DefaultBoolean.False; chart.CrosshairOptions.ShowArgumentLabels = crosshair; chart.CrosshairOptions.ShowArgumentLine = crosshair; chart.CrosshairOptions.ShowValueLabels = crosshair; chart.CrosshairOptions.ShowValueLine = crosshair; } /// /// 新增ChartControl的Title文字 /// /// ChartControl /// Title文字 public static void AddTitle(this ChartControl chart, string title) { ChartTitle _title = new ChartTitle(); _title.Text = title; chart.Titles.Add(_title); } /// /// 饼状Series设置成百分比显示 /// /// Series public static void SetPiePercentage(this Series series) { if (series.View is PieSeriesView) { #region 过时 //((PiePointOptions)series.PointOptions).PercentOptions.ValueAsPercent = true; //((PiePointOptions)series.PointOptions).ValueNumericOptions.Format = NumericFormat.Percent; //((PiePointOptions)series.PointOptions).ValueNumericOptions.Precision = 0; #endregion series.Label.TextPattern = "{A:0.00%}"; } } /// /// 将X轴格式化成时间轴 /// /// ChartControl /// X轴刻度单位 /// X轴刻度间距的单位 public static void SetTimeAxisX(this ChartControl chart, DateTimeMeasureUnit dateTimeMeasureUnit, DateTimeGridAlignment dateTimeGridAlignment) { XYDiagram _diagram = (XYDiagram)chart.Diagram; if (_diagram != null) { _diagram.AxisX.DateTimeScaleOptions.MeasureUnit = dateTimeMeasureUnit; _diagram.AxisX.DateTimeScaleOptions.GridAlignment = dateTimeGridAlignment; } } /// /// 将X轴格式化成时间轴 /// /// ChartControl /// X轴刻度单位 /// X轴刻度间距的单位 /// 时间格式;eg:yyyy-MM public static void SetTimeAxisX(this ChartControl chart, DateTimeMeasureUnit dateTimeMeasureUnit, DateTimeGridAlignment dateTimeGridAlignment, string formatString) { XYDiagram _diagram = (XYDiagram)chart.Diagram; if (_diagram != null) { _diagram.AxisX.DateTimeScaleOptions.MeasureUnit = dateTimeMeasureUnit; _diagram.AxisX.DateTimeScaleOptions.GridAlignment = dateTimeGridAlignment; //_diagram.AxisX.DateTimeOptions.Format = DateTimeFormat.Custom; _diagram.AxisX.Label.TextPattern = formatString; } } } }