From 294b81166f21e12247e784d6bf404f5f34b2ee19 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期三, 19 二月 2025 12:51:14 +0800
Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/report/SimulationCommonReport.cs |  185 ++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 171 insertions(+), 14 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/report/SimulationCommonReport.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/report/SimulationCommonReport.cs
index 289f0e4..038e653 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/report/SimulationCommonReport.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/report/SimulationCommonReport.cs
@@ -1,4 +1,5 @@
-锘縰sing DevExpress.XtraReports.UI;
+锘縰sing DevExpress.XtraCharts;
+using DevExpress.XtraReports.UI;
 using System;
 using System.Collections;
 using System.ComponentModel;
@@ -21,6 +22,10 @@
             //A4璁剧疆 827 1169
             this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4;
             this.Margins = new DevExpress.Drawing.DXMargins(50, 50, 50, 50);
+
+            //鍐呭瀹藉害
+            float contentWidth = 727F;//鍐呭瀹藉害
+            float firstCaptionHeight = 30F;//涓�绾ф爣棰橀珮搴�
 
             //727 1069
 
@@ -75,20 +80,9 @@
 
             #region 涓�銆侀」鐩杩�
 
-            var labForDescription = new XRLabel();
-            labForDescription.AnchorHorizontal = (DevExpress.XtraReports.UI.HorizontalAnchorStyles.Left | DevExpress.XtraReports.UI.HorizontalAnchorStyles.Right);
-            labForDescription.Font = new DevExpress.Drawing.DXFont("Arial", 12F, DevExpress.Drawing.DXFontStyle.Bold);
-            labForDescription.LocationFloat = new DevExpress.Utils.PointFloat(0F, locationY);
-            labForDescription.Multiline = true;
-            labForDescription.Name = "labForDescription";
-            labForDescription.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
-            labForDescription.SizeF = new System.Drawing.SizeF(727F, 25F);
-            labForDescription.StylePriority.UseFont = false;
-            labForDescription.StylePriority.UseTextAlignment = false;
-            labForDescription.Text = "涓�銆侀」鐩杩�";
-            labForDescription.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+            var labForDescription = CreateFirstCaption("涓�銆侀」鐩杩�", contentWidth, firstCaptionHeight, 0F, locationY);
             this.Detail.Controls.Add(labForDescription);
-            locationY += 25F;
+            locationY += firstCaptionHeight;
 
             #endregion
 
@@ -202,15 +196,178 @@
 
                 // 灏嗚〃鏍兼坊鍔犲埌Detail
                 this.Detail.Controls.Add(tableForPumpList);
+                locationY += 30F;
+                locationY += 30F * vm.PumpList.Count;
             }
 
+            if (vm.WorkingList != null && vm.WorkingList.Count > 0)
+            {
+                foreach (var working in vm.WorkingList)
+                {
+                    //XRChart chart = new XRChart();
+                    //chart.LocationF = new DevExpress.Utils.PointFloat(0F, locationY);
+                    //chart.WidthF = contentWidth;
+                    //chart.HeightF = 300F;
+
+                    //// 鍒涘缓涓�涓嚎绯诲垪
+                    //Series series = new Series("Series1", ViewType.Spline);
+
+                    //// 娣诲姞鏁版嵁鐐�
+                    //foreach (var item in working.PumpAnaly.Items[0].RatedCurveQH)
+                    //{
+                    //    series.Points.Add(new SeriesPoint(item.X, item.Y));
+                    //}
+
+                    //chart.Series.Add(series);
+
+                    //Detail.Controls.Add(chart);
+
+                    var accuracyScaleChart = CreateAccuracyScale(working.Accuracy.Scale, 300F, 250F, locationY);
+                    Detail.Controls.Add(accuracyScaleChart);
+                    var accuracyFlowChart = CreateAccuracyItem(working.Accuracy.Flow?.AvgError ?? 0, 213F, 250F, 300F, locationY);
+                    Detail.Controls.Add(accuracyFlowChart);
+                    var accuracyPressChart = CreateAccuracyItem(working.Accuracy.Press?.AvgError ?? 0, 213F, 250F, 513F, locationY);
+                    Detail.Controls.Add(accuracyPressChart);
+
+                    //var chart = new XRChart();
+                    //chart.BackColor = System.Drawing.Color.Transparent;
+                    //chart.BorderColor = System.Drawing.Color.Black;
+                    //chart.Borders = DevExpress.XtraPrinting.BorderSide.None;
+                    ////chart.Legend.LegendID = -1;
+                    //chart.Legend.Name = "Default Legend";
+                    //chart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
+                    //chart.LocationFloat = new DevExpress.Utils.PointFloat(20F, locationY);
+                    //chart.Name = "xrChart6";
+                    //chart.Padding = new DevExpress.XtraPrinting.PaddingInfo(10, 10, 20, 20, 96F);
+                    //chart.PaletteRepository.Add("Palette 1", new DevExpress.XtraCharts.Palette("Palette 1", DevExpress.XtraCharts.PaletteScaleMode.Repeat, new DevExpress.XtraCharts.PaletteEntry[] {
+                    //new DevExpress.XtraCharts.PaletteEntry(System.Drawing.Color.FromArgb(((int)(((byte)(103)))), ((int)(((byte)(174)))), ((int)(((byte)(197))))), System.Drawing.Color.FromArgb(((int)(((byte)(103)))), ((int)(((byte)(174)))), ((int)(((byte)(197)))))),
+                    //new DevExpress.XtraCharts.PaletteEntry(System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(236)))), ((int)(((byte)(240))))), System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(236)))), ((int)(((byte)(240))))))}));
+                    //chart.PaletteName = "Palette 1";
 
 
 
+                    //var series = new DevExpress.XtraCharts.Series();
+                    //series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False;
+                    //series.Name = "Series 1";
+                    ////series.SeriesID = 0;
+                    //var doughnutSeriesView = new DevExpress.XtraCharts.DoughnutSeriesView();
+                    //doughnutSeriesView.HoleRadiusPercent = 45;
+                    //doughnutSeriesView.TotalLabel.DXFont = new DevExpress.Drawing.DXFont("Tahoma", 12F, DevExpress.Drawing.DXFontStyle.Bold);
+                    //doughnutSeriesView.TotalLabel.Visible = true;
+                    //series.View = doughnutSeriesView;
+                    //chart.SeriesSerializable = new DevExpress.XtraCharts.Series[] { series };
+                    //chart.SizeF = new System.Drawing.SizeF(175F, 185F);
+                    //chart.StylePriority.UseBackColor = false;
+                    //chart.StylePriority.UsePadding = false;
+
+                    //series.Points.Add(new SeriesPoint("璇樊", 15));
+                    //series.Points.Add(new SeriesPoint("鍏朵粬", 85));
+
+                    //doughnutSeriesView.TotalLabel.TextPattern = string.Format("{0:0%}", 0.15);
+
+                    //this.Detail.Controls.Add(chart);
 
 
+                }
+            }
         }
 
+        //鍒涘缓涓�绾ф爣棰�
+        private XRLabel CreateFirstCaption(string caption, float sizeX, float sizeY, float locationX, float locationY)
+        {
+            var lab = new XRLabel();
+            lab.AnchorHorizontal = (DevExpress.XtraReports.UI.HorizontalAnchorStyles.Left | DevExpress.XtraReports.UI.HorizontalAnchorStyles.Right);
+            lab.Font = new DevExpress.Drawing.DXFont("Arial", 12F, DevExpress.Drawing.DXFontStyle.Bold);
+            lab.LocationFloat = new DevExpress.Utils.PointFloat(locationX, locationY);
+            lab.Multiline = true;
+            lab.Name = "lab";
+            lab.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+            lab.SizeF = new System.Drawing.SizeF(sizeX, sizeY);
+            lab.StylePriority.UseFont = false;
+            lab.StylePriority.UseTextAlignment = false;
+            lab.Text = caption;
+            lab.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+            return lab;
+        }
+
+        //鍒涘缓绮惧害姣斾緥
+        private XRChart CreateAccuracyScale(SimulationPrintAccuracyScaleViewModel scale, float sizeX, float sizeY, float locationY)
+        {
+            var chart = new XRChart();
+            chart.BackColor = System.Drawing.Color.Transparent;
+            chart.BorderColor = System.Drawing.Color.Black;
+            chart.Borders = DevExpress.XtraPrinting.BorderSide.All;
+            chart.Legend.Name = "Default Legend";
+            chart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
+            chart.LocationFloat = new DevExpress.Utils.PointFloat(0F, locationY);
+            chart.Name = "chart";
+            chart.Padding = new DevExpress.XtraPrinting.PaddingInfo(10, 10, 20, 20, 100F);
+
+            var series = new DevExpress.XtraCharts.Series();
+            series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;
+            series.Name = "Series";
+            var doughnutSeriesView = new DevExpress.XtraCharts.DoughnutSeriesView();
+            doughnutSeriesView.HoleRadiusPercent = 45;
+            doughnutSeriesView.TotalLabel.DXFont = new DevExpress.Drawing.DXFont("Tahoma", 12F, DevExpress.Drawing.DXFontStyle.Bold);
+            doughnutSeriesView.TotalLabel.Visible = true;
+            series.View = doughnutSeriesView;
+            series.Label.LineVisibility = DevExpress.Utils.DefaultBoolean.True;
+            series.Label.TextPattern = "{A}锛歿VP:P1}";
+            chart.SeriesSerializable = new DevExpress.XtraCharts.Series[] { series };
+            chart.SizeF = new System.Drawing.SizeF(sizeX, sizeY);
+            chart.StylePriority.UseBackColor = false;
+            chart.StylePriority.UsePadding = false;
+
+            if (scale.Items != null && scale.Items.Count > 0)
+            {
+                foreach (var item in scale.Items)
+                {
+                    series.Points.Add(new SeriesPoint(item.EvaluateItem, item.EvaluateCount));
+                }
+            }
+            doughnutSeriesView.TotalLabel.TextPattern = string.Format("{0:0%}", (scale.AvgError ?? 0) / 100F);
+            return chart;
+        }
+
+        //鍒涘缓绮惧害椤�
+        private XRChart CreateAccuracyItem(double value, float sizeX, float sizeY, float locationX, float locationY)
+        {
+            var chart = new XRChart();
+            chart.BackColor = System.Drawing.Color.Transparent;
+            chart.BorderColor = System.Drawing.Color.Black;
+            chart.Borders = DevExpress.XtraPrinting.BorderSide.All;
+            chart.Legend.Name = "Default Legend";
+            chart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
+            chart.LocationFloat = new DevExpress.Utils.PointFloat(locationX, locationY);
+            chart.Name = "chart";
+            chart.Padding = new DevExpress.XtraPrinting.PaddingInfo(10, 10, 20, 20, 100F);
+            chart.PaletteRepository.Add("Palette 1", new DevExpress.XtraCharts.Palette("Palette 1", DevExpress.XtraCharts.PaletteScaleMode.Repeat, new DevExpress.XtraCharts.PaletteEntry[] {
+            new DevExpress.XtraCharts.PaletteEntry(System.Drawing.Color.FromArgb(((int)(((byte)(103)))), ((int)(((byte)(174)))), ((int)(((byte)(197))))), System.Drawing.Color.FromArgb(((int)(((byte)(103)))), ((int)(((byte)(174)))), ((int)(((byte)(197)))))),
+            new DevExpress.XtraCharts.PaletteEntry(System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(236)))), ((int)(((byte)(240))))), System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(236)))), ((int)(((byte)(240))))))}));
+            chart.PaletteName = "Palette 1";
+
+            var series = new DevExpress.XtraCharts.Series();
+            series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False;
+            series.Name = "Series";
+            var doughnutSeriesView = new DevExpress.XtraCharts.DoughnutSeriesView();
+            doughnutSeriesView.HoleRadiusPercent = 45;
+            doughnutSeriesView.TotalLabel.DXFont = new DevExpress.Drawing.DXFont("Tahoma", 12F, DevExpress.Drawing.DXFontStyle.Bold);
+            doughnutSeriesView.TotalLabel.Visible = true;
+            series.View = doughnutSeriesView;
+            chart.SeriesSerializable = new DevExpress.XtraCharts.Series[] { series };
+            chart.SizeF = new System.Drawing.SizeF(sizeX, sizeY);
+            chart.StylePriority.UseBackColor = false;
+            chart.StylePriority.UsePadding = false;
+
+            var otherValue = 100 - value;
+            series.Points.Add(new SeriesPoint("璇樊", value));
+            series.Points.Add(new SeriesPoint("鍏朵粬", otherValue));
+
+            doughnutSeriesView.TotalLabel.TextPattern = string.Format("{0:0%}", value / 100f);
+            return chart;
+        }
+
+
         // 鍒涘缓琛ㄥご鍗曞厓鏍�
         private XRTableCell CreateTableCell(string text, int width)
         {

--
Gitblit v1.9.3