From ad8f813f5eddd66740b4e09801e4ea02ddf70a4a Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期三, 19 二月 2025 15:58:22 +0800
Subject: [PATCH] 继续优化报表

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraReport1.cs |  197 ++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 154 insertions(+), 43 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraReport1.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraReport1.cs
index 38a6f12..5cd9db1 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraReport1.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraReport1.cs
@@ -134,7 +134,7 @@
                 headerRowPumpList.Cells.Add(CreateTableCell("缂栫爜", 100));
                 headerRowPumpList.Cells.Add(CreateTableCell("棰濆畾娴侀噺", 100));
                 headerRowPumpList.Cells.Add(CreateTableCell("棰濆畾鎵▼", 100));
-                headerRowPumpList.Cells.Add(CreateTableCell("棰濆畾鍔熺巼", 100));
+                headerRowPumpList.Cells.Add(CreateTableCell("棰濆畾鍔熺巼(KW)", 100));
                 headerRowPumpList.Cells.Add(CreateTableCell("棰濆畾杞��", 100));
 
                 // 灏嗚〃澶磋娣诲姞鍒拌〃鏍�
@@ -369,12 +369,19 @@
                             // 鍒涘缓 XY 鍥捐〃
                             XYDiagram xyDiagram = new XYDiagram();
                             ((System.ComponentModel.ISupportInitialize)(xyDiagram)).BeginInit();
+                            // 璁剧疆 X 杞翠富瑕佺綉鏍肩嚎鍙
+                            xyDiagram.AxisX.GridLines.Visible = true;
+                            // 璁剧疆 X 杞翠富瑕佸埢搴﹂棿闅旓紝鍙牴鎹渶姹傝皟鏁磋鍊硷紝鍊艰秺灏忕綉鏍艰秺瀵�
+                            xyDiagram.AxisX.Tickmarks.Thickness = 1;
+                            // 璁剧疆 Y 杞翠富瑕佺綉鏍肩嚎鍙
+                            xyDiagram.AxisY.GridLines.Visible = true;
+                            // 璁剧疆 Y 杞翠富瑕佸埢搴﹂棿闅旓紝鍙牴鎹渶姹傝皟鏁磋鍊硷紝鍊艰秺灏忕綉鏍艰秺瀵�
+                            xyDiagram.AxisX.Tickmarks.Thickness = 1;
 
                             // 閰嶇疆涓� X 杞�
                             xyDiagram.AxisX.Title.Text = "娴侀噺(m鲁/h)";
                             xyDiagram.AxisX.Title.Visibility = DefaultBoolean.True;
                             xyDiagram.AxisX.Visibility = DefaultBoolean.True;
-                            xyDiagram.AxisX.Alignment = AxisAlignment.Far; // 灏� X 杞磋缃湪鍥捐〃搴曢儴
 
                             // 閰嶇疆涓� Y 杞�
                             xyDiagram.AxisY.Title.Text = "鎵▼/m";
@@ -392,15 +399,23 @@
 
                             // 鍒涘缓娆¤ Y 杞�
                             SecondaryAxisY secondaryAxisY1 = new SecondaryAxisY("Secondary Y-Axis 1");
-                            secondaryAxisY1.Title.Text = "鍔熺巼";
+                            secondaryAxisY1.Title.Text = "鍔熺巼(KW)";
                             secondaryAxisY1.Title.Visibility = DefaultBoolean.True;
                             secondaryAxisY1.Visibility = DefaultBoolean.True;
+                            secondaryAxisY1.GridLines.Visible = true;
+                            secondaryAxisY1.Tickmarks.Thickness = 1;
+                            secondaryAxisY1.GridLines.Color = Color.LightGray;
+
                             xyDiagram.SecondaryAxesY.Add(secondaryAxisY1);
 
                             SecondaryAxisY secondaryAxisY2 = new SecondaryAxisY("Secondary Y-Axis 2");
-                            secondaryAxisY2.Title.Text = "鏁堢巼";
+                            secondaryAxisY2.Title.Text = "鏁堢巼(%)";
                             secondaryAxisY2.Title.Visibility = DefaultBoolean.True;
                             secondaryAxisY2.Visibility = DefaultBoolean.True;
+                            secondaryAxisY2.GridLines.Visible = true;
+                            secondaryAxisY2.Tickmarks.Thickness = 1;
+                            secondaryAxisY2.GridLines.Color = Color.LightGray;
+
                             xyDiagram.SecondaryAxesY.Add(secondaryAxisY2);
 
                             chart.Diagram = xyDiagram;
@@ -538,54 +553,112 @@
                                 this.Detail.Controls.Add(label);
                                 currentY += 20F;
 
-                                XRChart chartQh = new XRChart();
-                                chartQh.LocationF = new DevExpress.Utils.PointFloat(0F, currentY);
-                                chartQh.WidthF = contentWidth;
-                                chartQh.HeightF = 300F;
+                                XRChart chart = new XRChart();
+                                ((System.ComponentModel.ISupportInitialize)(chart)).BeginInit();
+                                chart.LocationF = new DevExpress.Utils.PointFloat(0F, currentY);
+                                chart.WidthF = contentWidth;
+                                chart.HeightF = 600F;
+                                chart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
 
-                                XRChart chartQE = new XRChart();
-                                chartQE.LocationF = new DevExpress.Utils.PointFloat(0F, currentY + chartQh.HeightF);
-                                chartQE.WidthF = contentWidth;
-                                chartQE.HeightF = 300F;
+                                // 鍒涘缓 XY 鍥捐〃
+                                XYDiagram xyDiagram = new XYDiagram();
+                                ((System.ComponentModel.ISupportInitialize)(xyDiagram)).BeginInit();
 
-                                XRChart chartQP = new XRChart();
-                                chartQP.LocationF = new DevExpress.Utils.PointFloat(0F, currentY + chartQh.HeightF + chartQE.HeightF);
-                                chartQP.WidthF = contentWidth;
-                                chartQP.HeightF = 300F;
+                                // 璁剧疆 X 杞翠富瑕佺綉鏍肩嚎鍙
+                                xyDiagram.AxisX.GridLines.Visible = true;
+                                // 璁剧疆 X 杞翠富瑕佸埢搴﹂棿闅旓紝鍙牴鎹渶姹傝皟鏁磋鍊硷紝鍊艰秺灏忕綉鏍艰秺瀵�
+                                xyDiagram.AxisX.Tickmarks.Thickness = 1;
+                                // 璁剧疆 Y 杞翠富瑕佺綉鏍肩嚎鍙
+                                xyDiagram.AxisY.GridLines.Visible = true;
+                                // 璁剧疆 Y 杞翠富瑕佸埢搴﹂棿闅旓紝鍙牴鎹渶姹傝皟鏁磋鍊硷紝鍊艰秺灏忕綉鏍艰秺瀵�
+                                xyDiagram.AxisX.Tickmarks.Thickness = 1;
+                                // 閰嶇疆涓� X 杞�
+                                xyDiagram.AxisX.Title.Text = "娴侀噺(m鲁/h)";
+                                xyDiagram.AxisX.Title.Visibility = DefaultBoolean.True;
+                                xyDiagram.AxisX.Visibility = DefaultBoolean.True;
+
+                                // 閰嶇疆涓� Y 杞�
+                                xyDiagram.AxisY.Title.Text = "鎵▼/m";
+                                xyDiagram.AxisY.Title.Visibility = DefaultBoolean.True;
+                                xyDiagram.AxisY.Visibility = DefaultBoolean.True;
+                                //xyDiagram.AxisY.Alignment = AxisAlignment.Zero; // 璁剧疆 Y 杞翠笌 X 杞村叡鐢ㄩ浂鐐�
+
+                                // 鍒涘缓涓や釜闈㈡澘
+                                XYDiagramPane pane1 = new XYDiagramPane();
+                                pane1.Name = "Pane 1";
+                                xyDiagram.Panes.Add(pane1);
+
+                                XYDiagramPane pane2 = new XYDiagramPane();
+                                pane2.Name = "Pane 2";
+                                xyDiagram.Panes.Add(pane2);
+
+                                // 鍒涘缓娆¤ Y 杞�
+                                SecondaryAxisY secondaryAxisY1 = new SecondaryAxisY("Secondary Y-Axis 1");
+                                secondaryAxisY1.Title.Text = "鍔熺巼(KW)";
+                                secondaryAxisY1.Title.Visibility = DefaultBoolean.True;
+                                secondaryAxisY1.Visibility = DefaultBoolean.True;
+                                secondaryAxisY1.GridLines.Visible = true;
+                                secondaryAxisY1.Tickmarks.Thickness = 1;
+                                secondaryAxisY1.GridLines.Color = Color.LightGray;
+
+                                xyDiagram.SecondaryAxesY.Add(secondaryAxisY1);
+
+                                SecondaryAxisY secondaryAxisY2 = new SecondaryAxisY("Secondary Y-Axis 2");
+                                secondaryAxisY2.Title.Text = "鏁堢巼(%)";
+                                secondaryAxisY2.Title.Visibility = DefaultBoolean.True;
+                                secondaryAxisY2.Visibility = DefaultBoolean.True;
+                                secondaryAxisY2.GridLines.Visible = true;
+                                secondaryAxisY2.Tickmarks.Thickness = 1;
+                                secondaryAxisY2.GridLines.Color = Color.LightGray;
+
+                                xyDiagram.SecondaryAxesY.Add(secondaryAxisY2);
+
+                                chart.Diagram = xyDiagram;
+                                ((System.ComponentModel.ISupportInitialize)(xyDiagram)).EndInit();
+                                ((System.ComponentModel.ISupportInitialize)(chart)).EndInit();
 
                                 foreach (var valve in item)
                                 {
-                                    // 鍒涘缓涓�涓嚎绯诲垪
-                                    Series series = new Series(valve.Code, ViewType.Spline);
-                                    // 娣诲姞鏁版嵁鐐�
-                                    foreach (var qh in valve.CurrentCurveQH)
+                                    // 鍒涘缓绗竴涓郴鍒�
+                                    Series series1 = new Series("Series 1", ViewType.Spline);
+                                    if (valve.CurrentCurveQH != null)
                                     {
-                                        series.Points.Add(new SeriesPoint(qh.X.ToString(), qh.Y.ToString()));
+                                        foreach (var qh in valve.CurrentCurveQH)
+                                        {
+                                            series1.Points.Add(new SeriesPoint(qh.X, qh.Y));
+                                        }
+                                        series1.LabelsVisibility = DefaultBoolean.False;
+                                        chart.Series.Add(series1);
                                     }
-                                    chartQh.Series.Add(series);
-
-                                    Series series2 = new Series("Series2", ViewType.Spline);
-                                    // 娣诲姞鏁版嵁鐐�
-                                    foreach (var qe in valve.CurrentCurveQE)
+                                    // 鍒涘缓绗簩涓郴鍒�
+                                    Series series2 = new Series("Series 2", ViewType.Spline);
+                                    if (valve.CurrentCurveQE != null)
                                     {
-                                        series2.Points.Add(new SeriesPoint(qe.X.ToString(), qe.Y.ToString()));
+                                        foreach (var qe in valve.CurrentCurveQE)
+                                        {
+                                            series2.Points.Add(new SeriesPoint(qe.X, qe.Y));
+                                        }
+                                    ((XYDiagramSeriesViewBase)series2.View).Pane = pane2;
+                                        ((XYDiagramSeriesViewBase)series2.View).AxisY = secondaryAxisY2;
+                                        series2.LabelsVisibility = DefaultBoolean.False;
+                                        chart.Series.Add(series2);
                                     }
-                                    chartQE.Series.Add(series2);
-
-                                    Series series3 = new Series("Series3", ViewType.Spline);
-                                    // 娣诲姞鏁版嵁鐐�
-                                    foreach (var qp in valve.CurrentCurveQP)
+                                    // 鍒涘缓绗笁涓郴鍒�
+                                    Series series3 = new Series("Series 3", ViewType.Spline);
+                                    if (valve.RatedCurveQP != null)
                                     {
-                                        series3.Points.Add(new SeriesPoint(qp.X.ToString(), qp.Y.ToString()));
+                                        foreach (var qp in valve.RatedCurveQP)
+                                        {
+                                            series3.Points.Add(new SeriesPoint(qp.X, qp.Y));
+                                        }
+                                    ((XYDiagramSeriesViewBase)series3.View).Pane = pane1;
+                                        ((XYDiagramSeriesViewBase)series3.View).AxisY = secondaryAxisY1;
+                                        series3.LabelsVisibility = DefaultBoolean.False;
+                                        chart.Series.Add(series3);
                                     }
-                                    chartQP.Series.Add(series3);
                                 }
-
-                                this.Detail.Controls.Add(chartQh);
-                                this.Detail.Controls.Add(chartQE);
-                                this.Detail.Controls.Add(chartQP);
-
-                                currentY += chartQh.HeightF + chartQE.HeightF + chartQP.HeightF;
+                                Detail.Controls.Add(chart);
+                                currentY += chart.HeightF;
                             }
                         }
                     }
@@ -661,12 +734,46 @@
                             });
                             dataRow.Cells.Add(new XRTableCell()
                             {
-                                Text = item.CurrentQ?.ToString(),
+                                Text = item.CurrentQ?.ToString("F2"),
                                 WidthF = 100F,
                                 TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter,
                                 Borders = DevExpress.XtraPrinting.BorderSide.All
                             });
-
+                            dataRow.Cells.Add(new XRTableCell()
+                            {
+                                Text = item.CurrentPr1?.ToString("F2"),
+                                WidthF = 100F,
+                                TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter,
+                                Borders = DevExpress.XtraPrinting.BorderSide.All
+                            });
+                            dataRow.Cells.Add(new XRTableCell()
+                            {
+                                Text = item.CurrentPr2?.ToString("F2"),
+                                WidthF = 100F,
+                                TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter,
+                                Borders = DevExpress.XtraPrinting.BorderSide.All
+                            });
+                            dataRow.Cells.Add(new XRTableCell()
+                            {
+                                Text = item.CurrentH?.ToString("F2"),
+                                WidthF = 100F,
+                                TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter,
+                                Borders = DevExpress.XtraPrinting.BorderSide.All
+                            });
+                            dataRow.Cells.Add(new XRTableCell()
+                            {
+                                Text = item.CurrentP?.ToString("F2"),
+                                WidthF = 100F,
+                                TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter,
+                                Borders = DevExpress.XtraPrinting.BorderSide.All
+                            });
+                            dataRow.Cells.Add(new XRTableCell()
+                            {
+                                Text = item.CurrentE?.ToString("F2"),
+                                WidthF = 100F,
+                                TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter,
+                                Borders = DevExpress.XtraPrinting.BorderSide.All
+                            });
                             tableForEnergyDetails.Rows.Add(dataRow);
                         }
                         // 灏嗚〃鏍兼坊鍔犲埌Detail
@@ -692,11 +799,14 @@
                         chart.LocationF = new DevExpress.Utils.PointFloat(0F, currentY);
                         chart.WidthF = contentWidth;
                         chart.HeightF = 300F;
-
+                        chart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
                         // 鍒涘缓涓�涓嚎绯诲垪
                         Series series = new Series("Series1", ViewType.Area);
                         Series series2 = new Series("Series2", ViewType.Area);
                         Series series3 = new Series("Series3", ViewType.Area);
+                        series.LabelsVisibility = DefaultBoolean.False;
+                        series2.LabelsVisibility = DefaultBoolean.False;
+                        series3.LabelsVisibility = DefaultBoolean.False;
                         // 娣诲姞鏁版嵁鐐�
                         foreach (var item in working.LossCurve.End.Items)
                         {
@@ -739,6 +849,7 @@
                     currentY += accuracyScaleChart.HeightF;
                     var CategoryChart = CreateCategory(working.LossStatistics, 727F, 230F, 0F, currentY);
                     Detail.Controls.Add(CategoryChart);
+                    currentY += CategoryChart.HeightF;
                 }
             }
 

--
Gitblit v1.9.3