From 5f41b0bc190c8f7ba9b4f6d015b48b2a6039b7f8 Mon Sep 17 00:00:00 2001 From: Shuxia Ning <NingShuxia0927@outlook.com> Date: 星期四, 19 十二月 2024 16:43:39 +0800 Subject: [PATCH] 入参 --- WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/PumpChartImageImportCtrl.Designer.cs | 0 WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/02-edit/UniversalChartEditCtrl.cs | 8 WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/02-edit/PumpChartEditCtrl.cs | 6 WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/03-point/PumpChartPointImportCtrl.cs | 6 WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/01-view/PumpChartViewCtrl.cs | 8 WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/HStation.WinFrmUI.PhartRelation.Core.csproj | 2 WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/02-edit/UniversalEditChart.cs | 369 ++++++++++++++++++++++++------------ WinFrmUI/Yw.WinFrmUI.Phart.Core/Yw.WinFrmUI.Phart.Core.csproj | 4 WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/PumpChartImageImportCtrl.cs | 4 WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/01-view/UniversalChartViewCtrl.cs | 6 WinFrmUI/Yw.WinFrmUI.Phart.Core/00-calc-helper/文字/eTextAligment.cs | 16 + WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/00-core/PumpPoint2dExtensions.cs | 1 WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/01-view/UniversalViewChart.cs | 52 ++-- WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/PumpChartImageImportCtrl.resx | 0 WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/03-import/01-excel/UniversalChartExcelImportCtrl.cs | 4 WinFrmUI/Yw.WinFrmUI.Phart.Core/00-calc-helper/文字/AnnoAnchorPoint.cs | 83 ++++++++ WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/01-excel/PumpChartExcelImportCtrl.cs | 7 WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/03-import/02-image/UniversalChartImageImportCtrl.cs | 6 18 files changed, 399 insertions(+), 183 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/01-view/PumpChartViewCtrl.cs b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/01-view/PumpChartViewCtrl.cs index 53854d6..6152026 100644 --- a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/01-view/PumpChartViewCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/01-view/PumpChartViewCtrl.cs @@ -13,7 +13,7 @@ /// <summary> /// 缁戝畾鏁版嵁 /// </summary> - public void SetBindingData(HStation.Vmo.PhartDiagramRelationExtensionsVmo vmo, double nr) + public void SetBindingData(Yw.Vmo.PhartDiagramExGraphListVmo vmo, double nr) { var vm_list = vmo.GetPumpCurveViewMdoelList(); var vm_defult = vm_list.OrderBy(x => x.Hz).LastOrDefault(); @@ -82,15 +82,13 @@ this.pumpChart1.SetChart(vm); } - /// <summary> /// 鑾峰彇 /// </summary> - public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get() + public Yw.Vmo.PhartDiagramExGraphListVmo Get() { - return new Vmo.PhartDiagramRelationExtensionsVmo(); + return new Yw.Vmo.PhartDiagramExGraphListVmo(); } - } } diff --git a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/02-edit/PumpChartEditCtrl.cs b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/02-edit/PumpChartEditCtrl.cs index a9f0fb0..8158152 100644 --- a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/02-edit/PumpChartEditCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/02-edit/PumpChartEditCtrl.cs @@ -11,7 +11,7 @@ /// <summary> /// 缁戝畾鏁版嵁 /// </summary> - public void SetBindingData(HStation.Vmo.PhartDiagramRelationExtensionsVmo vmo, double nr) + public void SetBindingData(Yw.Vmo.PhartDiagramExGraphListVmo vmo, double nr) { } @@ -20,9 +20,9 @@ /// <summary> /// 鑾峰彇 /// </summary> - public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get() + public Yw.Vmo.PhartDiagramExGraphListVmo Get() { - return new Vmo.PhartDiagramRelationExtensionsVmo(); + return new (); } diff --git a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/01-excel/PumpChartExcelImportCtrl.cs b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/01-excel/PumpChartExcelImportCtrl.cs index 3e58653..53e0046 100644 --- a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/01-excel/PumpChartExcelImportCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/01-excel/PumpChartExcelImportCtrl.cs @@ -20,11 +20,10 @@ /// <summary> /// 鑾峰彇 /// </summary> - public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get() + public Yw.Vmo.PhartDiagramExGraphListVmo Get() { - return new Vmo.PhartDiagramRelationExtensionsVmo(); - } - + return new (); + } } } diff --git a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/UniversalChartImageImportCtrl.Designer.cs b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/PumpChartImageImportCtrl.Designer.cs similarity index 100% rename from WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/UniversalChartImageImportCtrl.Designer.cs rename to WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/PumpChartImageImportCtrl.Designer.cs diff --git a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/UniversalChartImageImportCtrl.cs b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/PumpChartImageImportCtrl.cs similarity index 78% rename from WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/UniversalChartImageImportCtrl.cs rename to WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/PumpChartImageImportCtrl.cs index 17c7e09..ffd0a4c 100644 --- a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/UniversalChartImageImportCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/PumpChartImageImportCtrl.cs @@ -20,9 +20,9 @@ /// <summary> /// 鑾峰彇 /// </summary> - public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get() + public Yw.Vmo.PhartDiagramExGraphListVmo Get() { - return new Vmo.PhartDiagramRelationExtensionsVmo(); + return new (); } diff --git a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/UniversalChartImageImportCtrl.resx b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/PumpChartImageImportCtrl.resx similarity index 100% rename from WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/UniversalChartImageImportCtrl.resx rename to WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/PumpChartImageImportCtrl.resx diff --git a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/03-point/PumpChartPointImportCtrl.cs b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/03-point/PumpChartPointImportCtrl.cs index 478c140..c21ce40 100644 --- a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/03-point/PumpChartPointImportCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/03-point/PumpChartPointImportCtrl.cs @@ -11,7 +11,7 @@ /// <summary> /// 缁戝畾鏁版嵁 /// </summary> - public void SetBindingData(double flow, double head, double speed, double? eff, double level, bool is_sxp) + public void SetBindingData(double flow, double head, double n, double eff, double level = 1, bool is_sxp = false) { } @@ -20,9 +20,9 @@ /// <summary> /// 鑾峰彇 /// </summary> - public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get() + public Yw.Vmo.PhartDiagramExGraphListVmo Get() { - return new Vmo.PhartDiagramRelationExtensionsVmo(); + return new (); } diff --git a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/01-view/UniversalChartViewCtrl.cs b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/01-view/UniversalChartViewCtrl.cs index a902d6e..481475f 100644 --- a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/01-view/UniversalChartViewCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/01-view/UniversalChartViewCtrl.cs @@ -11,7 +11,7 @@ /// <summary> /// 缁戝畾鏁版嵁 /// </summary> - public void SetBindingData(HStation.Vmo.PhartDiagramRelationExtensionsVmo vmo) + public void SetBindingData(Yw.Vmo.PhartDiagramExGraphListVmo vmo) { } @@ -20,9 +20,9 @@ /// <summary> /// 鑾峰彇 /// </summary> - public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get() + public Yw.Vmo.PhartDiagramExGraphListVmo Get() { - return new Vmo.PhartDiagramRelationExtensionsVmo(); + return new (); } diff --git a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/02-edit/UniversalChartEditCtrl.cs b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/02-edit/UniversalChartEditCtrl.cs index c028b1a..70259c7 100644 --- a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/02-edit/UniversalChartEditCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/02-edit/UniversalChartEditCtrl.cs @@ -11,7 +11,7 @@ /// <summary> /// 缁戝畾鏁版嵁 /// </summary> - public void SetBindingData(HStation.Vmo.PhartDiagramRelationExtensionsVmo vmo) + public void SetBindingData(Yw.Vmo.PhartDiagramExGraphListVmo vmo) { } @@ -20,10 +20,10 @@ /// <summary> /// 鑾峰彇 /// </summary> - public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get() + public Yw.Vmo.PhartDiagramExGraphListVmo Get() { - return new Vmo.PhartDiagramRelationExtensionsVmo(); - } + return new(); + } } diff --git a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/03-import/01-excel/UniversalChartExcelImportCtrl.cs b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/03-import/01-excel/UniversalChartExcelImportCtrl.cs index 73dd03d..d411017 100644 --- a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/03-import/01-excel/UniversalChartExcelImportCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/03-import/01-excel/UniversalChartExcelImportCtrl.cs @@ -20,9 +20,9 @@ /// <summary> /// 鑾峰彇 /// </summary> - public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get() + public Yw.Vmo.PhartDiagramExGraphListVmo Get() { - return new Vmo.PhartDiagramRelationExtensionsVmo(); + return new (); } diff --git a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/03-import/02-image/UniversalChartImageImportCtrl.cs b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/03-import/02-image/UniversalChartImageImportCtrl.cs index b186136..5e6a945 100644 --- a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/03-import/02-image/UniversalChartImageImportCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/03-import/02-image/UniversalChartImageImportCtrl.cs @@ -20,10 +20,10 @@ /// <summary> /// 鑾峰彇 /// </summary> - public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get() + public Yw.Vmo.PhartDiagramExGraphListVmo Get() { - return new Vmo.PhartDiagramRelationExtensionsVmo(); - } + return new(); + } } diff --git a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/HStation.WinFrmUI.PhartRelation.Core.csproj b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/HStation.WinFrmUI.PhartRelation.Core.csproj index 2beadf7..2749808 100644 --- a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/HStation.WinFrmUI.PhartRelation.Core.csproj +++ b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/HStation.WinFrmUI.PhartRelation.Core.csproj @@ -85,7 +85,7 @@ <Compile Update="01-pump\03-import\01-excel\PumpChartExcelImportCtrl.cs"> <SubType>UserControl</SubType> </Compile> - <Compile Update="01-pump\03-import\02-image\UniversalChartImageImportCtrl.cs"> + <Compile Update="01-pump\03-import\02-image\PumpChartImageImportCtrl.cs"> <SubType>UserControl</SubType> </Compile> <Compile Update="01-pump\03-import\03-point\PumpChartPointImportCtrl.cs"> diff --git "a/WinFrmUI/Yw.WinFrmUI.Phart.Core/00-calc-helper/\346\226\207\345\255\227/AnnoAnchorPoint.cs" "b/WinFrmUI/Yw.WinFrmUI.Phart.Core/00-calc-helper/\346\226\207\345\255\227/AnnoAnchorPoint.cs" new file mode 100644 index 0000000..0757613 --- /dev/null +++ "b/WinFrmUI/Yw.WinFrmUI.Phart.Core/00-calc-helper/\346\226\207\345\255\227/AnnoAnchorPoint.cs" @@ -0,0 +1,83 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Runtime.Serialization; + +namespace Eventech.Model +{ + [DataContract] + public class AnnoAnchorPoint : Eventech.Model.FeatPoint + { + [DataMember] + public string Text { get { return _str; } set { _str = value; } } + protected string _str = null; + + [DataMember] + public string CurveTag { get { return _curvetag; } set { _curvetag = value; } } + protected string _curvetag = ""; + + [DataMember] + public int TextAligment { get { return _textAligment; } set { _textAligment = value; } } + protected int _textAligment = 0; + + + #region 鏋勯�犲嚱鏁� + public AnnoAnchorPoint() { } + + public AnnoAnchorPoint(Eventech.Model.FeatPoint rhs) + { + this.X = rhs.X; + this.Y = rhs.Y; + } + + public AnnoAnchorPoint(AnnoAnchorPoint rhs) + { + this.Text = rhs.Text; + this.CurveTag = rhs.CurveTag; + this.TextAligment = rhs.TextAligment; + this.X = rhs.X; + this.Y = rhs.Y; + } + + public AnnoAnchorPoint(string strStore) + { + string[] strPara_split_array = strStore.Split(','); + this.X = Convert.ToDouble(strPara_split_array[0]); + this.Y = Convert.ToDouble(strPara_split_array[1]); + this.Text = strPara_split_array[2]; + this.CurveTag = strPara_split_array[3]; + this.TextAligment = Convert.ToInt32(strPara_split_array[4]); + } + #endregion + + public override string ToString() + { + return string.Format("{0}({3}) X:{1},Y:{2}", _str, x, y, _curvetag); + } + + public new AnnoAnchorPoint Clone() //瀵瑰鎻愪緵涓�涓垱寤鸿嚜韬殑娴呰〃鍓湰鐨勮兘鍔� + { + return new AnnoAnchorPoint(this); + } + + public new string ToDsString() + { + StringBuilder sb = new StringBuilder(); + + sb.AppendFormat("{0:0.00}", this.X); sb.Append(","); + sb.AppendFormat("{0:0.00}", this.Y); sb.Append(","); + sb.Append(this.Text); sb.Append(","); + sb.Append(this.CurveTag); sb.Append(","); + sb.AppendFormat("{0}", this.TextAligment); + return sb.ToString(); + } + + + + } + + + + +} diff --git "a/WinFrmUI/Yw.WinFrmUI.Phart.Core/00-calc-helper/\346\226\207\345\255\227/eTextAligment.cs" "b/WinFrmUI/Yw.WinFrmUI.Phart.Core/00-calc-helper/\346\226\207\345\255\227/eTextAligment.cs" new file mode 100644 index 0000000..fd7eb8c --- /dev/null +++ "b/WinFrmUI/Yw.WinFrmUI.Phart.Core/00-calc-helper/\346\226\207\345\255\227/eTextAligment.cs" @@ -0,0 +1,16 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Eventech.Model +{ + public enum eTextAligment + { + Right = 0, + Bottom = 1, + Left = 2, + Top = 3, + TopRight = 4 + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/00-core/PumpPoint2dExtensions.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/00-core/PumpPoint2dExtensions.cs index 49ed99e..ebaa1ea 100644 --- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/00-core/PumpPoint2dExtensions.cs +++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/00-core/PumpPoint2dExtensions.cs @@ -8,6 +8,7 @@ return series_pt; } + public static DevExpress.XtraCharts.SeriesPoint ToSeriesPoint(this Yw.Geometry.Point2d pt, bool is_empty=false) { var series_pt = new DevExpress.XtraCharts.SeriesPoint(pt.X, new double[] { pt.Y }); diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/01-view/UniversalViewChart.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/01-view/UniversalViewChart.cs index 69d7170..1cdf644 100644 --- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/01-view/UniversalViewChart.cs +++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/01-view/UniversalViewChart.cs @@ -128,11 +128,9 @@ //璁剧疆鎴愮櫧鏉垮潗鏍� _coordinate = new UniversalCoordinate(); _coordinate.GridNumberX = 30; - _coordinate.GridNumberY = 16; - //鏄剧ず鐨勫潗鏍囩嚎鍙� + _coordinate.GridNumberY = 16; _coordinate.StartLineNoY = 10; - _coordinate.EndLineNoY = 15; - //鍧愭爣鏈�灏忓�煎拰闂撮殧 + _coordinate.EndLineNoY = 15; _coordinate.CoordMinX = 0; _coordinate.CoordSpaceX = 1000; _coordinate.CoordMinY = 10; _coordinate.CoordSpaceY = 100; } @@ -226,7 +224,9 @@ /// </summary> public void SetBindingData(List<Yw.Geometry.Point2d> pt_list, string caption = "", string coordinate = null, Color? color = null) { - _pt_list = pt_list; + _pt_list = pt_list; + _coordinate = UniversalCoordinate.ToModel(coordinate); + this.chartControl1.BeginInit(); this.chartControl1.Series.Clear(); this.chartControl1.AnnotationRepository.Clear(); @@ -241,27 +241,33 @@ if (color == null) color = PumpChartDisplay.CurveColorQH; - AddLineSeries(caption, color.Value, _axis_x, _axis_y, _default_pane, pt_list); + AddLineSeries( color.Value, _axis_x, _axis_y, _default_pane, pt_list); if (!string.IsNullOrEmpty(caption)) { - AddAnnotation(caption, caption, color.Value, _axis_y, _default_pane, pt_list.Last()); + AddAnnotation( caption, color.Value, _axis_y, _default_pane, pt_list.Last()); } - _coordinate = UniversalCoordinate.ToModel(coordinate); if (_coordinate == null) - { SetCoordinate(); - } SetChartAxis(); this.chartControl1.EndInit(); _initial_data = true; } + //鏄惁鏄棤鏁堟暟鎹� + private bool IsInvalidData() + { + if (_pt_list == null || !_pt_list.Any()) + { + return true; + } + return false; + } #region Add Chart Data - private void AddPointSeries(string id, Color color, AxisXBase axis_x, AxisYBase axis_y, XYDiagramPaneBase pane, List<Yw.Geometry.Point2d> pt_list) + private void AddPointSeries( Color color, AxisXBase axis_x, AxisYBase axis_y, XYDiagramPaneBase pane, List<Yw.Geometry.Point2d> pt_list) { if (pt_list == null || !pt_list.Any()) return; @@ -277,8 +283,7 @@ view.Pane = pane; var series_pt_list = pt_list.Select(x => x.ToSeriesPoint()).ToArray(); - var series = new DevExpress.XtraCharts.Series(); - series.Tag = id; + var series = new DevExpress.XtraCharts.Series(); series.ShowInLegend = false; series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Numerical; series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False; @@ -293,7 +298,7 @@ this.chartControl1.Series.Add(series); } - private void AddLineSeries(string id, Color color, AxisXBase axis_x, AxisYBase axis_y, XYDiagramPaneBase pane, List<Yw.Geometry.Point2d> pt_list, DashStyle dash = DashStyle.Solid) + private void AddLineSeries( Color color, AxisXBase axis_x, AxisYBase axis_y, XYDiagramPaneBase pane, List<Yw.Geometry.Point2d> pt_list, DashStyle dash = DashStyle.Solid) { if (pt_list == null || !pt_list.Any()) return; @@ -311,8 +316,7 @@ view.Pane = pane; var series_pt_list = pt_list.Select(x => x.ToSeriesPoint()).ToArray(); - var series = new DevExpress.XtraCharts.Series(); - series.Tag = id; + var series = new DevExpress.XtraCharts.Series(); series.ShowInLegend = false; series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Numerical; series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False; @@ -326,7 +330,7 @@ this.chartControl1.Series.Add(series); } - private void AddAnnotation(string id, string caption, Color color, AxisYBase axis_y, XYDiagramPaneBase pane, Yw.Geometry.Point2d pt, double angle = -10) + private void AddAnnotation(string caption, Color color, AxisYBase axis_y, XYDiagramPaneBase pane, Yw.Geometry.Point2d pt, double angle = -10) { if (pt == null) return; @@ -348,8 +352,7 @@ text_annotation.AutoWidth = true; text_annotation.BackColor = System.Drawing.Color.Transparent; text_annotation.Border.Color = color; - text_annotation.ConnectorStyle = DevExpress.XtraCharts.AnnotationConnectorStyle.Line; - text_annotation.Tag = id; + text_annotation.ConnectorStyle = DevExpress.XtraCharts.AnnotationConnectorStyle.Line; text_annotation.Padding.Bottom = 1; text_annotation.Padding.Left = 1; text_annotation.Padding.Right = 1; @@ -379,9 +382,8 @@ /// 璁剧疆鍧愭爣 /// </summary> private void SetCoordinate() - { - - if (_pt_list == null || !_pt_list.Any()) + { + if (IsInvalidData()) { InitialCoordinate(); return; @@ -407,7 +409,7 @@ /// </summary> private void SetChartAxis() { - if (_coordinate == null) + if (_coordinate == null || IsInvalidData()) { _axis_x.Visibility = DefaultBoolean.False; _axis_x.GridLines.Visible = false; @@ -478,7 +480,7 @@ _const_line_y.Visible = true; _const_line_y.Title.Visible = true; } - if (_pt_list == null || !_pt_list.Any()) + if (this.IsInvalidData()) return; var min_x = _pt_list.Min(x => x.X); @@ -512,7 +514,7 @@ { if (!_line_visible) return; - if (_pt_list == null || !_pt_list.Any()) + if (IsInvalidData()) return; var min_y = _pt_list.Min(x => x.Y); diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/02-edit/UniversalEditChart.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/02-edit/UniversalEditChart.cs index 18a2f0c..a51d25f 100644 --- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/02-edit/UniversalEditChart.cs +++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/02-edit/UniversalEditChart.cs @@ -17,11 +17,9 @@ #region Private Variable private XYDiagram _diagram; + private XYDiagramDefaultPane _default_pane; private AxisX _axis_x; - private AxisY _axis_y; - - private Series _series_line; - private Series _series_point; + private AxisY _axis_y; private List<Yw.Geometry.Point2d> _point_pt_list; private List<Yw.Geometry.Point2d> _line_pt_list; @@ -114,27 +112,37 @@ _diagram = (XYDiagram)chartControl1.Diagram; + _default_pane=_diagram.DefaultPane; _axis_x = _diagram.AxisX; //_axis_x.SetAxisXQDisplay(); _axis_y = _diagram.AxisY; //_axis_y.SetAxisYQLDisplay(); - _series_line = this.chartControl1.GetSeriesByName("SeriesLine"); - //_series_line.SetCurveQLDisplay(); - - _series_point = this.chartControl1.GetSeriesByName("SeriesPoint"); - //_series_point.SetPointQLDisplay(); + _axis_x.Visibility = DefaultBoolean.False; _axis_x.GridLines.Visible = false; _axis_y.Visibility = DefaultBoolean.False; _axis_y.GridLines.Visible = false; - - _series_point.Visible = false; + this.chartControl1.SetChartMonoColorDisplay(); } + /// <summary> + /// 鍒濆鍖栧潗鏍囪酱 + /// </summary> + private void InitialCoordinate() + { + //璁剧疆鎴愮櫧鏉垮潗鏍� + _coordinate = new UniversalCoordinate(); + _coordinate.GridNumberX = 30; + _coordinate.GridNumberY = 16; + _coordinate.StartLineNoY = 10; + _coordinate.EndLineNoY = 15; + _coordinate.CoordMinX = 0; _coordinate.CoordSpaceX = 1000; + _coordinate.CoordMinY = 10; _coordinate.CoordSpaceY = 100; + } #endregion Initial @@ -143,93 +151,211 @@ /// <summary> /// 缁戝畾鏁版嵁 /// </summary> - public void SetBindingData(List<Yw.Geometry.Point2d> point_pt_list, List<Yw.Geometry.Point2d> line_pt_list, string coordinate = null) + public void SetBindingData(List<Yw.Geometry.Point2d> point_pt_list, List<Yw.Geometry.Point2d> line_pt_list, string coordinate = null, Color? color = null) { _initial_data = false; _point_pt_list = point_pt_list; _line_pt_list = line_pt_list; _coordinate = UniversalCoordinate.ToModel(coordinate); - if (line_pt_list == null || !line_pt_list.Any()) + + this.chartControl1.BeginInit(); + this.chartControl1.Series.Clear(); + this.chartControl1.AnnotationRepository.Clear(); + this.chartControl1.Legend.CustomItems.Clear(); + if (IsInvalidData()) { + _initial_data = false; + this.chartControl1.EndInit(); return; } - if (point_pt_list == null || !point_pt_list.Any()) - { - point_pt_list = line_pt_list.Select(x => x.Clone()).ToList(); - } - - _initial_data = true; - UpdateChart(); - } - - #endregion - - #region Update - - /// <summary> - /// 鏇存柊鏇茬嚎 - /// </summary> - public void UpdateCurve(List<Yw.Geometry.Point2d> point_pt_list) - { - if (point_pt_list == null || !point_pt_list.Any()) - return; - - _point_pt_list = point_pt_list; - _line_pt_list = point_pt_list.GetFitPointList(); - - UpdateChart(true); - } - - /// <summary> - /// 鏇存柊鍥捐〃 - /// </summary> - /// <param name="calc_coordinate">璁$畻鍧愭爣</param> - public void UpdateChart(bool calc_coordinate = false) - { - if (calc_coordinate || _coordinate == null) - { - //涓嶅己杩绠�,灏辩敤涓婃鏇存柊鐨勫潗鏍囩郴 - CalcCoordinate(); - } - - CalcChartAxis(); - - CalcSeries(); - } - - #endregion Update - - #region Calc - - /// <summary> - /// 璁$畻鍧愭爣 - /// </summary> - public void CalcCoordinate() - { - if (_line_pt_list == null || _line_pt_list.Count < 4) - { - //璁剧疆鎴愮櫧鏉垮潗鏍� - _coordinate = new UniversalCoordinate(); - _coordinate.GridNumberX = 30; - _coordinate.GridNumberY = 16; - //鏄剧ず鐨勫潗鏍囩嚎鍙� - _coordinate.StartLineNoY = 10; - _coordinate.EndLineNoY = 15; - //鍧愭爣鏈�灏忓�煎拰闂撮殧 - _coordinate.CoordMinX = 0; _coordinate.CoordSpaceX = 1000; - _coordinate.CoordMinY = 10; _coordinate.CoordSpaceY = 100; - return; - } - - _coordinate = UniversalCoordinate.CalcCoordinate(_line_pt_list); - } - - /// <summary> - /// 璁$畻鍥捐〃杞� - /// </summary> - public void CalcChartAxis() - { + + AddPointSeries(color.Value, _axis_x, _axis_y, _default_pane, _point_pt_list); + AddLineSeries(color.Value, _axis_x, _axis_y, _default_pane, _line_pt_list); if (_coordinate == null) + SetCoordinate(); + + SetChartAxis(); + this.chartControl1.EndInit(); + _initial_data = true; + + } + + //鏄惁鏄棤鏁堟暟鎹� + private bool IsInvalidData() + { + if (_point_pt_list == null || !_point_pt_list.Any()) + { + return true; + } + if (_line_pt_list == null || !_line_pt_list.Any()) + { + return true; + } + return false; + } + + #region Add Chart Data + + private void AddPointSeries(Color color, AxisXBase axis_x, AxisYBase axis_y, XYDiagramPaneBase pane, List<Yw.Geometry.Point2d> pt_list) + { + if (pt_list == null || !pt_list.Any()) + return; + + var view = new DevExpress.XtraCharts.PointSeriesView(); + view.PointMarkerOptions.Size = 8; + view.PointMarkerOptions.Kind = MarkerKind.Circle; + view.PointMarkerOptions.BorderColor = color; + view.Color = color; + view.AxisX = axis_x; + view.AxisY = axis_y; + view.EmptyPointOptions.Color = Color.Transparent; + view.Pane = pane; + + var series_pt_list = new List<SeriesPoint>(); + for (int i = 0; i < pt_list.Count; i++) + { + var pt = pt_list[i]; + var series_pt = new DevExpress.XtraCharts.SeriesPoint(pt.X, new double[] { pt.Y }); + series_pt_list.Add(series_pt); + } + + var series = new DevExpress.XtraCharts.Series(); + series.ShowInLegend = false; + series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Numerical; + series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False; + series.CrosshairEnabled = DefaultBoolean.False; + series.CrosshairLabelVisibility = DefaultBoolean.False; + series.ToolTipEnabled = DefaultBoolean.False; + series.SeriesPointsSorting = SortingMode.None; + series.Visible = true; + series.View = view; + series.CrosshairLabelPattern = "{A}"; + series.Points.AddRange(series_pt_list); + this.chartControl1.Series.Add(series); + } + + private void AddLineSeries(Color color, AxisXBase axis_x, AxisYBase axis_y, XYDiagramPaneBase pane, List<Yw.Geometry.Point2d> pt_list, DashStyle dash = DashStyle.Solid) + { + if (pt_list == null || !pt_list.Any()) + return; + + var view = new DevExpress.XtraCharts.LineSeriesView(); + view.LineStyle.DashStyle = dash; + view.LineStyle.LineJoin = System.Drawing.Drawing2D.LineJoin.Round; + view.LineStyle.Thickness = 2; + view.Color = color; + view.EnableAntialiasing = DefaultBoolean.True; + view.MarkerVisibility = DefaultBoolean.False; + view.AxisX = axis_x; + view.AxisY = axis_y; + view.EmptyPointOptions.Color = Color.Transparent; + view.Pane = pane; + + var series_pt_list = pt_list.Select(x => x.ToSeriesPoint()).ToArray(); + var series = new DevExpress.XtraCharts.Series(); + series.ShowInLegend = false; + series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Numerical; + series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False; + series.CrosshairEnabled = DefaultBoolean.False; + series.ToolTipEnabled = DefaultBoolean.False; + series.SeriesPointsSorting = SortingMode.None; + series.Visible = true; + series.View = view; + series.Points.AddRange(series_pt_list); + + this.chartControl1.Series.Add(series); + } + + private void AddAnnotation(string caption, Color color, AxisYBase axis_y, XYDiagramPaneBase pane, Yw.Geometry.Point2d pt, double angle = -10) + { + if (pt == null) + return; + var anchor_pt = pt; + var pane_anchor_pt = new DevExpress.XtraCharts.PaneAnchorPoint(); + pane_anchor_pt.Pane = pane; + pane_anchor_pt.AxisYCoordinate.Axis = axis_y; + pane_anchor_pt.AxisXCoordinate.AxisValue = anchor_pt.X; + pane_anchor_pt.AxisYCoordinate.AxisValue = anchor_pt.Y; + + var relative_position = new DevExpress.XtraCharts.RelativePosition(); + relative_position.Angle = angle; + relative_position.ConnectorLength = 20; + + var text_annotation = new TextAnnotation(); + text_annotation.Border.Visibility = DefaultBoolean.False; + text_annotation.AnchorPoint = pane_anchor_pt; + text_annotation.AutoHeight = true; + text_annotation.AutoWidth = true; + text_annotation.BackColor = System.Drawing.Color.Transparent; + text_annotation.Border.Color = color; + text_annotation.ConnectorStyle = DevExpress.XtraCharts.AnnotationConnectorStyle.Line; + text_annotation.Padding.Bottom = 1; + text_annotation.Padding.Left = 1; + text_annotation.Padding.Right = 1; + text_annotation.Padding.Top = 1; + text_annotation.RuntimeMoving = true; + text_annotation.RuntimeAnchoring = false; + text_annotation.RuntimeResizing = false; + text_annotation.RuntimeRotation = false; + text_annotation.Text = caption; + text_annotation.TextColor = color; + text_annotation.ShapePosition = relative_position; + text_annotation.Visible = true; + + this.chartControl1.AnnotationRepository.Add(text_annotation); + } + + #endregion + + #endregion + + + + #region Set Axis + + private double _minX, _maxX; + private double _maxY = 0, _minY = 10000; + + /// <summary> + /// 璁剧疆鍧愭爣 + /// </summary> + private void SetCoordinate() + { + if (IsInvalidData()) + { + InitialCoordinate(); + return; + } + + _minX = _point_pt_list.Min(x => x.X); + _maxX = _point_pt_list.Max(x => x.X); + + _minY = _point_pt_list.Min(x => x.Y); + _maxY = _point_pt_list.Max(x => x.Y); + + _minX = Math.Min(_line_pt_list.Min(x => x.X), _minX); + _maxX = Math.Min(_line_pt_list.Max(x => x.X), _maxX); + + _minY = Math.Min(_line_pt_list.Min(x => x.Y), _minY); + _maxY = Math.Min(_line_pt_list.Max(x => x.Y), _maxY); + + + _coordinate = UniversalCoordinate.CalcCoordinate(_minX, _maxX, _minY, _maxY); + if (_coordinate == null) + return; + if (_coordinate.CoordMinX + _coordinate.CoordSpaceX * this._coordinate.GridNumberX < _maxX * 1.05) + { + _coordinate.GridNumberX++; + } + + } + + /// <summary> + /// 璁剧疆鍥捐〃杞� + /// </summary> + public void SetChartAxis() + { + if (_coordinate == null || IsInvalidData()) { _axis_x.Visibility = DefaultBoolean.False; _axis_x.GridLines.Visible = false; @@ -237,52 +363,39 @@ _axis_y.GridLines.Visible = false; return; } - if (_line_pt_list != null && _line_pt_list.Any()) - { + + //璁$畻鍒诲害 X + var axis_x_labels = new List<CustomAxisLabel>(); + var dis_x = _coordinate.CoordMinX; + for (int i = 0; i < _coordinate.GridNumberX + 1; i++) + { + axis_x_labels.Add(new CustomAxisLabel(dis_x.ToString("N0"), dis_x)); + dis_x = dis_x + _coordinate.CoordSpaceX; } - //娴侀噺 - if (_line_pt_list != null) + _axis_x.CustomLabels.Clear(); + _axis_x.CustomLabels.AddRange(axis_x_labels.ToArray()); + _axis_x.Visibility = DefaultBoolean.True; + _axis_x.GridLines.Visible = true; + + + //璁$畻鍒诲害 Y + var axis_y_labels = new List<CustomAxisLabel>(); + var dis_y = _coordinate.CoordMinY + _coordinate.CoordSpaceY * _coordinate.StartLineNoY; + for (int i = _coordinate.StartLineNoY; i < _coordinate.EndLineNoY + 1; i++) { - //璁$畻鍒诲害 - var labels = new List<CustomAxisLabel>(); - var disX = _coordinate.CoordMinX; - for (int i = 0; i < _coordinate.GridNumberX + 1; i++) - { - labels.Add(new CustomAxisLabel(disX.ToString("N0"), disX)); - disX = disX + _coordinate.CoordSpaceX; - } - - //鍧愭爣鍒诲害 - _axis_x.CustomLabels.Clear(); - _axis_x.CustomLabels.AddRange(labels.ToArray()); - _axis_x.Visibility = DefaultBoolean.True; - _axis_x.GridLines.Visible = true; - _axis_x.SetAxisRange(_coordinate.CoordMinX, _coordinate.CoordMinX + _coordinate.GridNumberX * _coordinate.CoordSpaceX); + axis_y_labels.Add(new CustomAxisLabel(dis_y.ToString(), dis_y)); + dis_y = dis_y + _coordinate.CoordSpaceY; } - - { - //璁$畻鍒诲害 - var labels = new List<CustomAxisLabel>(); - var display_head = _coordinate.CoordMinY + _coordinate.CoordSpaceY * _coordinate.StartLineNoY; - for (int i = _coordinate.StartLineNoY; i < _coordinate.EndLineNoY + 1; i++) - { - labels.Add(new CustomAxisLabel(display_head.ToString(), display_head)); - display_head = display_head + _coordinate.CoordSpaceY; - } + _axis_y.CustomLabels.Clear(); + _axis_y.CustomLabels.AddRange(axis_y_labels.ToArray()); + _axis_y.Visibility = DefaultBoolean.True; + _axis_y.GridLines.Visible = true; - _axis_y.CustomLabels.Clear(); - _axis_y.CustomLabels.AddRange(labels.ToArray()); - _axis_y.Visibility = DefaultBoolean.True; - _axis_y.GridLines.Visible = true; - } - - - _axis_x.SetAxisRange(_coordinate.CoordMinX, _coordinate.CoordMinX + _coordinate.GridNumberX * _coordinate.CoordSpaceX); + _axis_x.SetAxisRange(_coordinate.CoordMinX, _coordinate.DispMaxX()); _axis_y.SetAxisRange(_coordinate.DispMinY(), _coordinate.DispMaxY()); - } /// <summary> @@ -426,7 +539,7 @@ } DefinePointChangedEvent?.Invoke(_point_pt_list); - CalcChartAxis(); + SetChartAxis(); } #endregion ChartEvent diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/Yw.WinFrmUI.Phart.Core.csproj b/WinFrmUI/Yw.WinFrmUI.Phart.Core/Yw.WinFrmUI.Phart.Core.csproj index 12697b2..81b2e8d 100644 --- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/Yw.WinFrmUI.Phart.Core.csproj +++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/Yw.WinFrmUI.Phart.Core.csproj @@ -9,6 +9,7 @@ <ItemGroup> <Compile Remove="00-calc-helper\A涓存椂璧勬枡\**" /> + <Compile Remove="00-calc-helper\鏂囧瓧\**" /> <Compile Remove="00-calc-helper\绛夋晥绾縗**" /> <Compile Remove="01-pump\00- - 澶嶅埗\**" /> <Compile Remove="01-pump\02-multi\02-work\**" /> @@ -18,6 +19,7 @@ <Compile Remove="bak\**" /> <Compile Remove="v2\**" /> <EmbeddedResource Remove="00-calc-helper\A涓存椂璧勬枡\**" /> + <EmbeddedResource Remove="00-calc-helper\鏂囧瓧\**" /> <EmbeddedResource Remove="00-calc-helper\绛夋晥绾縗**" /> <EmbeddedResource Remove="01-pump\00- - 澶嶅埗\**" /> <EmbeddedResource Remove="01-pump\02-multi\02-work\**" /> @@ -27,6 +29,7 @@ <EmbeddedResource Remove="bak\**" /> <EmbeddedResource Remove="v2\**" /> <None Remove="00-calc-helper\A涓存椂璧勬枡\**" /> + <None Remove="00-calc-helper\鏂囧瓧\**" /> <None Remove="00-calc-helper\绛夋晥绾縗**" /> <None Remove="01-pump\00- - 澶嶅埗\**" /> <None Remove="01-pump\02-multi\02-work\**" /> @@ -36,6 +39,7 @@ <None Remove="bak\**" /> <None Remove="v2\**" /> <Page Remove="00-calc-helper\A涓存椂璧勬枡\**" /> + <Page Remove="00-calc-helper\鏂囧瓧\**" /> <Page Remove="00-calc-helper\绛夋晥绾縗**" /> <Page Remove="01-pump\00- - 澶嶅埗\**" /> <Page Remove="01-pump\02-multi\02-work\**" /> -- Gitblit v1.9.3