diff --git a/插件库/Lskj.Control/ChartControlEx.cs b/插件库/Lskj.Control/ChartControlEx.cs index 22fa45c..2d0dac9 100644 --- a/插件库/Lskj.Control/ChartControlEx.cs +++ b/插件库/Lskj.Control/ChartControlEx.cs @@ -23,6 +23,7 @@ using DevExpress.XtraEditors; using Lskj.Business.Impl; using DevExpress.XtraGrid.Columns; using System.Collections; +using Lskj.Util; namespace Lskj.Control { @@ -94,19 +95,19 @@ namespace Lskj.Control { default: case ChartType.LineChart: - CreateSeries(xValue, yValue, series); + CreateSeries(xValue, yValue, item, series); break; case ChartType.BarChart: if (chart.Chart3D == 1) - CreateSeriesBar3D(xValue, yValue, series); + CreateSeriesBar3D(xValue, yValue, item, series); else - CreateSeries(xValue, yValue, series); + CreateSeries(xValue, yValue, item, series); break; case ChartType.PieChart: if (chart.Chart3D == 1) - CreateSeriesPie3D(xValue, yValue, series); + CreateSeriesPie3D(xValue, yValue, item, series); else - CreateSeriesPie(xValue, yValue, series); + CreateSeriesPie(xValue, yValue, item, series); break; } } @@ -124,10 +125,12 @@ namespace Lskj.Control /// The col value. /// The series. /// Series. - private Series CreateSeries(string colName, string colValue, Series series) + private Series CreateSeries(string colName, string colValue, DataRow dataRow, Series series) { - - series.Points.Add(new SeriesPoint(colName + "" == "" ? "*指标为空*" : colName, colValue + "" == "" ? "0" : colValue)); + SeriesPoint seriesPoint = new SeriesPoint(colName + "" == "" ? "*指标为空*" : colName, colValue + "" == "" ? "0" : colValue); + seriesPoint.Tag = dataRow;//缓存数据源 + + series.Points.Add(seriesPoint); series.ArgumentScaleType = ScaleType.Qualitative; series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;//显示标注标签 @@ -146,9 +149,11 @@ namespace Lskj.Control /// The col value. /// The series. /// Series. - private Series CreateSeriesBar3D(String colName, String colValue, Series series) + private Series CreateSeriesBar3D(string colName, string colValue, DataRow dataRow, Series series) { - series.Points.Add(new SeriesPoint(colName + "" == "" ? "*指标为空*" : colName, new double[] { Convert.ToDouble(colValue + "" == "" ? "0" : colValue) })); + SeriesPoint seriesPoint = new SeriesPoint(colName + "" == "" ? "*指标为空*" : colName, new double[] { Convert.ToDouble(colValue + "" == "" ? "0" : colValue) }); + seriesPoint.Tag = dataRow; + series.Points.Add(seriesPoint); return series; } /// @@ -164,10 +169,12 @@ namespace Lskj.Control /// The col value. /// The series. /// Series. - private Series CreateSeriesPie3D(string colName, String colValue, Series series) + private Series CreateSeriesPie3D(string colName, string colValue, DataRow dataRow, Series series) { if (!string.IsNullOrWhiteSpace(colValue) && double.Parse(colValue) < 0) return series; - series.Points.Add(new SeriesPoint(colName + "" == "" ? "*指标为空*" : colName, new double[] { Convert.ToDouble(colValue + "" == "" ? "0" : colValue) })); + SeriesPoint seriesPoint = new SeriesPoint(colName + "" == "" ? "*指标为空*" : colName, new double[] { Convert.ToDouble(colValue + "" == "" ? "0" : colValue) }); + seriesPoint.Tag = dataRow; + series.Points.Add(seriesPoint); return series; } /// @@ -183,10 +190,12 @@ namespace Lskj.Control /// The col value. /// The series. /// Series. - private Series CreateSeriesPie(String colName, String colValue, Series series) + private Series CreateSeriesPie(string colName, string colValue, DataRow dataRow, Series series) { if (!string.IsNullOrWhiteSpace(colValue) && double.Parse(colValue) < 0) return series; - series.Points.Add(new SeriesPoint(colName + "" == "" ? "*指标为空*" : colName, new double[] { Convert.ToDouble(colValue + "" == "" ? "0" : colValue) })); + SeriesPoint seriesPoint = new SeriesPoint(colName + "" == "" ? "*指标为空*" : colName, new double[] { Convert.ToDouble(colValue + "" == "" ? "0" : colValue) }); + seriesPoint.Tag = dataRow; + series.Points.Add(seriesPoint); return series; } /// @@ -353,15 +362,10 @@ namespace Lskj.Control this.cmMain.SeriesTemplate.LabelsVisibility = DefaultBoolean.True; this.cmMain.CrosshairEnabled = DefaultBoolean.True; this.cmMain.ToolTipEnabled = DefaultBoolean.True; - - // this.cmMain.Legend.AlignmentVertical = LegendAlignmentVertical.Top; - + this.cmMain.CustomDrawCrosshair += OnCmMainCustomDrawCrosshair; + // this.cmMain.Legend.AlignmentVertical = LegendAlignmentVertical.Top; } - - - - /// /// 说明:双击图表 /// 创建人:龚宇超 @@ -459,6 +463,31 @@ namespace Lskj.Control } } + /// + /// 自定义悬浮框信息 + /// + /// + /// + private void OnCmMainCustomDrawCrosshair(object sender, CustomDrawCrosshairEventArgs e) + { + foreach (CrosshairElementGroup group in e.CrosshairElementGroups) + { + CrosshairGroupHeaderElement groupHeaderElement = group.HeaderElement; + SeriesPoint seriesPoint = groupHeaderElement.SeriesPoints.FirstOrDefault(); + if (seriesPoint != null && seriesPoint.Tag != null && seriesPoint.Tag is DataRow dataRow) + { + if (dataRow.Table.Columns.Contains("customHeaderTips")) + { + string customHeaderTips = dataRow["dataRow"] + ""; + if (!string.IsNullOrEmpty(customHeaderTips)) + { + groupHeaderElement.Text = ReplaceHelper.ReplaceRowParam(dataRow, customHeaderTips); + } + } + } + } + } + } /// @@ -483,44 +512,4 @@ namespace Lskj.Control /// /// 图表对象 /// - public class ChartModel - { - /// - /// The chart3 d - /// - public int Chart3D; - /// - /// The y axis shared - /// - public int YAxisShared; - /// - /// The y axis title - /// - public string YAxisTitle; - /// - /// The x label field - /// - public string XLabelField; - /// - /// The y value field - /// - public string YValueField; - /// - /// The chart color - /// - public string ChartColor; - /// - /// The chart type - /// - public ChartType ChartType; - /// - /// 是否为百分比 - /// - public string IsAbsolutely; - /// - /// Y轴最大刻度 - /// - public double YScale; - - } -} + public class ChartMo \ No newline at end of file