From bb7165071ee890cfac760dbb15cd921e6f6e3096 Mon Sep 17 00:00:00 2001 From: duheng <2784771470@qq.com> Date: 星期三, 19 二月 2025 10:46:10 +0800 Subject: [PATCH] 报表优化 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraForm1.cs | 58 ++ WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraForm1.Designer.cs | 91 ++ WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraReport1.Designer.cs | 327 ++--------- WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.resx | 4 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraForm1.resx | 91 +++ WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraReport1.cs | 1032 +++++++++++++++++++++++++++++++++++--- WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.Designer.cs | 8 7 files changed, 1,225 insertions(+), 386 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraForm1.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraForm1.Designer.cs index a8179b8..8bacd86 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraForm1.Designer.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraForm1.Designer.cs @@ -28,29 +28,63 @@ /// </summary> private void InitializeComponent() { + ComponentResourceManager resources = new ComponentResourceManager(typeof(XtraForm1)); ribbonControl1 = new DevExpress.XtraBars.Ribbon.RibbonControl(); + barSubItem1 = new DevExpress.XtraBars.BarSubItem(); + btnExportWord = new DevExpress.XtraBars.BarButtonItem(); + btnExportPDF = new DevExpress.XtraBars.BarButtonItem(); ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage(); ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup(); layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); - Root = new DevExpress.XtraLayout.LayoutControlGroup(); documentViewer1 = new DevExpress.XtraPrinting.Preview.DocumentViewer(); + Root = new DevExpress.XtraLayout.LayoutControlGroup(); layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); - ((System.ComponentModel.ISupportInitialize)ribbonControl1).BeginInit(); - ((System.ComponentModel.ISupportInitialize)layoutControl1).BeginInit(); + ((ISupportInitialize)ribbonControl1).BeginInit(); + ((ISupportInitialize)layoutControl1).BeginInit(); layoutControl1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)Root).BeginInit(); - ((System.ComponentModel.ISupportInitialize)layoutControlItem1).BeginInit(); + ((ISupportInitialize)Root).BeginInit(); + ((ISupportInitialize)layoutControlItem1).BeginInit(); SuspendLayout(); // // ribbonControl1 // ribbonControl1.ExpandCollapseItem.Id = 0; - ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem }); + ribbonControl1.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic; + ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barSubItem1, btnExportWord, btnExportPDF }); ribbonControl1.Location = new Point(0, 0); - ribbonControl1.MaxItemId = 1; + ribbonControl1.MaxItemId = 5; ribbonControl1.Name = "ribbonControl1"; ribbonControl1.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 }); - ribbonControl1.Size = new Size(1070, 152); + ribbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.False; + ribbonControl1.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.ShowOnMultiplePages; + ribbonControl1.ShowToolbarCustomizeItem = false; + ribbonControl1.Size = new Size(1070, 128); + ribbonControl1.Toolbar.ShowCustomizeItem = false; + ribbonControl1.ToolbarLocation = DevExpress.XtraBars.Ribbon.RibbonQuickAccessToolbarLocation.Hidden; + // + // barSubItem1 + // + barSubItem1.Caption = "瀵煎嚭"; + barSubItem1.Id = 2; + barSubItem1.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barSubItem1.ImageOptions.SvgImage"); + barSubItem1.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(btnExportWord), new DevExpress.XtraBars.LinkPersistInfo(btnExportPDF) }); + barSubItem1.Name = "barSubItem1"; + // + // btnExportWord + // + btnExportWord.Caption = "瀵煎嚭涓篧ord"; + btnExportWord.Id = 3; + btnExportWord.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("btnExportWord.ImageOptions.SvgImage"); + btnExportWord.Name = "btnExportWord"; + btnExportWord.ItemClick += btnExportWord_ItemClick; + // + // btnExportPDF + // + btnExportPDF.Caption = "瀵煎嚭涓篜DF"; + btnExportPDF.Id = 4; + btnExportPDF.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("btnExportPDF.ImageOptions.SvgImage"); + btnExportPDF.Name = "btnExportPDF"; + btnExportPDF.ItemClick += btnExportPDF_ItemClick; // // ribbonPage1 // @@ -60,19 +94,28 @@ // // ribbonPageGroup1 // + ribbonPageGroup1.ItemLinks.Add(barSubItem1); ribbonPageGroup1.Name = "ribbonPageGroup1"; - ribbonPageGroup1.Text = "ribbonPageGroup1"; + ribbonPageGroup1.Text = "鍩虹鎿嶄綔"; // // layoutControl1 // layoutControl1.Controls.Add(documentViewer1); layoutControl1.Dock = DockStyle.Fill; - layoutControl1.Location = new Point(0, 152); + layoutControl1.Location = new Point(0, 128); layoutControl1.Name = "layoutControl1"; layoutControl1.Root = Root; - layoutControl1.Size = new Size(1070, 357); + layoutControl1.Size = new Size(1070, 381); layoutControl1.TabIndex = 2; layoutControl1.Text = "layoutControl1"; + // + // documentViewer1 + // + documentViewer1.IsMetric = true; + documentViewer1.Location = new Point(2, 2); + documentViewer1.Name = "documentViewer1"; + documentViewer1.Size = new Size(1066, 377); + documentViewer1.TabIndex = 4; // // Root // @@ -81,23 +124,15 @@ Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1 }); Root.Name = "Root"; Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); - Root.Size = new Size(1070, 357); + Root.Size = new Size(1070, 381); Root.TextVisible = false; - // - // documentViewer1 - // - documentViewer1.IsMetric = true; - documentViewer1.Location = new Point(2, 2); - documentViewer1.Name = "documentViewer1"; - documentViewer1.Size = new Size(1066, 353); - documentViewer1.TabIndex = 4; // // layoutControlItem1 // layoutControlItem1.Control = documentViewer1; layoutControlItem1.Location = new Point(0, 0); layoutControlItem1.Name = "layoutControlItem1"; - layoutControlItem1.Size = new Size(1070, 357); + layoutControlItem1.Size = new Size(1070, 381); layoutControlItem1.TextSize = new Size(0, 0); layoutControlItem1.TextVisible = false; // @@ -109,12 +144,12 @@ Controls.Add(layoutControl1); Controls.Add(ribbonControl1); Name = "XtraForm1"; - Text = "XtraForm1"; - ((System.ComponentModel.ISupportInitialize)ribbonControl1).EndInit(); - ((System.ComponentModel.ISupportInitialize)layoutControl1).EndInit(); + Text = "鑺傝兘鎶ュ憡"; + ((ISupportInitialize)ribbonControl1).EndInit(); + ((ISupportInitialize)layoutControl1).EndInit(); layoutControl1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)Root).EndInit(); - ((System.ComponentModel.ISupportInitialize)layoutControlItem1).EndInit(); + ((ISupportInitialize)Root).EndInit(); + ((ISupportInitialize)layoutControlItem1).EndInit(); ResumeLayout(false); PerformLayout(); } @@ -128,5 +163,9 @@ private DevExpress.XtraPrinting.Preview.DocumentViewer documentViewer1; private DevExpress.XtraLayout.LayoutControlGroup Root; private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraBars.BarButtonItem btnExportWord; + private DevExpress.XtraBars.BarSubItem barSubItem1; + private DevExpress.XtraBars.BarButtonItem barButtonItem1; + private DevExpress.XtraBars.BarButtonItem btnExportPDF; } } \ No newline at end of file diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraForm1.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraForm1.cs index 3b42608..2d520e1 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraForm1.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraForm1.cs @@ -8,15 +8,17 @@ this.Load += Form1_Load; } + private XtraReport1 _report1; + public void SetBindingData(SimulationPrintViewModel viewModel) { - XtraReport1 report = new XtraReport1(); - report.SetBingdingData(viewModel); + _report1 = new XtraReport1(); + _report1.SetBingdingData(viewModel); // 鐢熸垚鎶ヨ〃鏂囨。 - report.CreateDocument(); + _report1.CreateDocument(); // 灏嗘姤琛ㄦ枃妗e姞杞藉埌 DocumentViewer 涓� - documentViewer1.DocumentSource = report; + documentViewer1.DocumentSource = _report1; } private void Form1_Load(object sender, EventArgs e) @@ -28,5 +30,53 @@ // 灏嗘姤琛ㄦ枃妗e姞杞藉埌 DocumentViewer 涓� documentViewer1.DocumentSource = report;*/ } + + private void btnExportPDF_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + SaveFileDialog saveFileDialog = new SaveFileDialog(); + // 璁剧疆鏂囦欢绛涢�夊櫒锛屽彧鍏佽閫夋嫨鐗瑰畾鏍煎紡鐨勬枃浠� + saveFileDialog.Filter = "PDF Files (*.pdf)|*.pdf|"; + saveFileDialog.Title = "閫夋嫨淇濆瓨璺緞"; + + // 鏄剧ず瀵硅瘽妗嗗苟鑾峰彇鐢ㄦ埛閫夋嫨鐨勭粨鏋� + if (saveFileDialog.ShowDialog() == DialogResult.OK) + { + string filePath = saveFileDialog.FileName; + + try + { + _report1.ExportToPdf(filePath); + TipFormHelper.ShowSucceed("瀵煎嚭鎴愬姛锛�"); + } + catch (Exception ex) + { + MessageBox.Show($"瀵煎嚭鎶ヨ〃鏃跺彂鐢熼敊璇�: {ex.Message}", "瀵煎嚭澶辫触", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + private void btnExportWord_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + SaveFileDialog saveFileDialog = new SaveFileDialog(); + // 璁剧疆鏂囦欢绛涢�夊櫒锛屽彧鍏佽閫夋嫨鐗瑰畾鏍煎紡鐨勬枃浠� + saveFileDialog.Filter = "Word Files (*.docx)|*.docx"; + saveFileDialog.Title = "閫夋嫨淇濆瓨璺緞"; + + // 鏄剧ず瀵硅瘽妗嗗苟鑾峰彇鐢ㄦ埛閫夋嫨鐨勭粨鏋� + if (saveFileDialog.ShowDialog() == DialogResult.OK) + { + string filePath = saveFileDialog.FileName; + + try + { + _report1.ExportToDocx(filePath); + TipFormHelper.ShowSucceed("瀵煎嚭鎴愬姛锛�"); + } + catch (Exception ex) + { + MessageBox.Show($"瀵煎嚭鎶ヨ〃鏃跺彂鐢熼敊璇�: {ex.Message}", "瀵煎嚭澶辫触", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } } } \ No newline at end of file diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraForm1.resx b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraForm1.resx index 8b2ff64..96634e5 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraForm1.resx +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraForm1.resx @@ -117,4 +117,95 @@ <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> + <assembly alias="DevExpress.Data.v23.2" name="DevExpress.Data.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> + <data name="barSubItem1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAFMCAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku + R3JlZW57ZmlsbDojMDM5QzIzO30KPC9zdHlsZT4NCiAgPGcgaWQ9IkV4cG9ydCI+DQogICAgPHBhdGgg + ZD0iTTEwLDEySDZWNmg0VjEyeiBNMjIsMTJ2NnY5YzAsMC42LTAuNCwxLTEsMUgxYy0wLjYsMC0xLTAu + NC0xLTFWN2MwLTAuNiwwLjQtMSwxLTFoM3Y4aDE0di0ySDIyeiBNMTgsMThINCAgIHY2aDE0VjE4eiIg + Y2xhc3M9IkJsYWNrIiAvPg0KICAgIDxwb2x5Z29uIHBvaW50cz0iMTYsMTAgMjQsMTAgMjQsMTQgMzIs + OCAyNCwyIDI0LDYgMTYsNiAgIiBjbGFzcz0iR3JlZW4iIC8+DQogIDwvZz4NCjwvc3ZnPgs= +</value> + </data> + <data name="btnExportWord.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAF4GAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzMiAzMiI+DQogIDxz + dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkJsYWNre2ZpbGw6Izcy + NzI3Mjt9Cjwvc3R5bGU+DQogIDxnIGlkPSJMYXllcl8xIj4NCiAgICA8cGF0aCBkPSJNMTAuMSwxMS41 + SDkuNHY0LjloMC43YzAuNiwwLDEuMS0wLjIsMS40LTAuN3MwLjUtMS4xLDAuNS0xLjhzLTAuMi0xLjMt + MC41LTEuNyAgIEMxMS4yLDExLjgsMTAuNywxMS41LDEwLjEsMTEuNXoiIGNsYXNzPSJCbHVlIiAvPg0K + ICAgIDxwYXRoIGQ9Ik0xNy40LDExLjVjLTAuNSwwLTAuOSwwLjItMS4yLDAuN2MtMC4zLDAuNS0wLjQs + MS4xLTAuNCwxLjhjMCwwLjgsMC4xLDEuNCwwLjQsMS44czAuNywwLjcsMS4yLDAuNyAgIHMwLjktMC4y + LDEuMi0wLjZjMC4zLTAuNCwwLjQtMSwwLjQtMS44cy0wLjEtMS40LTAuNC0xLjlDMTguMiwxMS43LDE3 + LjgsMTEuNSwxNy40LDExLjV6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgICA8cGF0aCBkPSJNMjYsMTh2MTBI + OFYxOEg2djExYzAsMC41LDAuNSwxLDEsMWgyMGMwLjUsMCwxLTAuNSwxLTFWMThIMjZ6IiBjbGFzcz0i + QmxhY2siIC8+DQogICAgPHBhdGggZD0iTTgsMTBWNGgxOHY2aDJWM2MwLTAuNS0wLjUtMS0xLTFIN0M2 + LjUsMiw2LDIuNSw2LDN2N0g4eiIgY2xhc3M9IkJsYWNrIiAvPg0KICAgIDxwYXRoIGQ9Ik0yOSw4aC0x + aC0ySDhINkg1QzQuNCw4LDQsOC40LDQsOXYxMGMwLDAuNiwwLjQsMSwxLDFoMWgyaDE4aDJoMWMwLjYs + MCwxLTAuNCwxLTFWOUMzMCw4LjQsMjkuNiw4LDI5LDh6ICAgIE0xMi43LDE2LjhjLTAuNiwwLjctMS40 + LDEuMS0yLjQsMS4xSDh2LTcuN2gyLjJjMi4yLDAsMy40LDEuMywzLjQsMy44QzEzLjYsMTUuMSwxMy4z + LDE2LDEyLjcsMTYuOHogTTE5LjUsMTYuOSAgIEMxOSwxNy42LDE4LjIsMTgsMTcuMywxOGMtMC45LDAt + MS42LTAuNC0yLjItMS4xcy0wLjktMS43LTAuOS0yLjhjMC0xLjIsMC4zLTIuMiwwLjktM2MwLjYtMC44 + LDEuMy0xLjEsMi4zLTEuMSAgIGMwLjksMCwxLjYsMC40LDIuMiwxLjFjMC42LDAuNywwLjgsMS43LDAu + OCwyLjhDMjAuNCwxNS4xLDIwLjEsMTYuMSwxOS41LDE2Ljl6IE0yNiwxMmMtMC40LTAuMy0wLjktMC41 + LTEuNC0wLjUgICBjLTAuNiwwLTEuMSwwLjItMS40LDAuN2MtMC40LDAuNS0wLjUsMS4xLTAuNSwxLjhz + MC4yLDEuMywwLjUsMS44YzAuMywwLjQsMC44LDAuNywxLjQsMC43czEuMS0wLjIsMS41LTAuNXYxLjYg + ICBDMjUuNiwxNy45LDI1LDE4LDI0LjMsMThjLTEsMC0xLjctMC4zLTIuMy0xYy0wLjYtMC43LTAuOC0x + LjYtMC44LTIuOHMwLjMtMi4yLDAuOS0zczEuNC0xLjEsMi40LTEuMWMwLjYsMCwxLjEsMC4xLDEuNiww + LjNWMTJIMjYgICB6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgPC9nPg0KICA8ZyBpZD0iTGF5ZXJfMiIgLz4N + Cjwvc3ZnPgs= +</value> + </data> + <data name="btnExportPDF.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAABoHAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJs + YWNre2ZpbGw6IzcyNzI3Mjt9Cgkuc3Qwe29wYWNpdHk6MC4yO30KPC9zdHlsZT4NCiAgPHBhdGggZD0i + TTgsNGgxOHY2aDJWM2MwLTAuNS0wLjUtMS0xLTFIN0M2LjUsMiw2LDIuNSw2LDN2N2gyVjR6IiBjbGFz + cz0iQmxhY2siIC8+DQogIDxwYXRoIGQ9Ik0yNiwyNkg4VjE2SDZ2MTFjMCwwLjUsMC41LDEsMSwxaDIw + YzAuNSwwLDEtMC41LDEtMVYxNmgtMlYyNnoiIGNsYXNzPSJCbGFjayIgLz4NCiAgPHBhdGggZD0iTTEw + LjMsMTEuNkg5LjZWMTRoMC42YzAuOSwwLDEuMy0wLjQsMS4zLTEuMkMxMS41LDEyLDExLjEsMTEuNiwx + MC4zLDExLjZ6IiBjbGFzcz0iUmVkIiAvPg0KICA8cGF0aCBkPSJNMTYuNywxMS43aC0wLjh2NC45aDAu + OGMwLjcsMCwxLjMtMC4yLDEuNi0wLjdzMC42LTEuMSwwLjYtMS44YzAtMC43LTAuMi0xLjMtMC42LTEu + NyAgQzE4LDExLjksMTcuNCwxMS43LDE2LjcsMTEuN3oiIGNsYXNzPSJSZWQiIC8+DQogIDxwYXRoIGQ9 + Ik0yOSw4SDVDNC40LDgsNCw4LjQsNCw5djEwYzAsMC42LDAuNCwxLDEsMWgyNGMwLjYsMCwxLTAuNCwx + LTFWOUMzMCw4LjQsMjkuNiw4LDI5LDh6IE0xMi41LDE0LjYgIGMtMC41LDAuNS0xLjIsMC43LTIuMSww + LjdIOS42VjE4SDh2LTcuN2gyLjVjMS44LDAsMi43LDAuOCwyLjcsMi41QzEzLjIsMTMuNSwxMywxNC4y + LDEyLjUsMTQuNnogTTE5LjYsMTYuOSAgQzE4LjksMTcuNiwxOCwxOCwxNi44LDE4aC0yLjV2LTcuN2gy + LjVjMi41LDAsMy44LDEuMywzLjgsMy44QzIwLjcsMTUuMywyMC4zLDE2LjIsMTkuNiwxNi45eiBNMjYs + MTEuN2gtMi41djEuOWgyLjNWMTVoLTIuM3YzICBoLTEuNnYtNy43SDI2VjExLjd6IiBjbGFzcz0iUmVk + IiAvPg0KICA8ZyBjbGFzcz0ic3QwIj4NCiAgICA8cGF0aCBkPSJNMTAuMywxMS42SDkuNlYxNGgwLjZj + MC45LDAsMS4zLTAuNCwxLjMtMS4yQzExLjUsMTIsMTEuMSwxMS42LDEwLjMsMTEuNnoiIGNsYXNzPSJC + bGFjayIgLz4NCiAgICA8cGF0aCBkPSJNMTYuNywxMS43aC0wLjh2NC45aDAuOGMwLjcsMCwxLjMtMC4y + LDEuNi0wLjdzMC42LTEuMSwwLjYtMS44YzAtMC43LTAuMi0xLjMtMC42LTEuNyAgIEMxOCwxMS45LDE3 + LjQsMTEuNywxNi43LDExLjd6IiBjbGFzcz0iQmxhY2siIC8+DQogICAgPHBhdGggZD0iTTI5LDhINUM0 + LjQsOCw0LDguNCw0LDl2MTBjMCwwLjYsMC40LDEsMSwxaDI0YzAuNiwwLDEtMC40LDEtMVY5QzMwLDgu + NCwyOS42LDgsMjksOHogTTEyLjUsMTQuNiAgIGMtMC41LDAuNS0xLjIsMC43LTIuMSwwLjdIOS42VjE4 + SDh2LTcuN2gyLjVjMS44LDAsMi43LDAuOCwyLjcsMi41QzEzLjIsMTMuNSwxMywxNC4yLDEyLjUsMTQu + NnogTTE5LjYsMTYuOSAgIEMxOC45LDE3LjYsMTgsMTgsMTYuOCwxOGgtMi41di03LjdoMi41YzIuNSww + LDMuOCwxLjMsMy44LDMuOEMyMC43LDE1LjMsMjAuMywxNi4yLDE5LjYsMTYuOXogTTI2LDExLjdoLTIu + NXYxLjloMi4zVjE1aC0yLjN2MyAgIGgtMS42di03LjdIMjZWMTEuN3oiIGNsYXNzPSJCbGFjayIgLz4N + CiAgPC9nPg0KPC9zdmc+Cw== +</value> + </data> </root> \ No newline at end of file diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraReport1.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraReport1.Designer.cs index 53b0f32..2067cc4 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraReport1.Designer.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/99-test/XtraReport1.Designer.cs @@ -28,270 +28,97 @@ /// </summary> private void InitializeComponent() { + DevExpress.XtraCharts.XYDiagram xyDiagram1 = new DevExpress.XtraCharts.XYDiagram(); + DevExpress.XtraCharts.XYDiagramPane xyDiagramPane1 = new DevExpress.XtraCharts.XYDiagramPane(); + DevExpress.XtraCharts.SecondaryAxisY secondaryAxisY1 = new DevExpress.XtraCharts.SecondaryAxisY(); + DevExpress.XtraCharts.Series series1 = new DevExpress.XtraCharts.Series(); + DevExpress.XtraCharts.SplineSeriesView splineSeriesView1 = new DevExpress.XtraCharts.SplineSeriesView(); + DevExpress.XtraCharts.DetrendedPriceOscillator detrendedPriceOscillator1 = new DevExpress.XtraCharts.DetrendedPriceOscillator(); this.TopMargin = new DevExpress.XtraReports.UI.TopMarginBand(); - this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel(); this.BottomMargin = new DevExpress.XtraReports.UI.BottomMarginBand(); - this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel(); this.Detail = new DevExpress.XtraReports.UI.DetailBand(); - this.xrTable2 = new DevExpress.XtraReports.UI.XRTable(); - this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow(); - this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell(); - this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand(); - this.xrTable1 = new DevExpress.XtraReports.UI.XRTable(); - this.xrTableRow1 = new DevExpress.XtraReports.UI.XRTableRow(); - this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell3 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell(); - this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand(); - this.Detail1 = new DevExpress.XtraReports.UI.DetailBand(); - this.ReportHeader1 = new DevExpress.XtraReports.UI.ReportHeaderBand(); - this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel(); - ((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit(); + this.xrChart1 = new DevExpress.XtraReports.UI.XRChart(); + ((System.ComponentModel.ISupportInitialize)(this.xrChart1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(xyDiagram1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(xyDiagramPane1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(secondaryAxisY1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(series1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(splineSeriesView1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(detrendedPriceOscillator1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this)).BeginInit(); // // TopMargin // - this.TopMargin.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { - this.xrLabel4, - this.xrLabel1}); - this.TopMargin.HeightF = 187.5417F; + this.TopMargin.HeightF = 47.95837F; this.TopMargin.Name = "TopMargin"; - // - // xrLabel1 - // - this.xrLabel1.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { - new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "")}); - this.xrLabel1.Font = new DevExpress.Drawing.DXFont("Arial", 26F, DevExpress.Drawing.DXFontStyle.Bold); - this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(165.9723F, 10.00001F); - this.xrLabel1.Multiline = true; - this.xrLabel1.Name = "xrLabel1"; - this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); - this.xrLabel1.SizeF = new System.Drawing.SizeF(295.8333F, 59.45834F); - this.xrLabel1.StylePriority.UseFont = false; - this.xrLabel1.Text = "[name]"; // // BottomMargin // - this.BottomMargin.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { - this.xrLabel3}); - this.BottomMargin.HeightF = 380.2083F; + this.BottomMargin.HeightF = 54.25008F; this.BottomMargin.Name = "BottomMargin"; - // - // xrLabel3 - // - this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(9.999974F, 10.00001F); - this.xrLabel3.Multiline = true; - this.xrLabel3.Name = "xrLabel3"; - this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); - this.xrLabel3.SizeF = new System.Drawing.SizeF(100F, 23F); - this.xrLabel3.Text = "姘存车鍒嗘瀽"; // // Detail // this.Detail.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { - this.xrTable2}); - this.Detail.HeightF = 25F; + this.xrChart1}); + this.Detail.HeightF = 536.3749F; this.Detail.Name = "Detail"; // - // xrTable2 + // xrChart1 // - this.xrTable2.LocationFloat = new DevExpress.Utils.PointFloat(25.3472F, 0F); - this.xrTable2.Name = "xrTable2"; - this.xrTable2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 96F); - this.xrTable2.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { - this.xrTableRow2}); - this.xrTable2.SizeF = new System.Drawing.SizeF(597.5695F, 25F); - // - // xrTableRow2 - // - this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { - this.xrTableCell8, - this.xrTableCell9, - this.xrTableCell10, - this.xrTableCell11, - this.xrTableCell12, - this.xrTableCell13, - this.xrTableCell14}); - this.xrTableRow2.Name = "xrTableRow2"; - this.xrTableRow2.Weight = 1D; - // - // xrTableCell8 - // - this.xrTableCell8.Multiline = true; - this.xrTableCell8.Name = "xrTableCell8"; - this.xrTableCell8.Text = "[BeginGroup]"; - this.xrTableCell8.Weight = 0.94999865705885811D; - // - // xrTableCell9 - // - this.xrTableCell9.Multiline = true; - this.xrTableCell9.Name = "xrTableCell9"; - this.xrTableCell9.Text = "Name"; - this.xrTableCell9.Weight = 0.950000100409502D; - // - // xrTableCell10 - // - this.xrTableCell10.Multiline = true; - this.xrTableCell10.Name = "xrTableCell10"; - this.xrTableCell10.Text = "xrTableCell10"; - this.xrTableCell10.Weight = 0.94999882686481629D; - // - // xrTableCell11 - // - this.xrTableCell11.Multiline = true; - this.xrTableCell11.Name = "xrTableCell11"; - this.xrTableCell11.Text = "xrTableCell11"; - this.xrTableCell11.Weight = 0.94999916647673244D; - // - // xrTableCell12 - // - this.xrTableCell12.Multiline = true; - this.xrTableCell12.Name = "xrTableCell12"; - this.xrTableCell12.Text = "xrTableCell12"; - this.xrTableCell12.Weight = 0.94999882686481629D; - // - // xrTableCell13 - // - this.xrTableCell13.Multiline = true; - this.xrTableCell13.Name = "xrTableCell13"; - this.xrTableCell13.Text = "xrTableCell13"; - this.xrTableCell13.Weight = 0.94999882686481629D; - // - // xrTableCell14 - // - this.xrTableCell14.Multiline = true; - this.xrTableCell14.Name = "xrTableCell14"; - this.xrTableCell14.Text = "xrTableCell14"; - this.xrTableCell14.Weight = 0.94999950608864858D; - // - // ReportHeader - // - this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { - this.xrTable1}); - this.ReportHeader.HeightF = 32.29167F; - this.ReportHeader.Name = "ReportHeader"; - // - // xrTable1 - // - this.xrTable1.LocationFloat = new DevExpress.Utils.PointFloat(25.3472F, 0F); - this.xrTable1.Name = "xrTable1"; - this.xrTable1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 96F); - this.xrTable1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { - this.xrTableRow1}); - this.xrTable1.SizeF = new System.Drawing.SizeF(597.5695F, 31.25F); - // - // xrTableRow1 - // - this.xrTableRow1.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { - this.xrTableCell1, - this.xrTableCell2, - this.xrTableCell3, - this.xrTableCell4, - this.xrTableCell5, - this.xrTableCell6, - this.xrTableCell7}); - this.xrTableRow1.Name = "xrTableRow1"; - this.xrTableRow1.Weight = 1D; - // - // xrTableCell1 - // - this.xrTableCell1.Multiline = true; - this.xrTableCell1.Name = "xrTableCell1"; - this.xrTableCell1.Text = "鍒嗙粍"; - this.xrTableCell1.Weight = 0.62448374928863815D; - // - // xrTableCell2 - // - this.xrTableCell2.Multiline = true; - this.xrTableCell2.Name = "xrTableCell2"; - this.xrTableCell2.Text = "鍚嶇О"; - this.xrTableCell2.Weight = 0.62448374928863815D; - // - // xrTableCell3 - // - this.xrTableCell3.Multiline = true; - this.xrTableCell3.Name = "xrTableCell3"; - this.xrTableCell3.Text = "缂栫爜"; - this.xrTableCell3.Weight = 0.62448374928863815D; - // - // xrTableCell4 - // - this.xrTableCell4.Multiline = true; - this.xrTableCell4.Name = "xrTableCell4"; - this.xrTableCell4.Text = "棰濆畾娴侀噺"; - this.xrTableCell4.Weight = 0.62448374928863815D; - // - // xrTableCell5 - // - this.xrTableCell5.Multiline = true; - this.xrTableCell5.Name = "xrTableCell5"; - this.xrTableCell5.Text = "棰濆畾鎵▼"; - this.xrTableCell5.Weight = 0.62448374928863815D; - // - // xrTableCell6 - // - this.xrTableCell6.Multiline = true; - this.xrTableCell6.Name = "xrTableCell6"; - this.xrTableCell6.Text = "棰濆畾鍔熺巼"; - this.xrTableCell6.Weight = 0.62448374928863815D; - // - // xrTableCell7 - // - this.xrTableCell7.Multiline = true; - this.xrTableCell7.Name = "xrTableCell7"; - this.xrTableCell7.Text = "棰濆畾杞��"; - this.xrTableCell7.Weight = 0.62448374928863815D; - // - // DetailReport - // - this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { - this.Detail1, - this.ReportHeader1}); - this.DetailReport.Level = 0; - this.DetailReport.Name = "DetailReport"; - // - // Detail1 - // - this.Detail1.Name = "Detail1"; - // - // ReportHeader1 - // - this.ReportHeader1.HeightF = 23F; - this.ReportHeader1.Name = "ReportHeader1"; - // - // xrLabel4 - // - this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 69.75008F); - this.xrLabel4.Multiline = true; - this.xrLabel4.Name = "xrLabel4"; - this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); - this.xrLabel4.SizeF = new System.Drawing.SizeF(100F, 23F); - this.xrLabel4.Text = "绮惧害璇勪及"; + this.xrChart1.BorderColor = System.Drawing.Color.Black; + this.xrChart1.Borders = DevExpress.XtraPrinting.BorderSide.None; + xyDiagram1.AxisX.Visibility = DevExpress.Utils.DefaultBoolean.True; + xyDiagram1.AxisX.VisibleInPanesSerializable = "-1;0"; + xyDiagram1.AxisY.VisibleInPanesSerializable = "-1"; + xyDiagram1.DefaultPane.EnableAxisXScrolling = DevExpress.Utils.DefaultBoolean.False; + xyDiagram1.DefaultPane.EnableAxisXZooming = DevExpress.Utils.DefaultBoolean.False; + xyDiagram1.DefaultPane.EnableAxisYScrolling = DevExpress.Utils.DefaultBoolean.False; + xyDiagram1.DefaultPane.EnableAxisYZooming = DevExpress.Utils.DefaultBoolean.False; + xyDiagramPane1.Name = "Pane 1"; + xyDiagramPane1.PaneID = 0; + xyDiagram1.Panes.AddRange(new DevExpress.XtraCharts.XYDiagramPane[] { + xyDiagramPane1}); + secondaryAxisY1.AxisID = 1; + secondaryAxisY1.Name = "Secondary AxisY 2"; + secondaryAxisY1.VisibleInPanesSerializable = "0"; + xyDiagram1.SecondaryAxesY.AddRange(new DevExpress.XtraCharts.SecondaryAxisY[] { + secondaryAxisY1}); + this.xrChart1.Diagram = xyDiagram1; + this.xrChart1.Legend.LegendID = -1; + this.xrChart1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False; + this.xrChart1.LocationFloat = new DevExpress.Utils.PointFloat(102.0833F, 23.91663F); + this.xrChart1.Name = "xrChart1"; + series1.Name = "Series 1"; + series1.SeriesID = 0; + detrendedPriceOscillator1.AxisYName = "Secondary AxisY 2"; + detrendedPriceOscillator1.IndicatorID = 2; + detrendedPriceOscillator1.Name = "test12323"; + detrendedPriceOscillator1.PaneName = "Pane 1"; + detrendedPriceOscillator1.ValueLevel = DevExpress.XtraCharts.ValueLevel.Value; + splineSeriesView1.Indicators.AddRange(new DevExpress.XtraCharts.Indicator[] { + detrendedPriceOscillator1}); + series1.View = splineSeriesView1; + this.xrChart1.SeriesSerializable = new DevExpress.XtraCharts.Series[] { + series1}; + this.xrChart1.SizeF = new System.Drawing.SizeF(300F, 200F); // // XtraReport1 // this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { this.TopMargin, this.BottomMargin, - this.Detail, - this.ReportHeader, - this.DetailReport}); + this.Detail}); this.Font = new DevExpress.Drawing.DXFont("Arial", 9.75F); - this.Margins = new DevExpress.Drawing.DXMargins(100F, 100F, 187.5417F, 380.2083F); + this.Margins = new DevExpress.Drawing.DXMargins(100F, 100F, 47.95837F, 54.25008F); this.Version = "23.2"; - ((System.ComponentModel.ISupportInitialize)(this.xrTable2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(xyDiagramPane1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(secondaryAxisY1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(xyDiagram1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(detrendedPriceOscillator1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(splineSeriesView1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(series1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.xrChart1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this)).EndInit(); } @@ -301,30 +128,6 @@ private DevExpress.XtraReports.UI.TopMarginBand TopMargin; private DevExpress.XtraReports.UI.BottomMarginBand BottomMargin; private DevExpress.XtraReports.UI.DetailBand Detail; - private DevExpress.XtraReports.UI.ReportHeaderBand ReportHeader; - private DevExpress.XtraReports.UI.XRTable xrTable1; - private DevExpress.XtraReports.UI.XRTableRow xrTableRow1; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell1; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell2; - private DevExpress.XtraReports.UI.XRLabel xrLabel1; - private DevExpress.XtraReports.UI.XRLabel xrLabel3; - private DevExpress.XtraReports.UI.DetailReportBand DetailReport; - private DevExpress.XtraReports.UI.DetailBand Detail1; - private DevExpress.XtraReports.UI.ReportHeaderBand ReportHeader1; - private DevExpress.XtraReports.UI.XRLabel xrLabel4; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell3; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell4; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell5; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell6; - private DevExpress.XtraReports.UI.XRTable xrTable2; - private DevExpress.XtraReports.UI.XRTableRow xrTableRow2; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell8; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell9; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell10; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell11; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell12; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell13; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell14; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell7; + private DevExpress.XtraReports.UI.XRChart xrChart1; } } 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 4754ec1..35ab2c9 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 @@ -1,15 +1,7 @@ -锘縰sing Aspose.Words.Drawing.Charts; -using DevExpress.CodeParser; -using DevExpress.XtraBars.Docking; +锘縰sing DevExpress.Charts.Native; +using DevExpress.Utils; using DevExpress.XtraCharts; using DevExpress.XtraReports.UI; -using DevExpress.XtraSpreadsheet.Model; -using NPOI.POIFS.NIO; -using Org.BouncyCastle.Tls; -using System; -using System.Collections; -using System.ComponentModel; -using System.Drawing; namespace HStation.WinFrmUI { @@ -22,105 +14,971 @@ private SimulationPrintViewModel _printViewModel; - public void SetBingdingData(SimulationPrintViewModel viewModel) + public void SetBingdingData(SimulationPrintViewModel vm) { - _printViewModel = viewModel; - ininal(); - } + // A4璁剧疆 827 1169 + this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4; + this.Margins = new DevExpress.Drawing.DXMargins(50, 50, 50, 50); - private void ininal() - { - this.DataSource = _printViewModel.PumpList; - this.xrLabel1.DataBindings.Add("Text", _printViewModel.Project, "Name"); - this.xrTable2.DataBindings.Add("Text", _printViewModel.PumpList, "Name"); - this.xrTable2.DataBindings.Add("Text", _printViewModel.PumpList, "BeginGroup"); + // 鍐呭瀹藉害 + float contentWidth = 727F; // 鍐呭瀹藉害 + float firstCaptionHeight = 30F; // 涓�绾ф爣棰橀珮搴� + float pageHeight = 1069F; // 椤甸潰鍙敤楂樺害 + float currentY = 0F; // 褰撳墠Y鍧愭爣 - // 鍒涘缓 XRChart 鎺т欢瀹炰緥 - XRChart xrChart = new XRChart(); - foreach (var item in GenerateAllChartData(1)) + #region 椤电湁 + + var labForCorp = new XRLabel(); + labForCorp.Name = "椤电湁"; + labForCorp.Text = "鏉窞绉戠淮鑺傝兘鎶�鏈偂浠芥湁闄愬叕鍙�"; + labForCorp.Multiline = true; + labForCorp.LocationFloat = new DevExpress.Utils.PointFloat(482F, 16F); + labForCorp.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + labForCorp.SizeF = new System.Drawing.SizeF(236F, 24F); + labForCorp.StylePriority.UseTextAlignment = false; + labForCorp.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; + this.TopMargin.Controls.Add(labForCorp); + + #endregion 椤电湁 + + #region 椤佃剼 + + var pageForCurrentNum = new XRPageInfo(); + pageForCurrentNum.LocationFloat = new DevExpress.Utils.PointFloat(617F, 10.00001F); + pageForCurrentNum.Name = "椤佃剼"; + pageForCurrentNum.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + pageForCurrentNum.SizeF = new System.Drawing.SizeF(100F, 23F); + pageForCurrentNum.StylePriority.UseTextAlignment = false; + pageForCurrentNum.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; + pageForCurrentNum.TextFormatString = "绗瑊0}椤�"; + this.BottomMargin.Controls.Add(pageForCurrentNum); + + #endregion 椤佃剼 + + #region 鏍囬 + + var labForTitle = new XRLabel(); + labForTitle.AnchorHorizontal = ((DevExpress.XtraReports.UI.HorizontalAnchorStyles)((DevExpress.XtraReports.UI.HorizontalAnchorStyles.Left | DevExpress.XtraReports.UI.HorizontalAnchorStyles.Right))); + labForTitle.Font = new DevExpress.Drawing.DXFont("Arial", 15F, DevExpress.Drawing.DXFontStyle.Bold); + labForTitle.LocationFloat = new DevExpress.Utils.PointFloat(0F, currentY); + labForTitle.Multiline = true; + labForTitle.Name = "labTitle"; + labForTitle.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 96F); + labForTitle.SizeF = new System.Drawing.SizeF(727F, 50F); + labForTitle.StylePriority.UseFont = false; + labForTitle.StylePriority.UseTextAlignment = false; + labForTitle.Text = $"{vm.Project.Name}椤圭洰鑺傝兘鎶ュ憡"; + labForTitle.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; + this.Detail.Controls.Add(labForTitle); + currentY += 50F; + + #endregion 鏍囬 + + #region 涓�銆侀」鐩杩� + + var labForDescription = CreateFirstCaption("涓�銆侀」鐩杩�", contentWidth, firstCaptionHeight, 0F, currentY); + this.Detail.Controls.Add(labForDescription); + currentY += firstCaptionHeight; + + #endregion 涓�銆侀」鐩杩� + + #region 椤圭洰姒傝堪鍐呭 + + var labForDescriptionContent = new XRLabel(); + labForDescriptionContent.AnchorHorizontal = (DevExpress.XtraReports.UI.HorizontalAnchorStyles.Left | DevExpress.XtraReports.UI.HorizontalAnchorStyles.Right); + labForDescriptionContent.Font = new DevExpress.Drawing.DXFont("Arial", 10F); + labForDescriptionContent.LocationFloat = new DevExpress.Utils.PointFloat(0F, currentY); + labForDescriptionContent.Multiline = true; + labForDescriptionContent.Name = "labForDescriptionContent"; + labForDescriptionContent.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 96F); + labForDescriptionContent.SizeF = new System.Drawing.SizeF(727F, 100F); + labForDescriptionContent.StylePriority.UseFont = false; + labForDescriptionContent.StylePriority.UseTextAlignment = false; + labForDescriptionContent.Text = $" {vm.Project.Description}"; + labForDescriptionContent.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + this.Detail.Controls.Add(labForDescriptionContent); + currentY += 100F; + + #endregion 椤圭洰姒傝堪鍐呭 + + // 浜屻�佹按娉垫槑缁� + var labForPumpList = new XRLabel(); + labForPumpList.AnchorHorizontal = (DevExpress.XtraReports.UI.HorizontalAnchorStyles.Left | DevExpress.XtraReports.UI.HorizontalAnchorStyles.Right); + labForPumpList.Font = new DevExpress.Drawing.DXFont("Arial", 12F, DevExpress.Drawing.DXFontStyle.Bold); + labForPumpList.LocationFloat = new DevExpress.Utils.PointFloat(0F, currentY); + labForPumpList.Multiline = true; + labForPumpList.Name = "labForPumpList"; + labForPumpList.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + labForPumpList.SizeF = new System.Drawing.SizeF(727F, 25F); + labForPumpList.StylePriority.UseFont = false; + labForPumpList.StylePriority.UseTextAlignment = false; + labForPumpList.Text = "浜屻�佹按娉垫槑缁�"; + labForPumpList.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + this.Detail.Controls.Add(labForPumpList); + currentY += 25F; + + // 姘存车鏄庣粏鍐呭 + if (vm.PumpList != null && vm.PumpList.Count > 0) { - // 鍒涘缓涓�涓郴鍒楋紙鏇茬嚎锛� - Series series = new Series(item.SeriesName, ViewType.Spline); + // 鍒涘缓 XRTable + var tableForPumpList = new XRTable(); + tableForPumpList.LocationF = new DevExpress.Utils.PointFloat(0F, currentY); + tableForPumpList.SizeF = new SizeF(727F, 30F + vm.PumpList.Count * 25F); // 璁剧疆澶у皬 - // 璁剧疆绯诲垪鐨勬暟鎹瓫閫夋潯浠� - series.FilterString = $"SeriesName = '{item.SeriesName}'"; + // 鍒涘缓琛ㄥご琛� + XRTableRow headerRowPumpList = new XRTableRow(); + headerRowPumpList.BackColor = Color.LightGray; // 璁剧疆鑳屾櫙棰滆壊 - // 璁剧疆绯诲垪鐨勬暟鎹粦瀹� - series.ArgumentDataMember = "XValue"; - series.ValueDataMembers.AddRange(new string[] { "YValue" }); + // 娣诲姞琛ㄥご鍒� + headerRowPumpList.Cells.Add(CreateTableCell("鍚嶇О", 100)); + headerRowPumpList.Cells.Add(CreateTableCell("缂栫爜", 100)); + headerRowPumpList.Cells.Add(CreateTableCell("棰濆畾娴侀噺", 100)); + headerRowPumpList.Cells.Add(CreateTableCell("棰濆畾鎵▼", 100)); + headerRowPumpList.Cells.Add(CreateTableCell("棰濆畾鍔熺巼", 100)); + headerRowPumpList.Cells.Add(CreateTableCell("棰濆畾杞��", 100)); - // 灏嗙郴鍒楁坊鍔犲埌鍥捐〃鐨勭郴鍒楅泦鍚堜腑 - xrChart.Series.Add(series); + // 灏嗚〃澶磋娣诲姞鍒拌〃鏍� + tableForPumpList.Rows.Add(headerRowPumpList); + + // 閬嶅巻姘存车 + foreach (var pump in vm.PumpList) + { + // 鍒涘缓鏁版嵁琛� + var dataRow = new XRTableRow(); + dataRow.Cells.Add(new XRTableCell() + { + Text = pump.Name, + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + dataRow.Cells.Add(new XRTableCell() + { + Text = pump.Code, + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + dataRow.Cells.Add(new XRTableCell() + { + Text = pump.RatedQ.ToString(), + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + dataRow.Cells.Add(new XRTableCell() + { + Text = pump.RatedH.ToString(), + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + dataRow.Cells.Add(new XRTableCell() + { + Text = pump.RatedP.ToString(), + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + dataRow.Cells.Add(new XRTableCell() + { + Text = pump.RatedN.ToString(), + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + tableForPumpList.Rows.Add(dataRow); + } + + // 灏嗚〃鏍兼坊鍔犲埌Detail + this.Detail.Controls.Add(tableForPumpList); + currentY += tableForPumpList.HeightF; + //currentY += vm.PumpList.Count*10; } - xrChart.DataSource = GenerateAllChartData(1); - //Detail1.Controls.Add(xrChart); - } - public class ChartDataPoint - { - public double XValue { get; set; } // 妯潗鏍囧�� - public double YValue { get; set; } // 绾靛潗鏍囧�� - public string SeriesName { get; set; } // 绯诲垪鍚嶇О锛岀敤浜庡尯鍒嗕笉鍚岀殑绾� - } - - public List<ChartDataPoint> GenerateAllChartData(int i) - { - List<ChartDataPoint> series1Data = new List<ChartDataPoint>(); - foreach (var item in _printViewModel.WorkingList.First().PumpAnaly.Items[i].RatedCurveQE) + var labForWorking = CreateFirstCaption("涓夈�佸伐鍐佃鍥�", contentWidth, firstCaptionHeight, 0F, currentY); + this.Detail.Controls.Add(labForWorking); + currentY += firstCaptionHeight; + var labForAccuracy = CreateFirstCaption("(1)銆佺簿搴﹁瘎浼�", contentWidth - 25F, 15F, 20F, currentY); + this.Detail.Controls.Add(labForAccuracy); + currentY += firstCaptionHeight; + if (vm.WorkingList != null && vm.WorkingList.Count > 0) { - series1Data.Add(new ChartDataPoint + foreach (var working in vm.WorkingList) { - XValue = item.X, - YValue = item.Y, - SeriesName = _printViewModel.WorkingList.First().PumpAnaly.Items[i].Name - }); - }; + /*XRChart chart = new XRChart(); + chart.LocationF = new DevExpress.Utils.PointFloat(0F, currentY); + chart.WidthF = contentWidth; + chart.HeightF = 300F; - List<ChartDataPoint> series2Data = new List<ChartDataPoint>(); - foreach (var item in _printViewModel.WorkingList.First().PumpAnaly.Items[i].CurrentCurveQH) - { - series2Data.Add(new ChartDataPoint - { - XValue = item.X, - YValue = item.Y, - SeriesName = _printViewModel.WorkingList.First().PumpAnaly.Items[i].Name - }); - }; + // 鍒涘缓涓�涓嚎绯诲垪 + 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); + Series series2 = new Series("Series2", ViewType.Spline); + // 娣诲姞鏁版嵁鐐� + foreach (var item in working.PumpAnaly.Items[0].CurrentCurveQE) + { + series2.Points.Add(new SeriesPoint(item.X, item.Y)); + } + chart.Series.Add(series2); + Series series3 = new Series("Series3", ViewType.Spline); + // 娣诲姞鏁版嵁鐐� + foreach (var item in working.PumpAnaly.Items[0].CurrentCurveQP) + { + series3.Points.Add(new SeriesPoint(item.X, item.Y)); + } + chart.Series.Add(series3); - List<ChartDataPoint> series3Data = new List<ChartDataPoint>(); - foreach (var item in _printViewModel.WorkingList.First().PumpAnaly.Items[i].CurrentCurveQP) + Detail.Controls.Add(chart); + currentY += chart.HeightF;*/ + /* var accuracyFlowChart = CreateAccuracyItem(working.Accuracy.Flow?.AvgError ?? 0, 213F, 250F, 300F, currentY); + if (currentY + accuracyFlowChart.HeightF > pageHeight) + { + accuracyFlowChart.LocationF = new DevExpress.Utils.PointFloat(accuracyFlowChart.LocationF.X, currentY); + } + Detail.Controls.Add(accuracyFlowChart); + currentY += accuracyFlowChart.HeightF; + + var accuracyPressChart = CreateAccuracyItem(working.Accuracy.Press?.AvgError ?? 0, 213F, 250F, 513F, currentY); + if (currentY + accuracyPressChart.HeightF > pageHeight) + { + accuracyPressChart.LocationF = new DevExpress.Utils.PointFloat(accuracyPressChart.LocationF.X, currentY); + } + Detail.Controls.Add(accuracyPressChart); + currentY += accuracyPressChart.HeightF;*/ + var accuracyScaleChart = CreateAccuracyScale(working.Accuracy.Scale, 300F, 230F, currentY); + Detail.Controls.Add(accuracyScaleChart); + var accuracyFlowChart = CreateAccuracyItem(working.Accuracy.Flow?.AvgError ?? 0, 213F, 230F, 300F, currentY); + Detail.Controls.Add(accuracyFlowChart); + var accuracyPressChart = CreateAccuracyItem(working.Accuracy.Press?.AvgError ?? 0, 213F, 230F, 513F, currentY); + Detail.Controls.Add(accuracyPressChart); + currentY += accuracyScaleChart.HeightF; + } + currentY += 20F; + } + var labForAccuracyList = CreateFirstCaption("(1.1)銆佽瘎浼板垪琛�", contentWidth - 25F, 15F, 20F, currentY); + this.Detail.Controls.Add(labForAccuracyList); + currentY += firstCaptionHeight; + + #region 璇勪及鍒楄〃 + + if (vm.WorkingList != null && vm.WorkingList.Count > 0) { - series3Data.Add(new ChartDataPoint + foreach (var working in vm.WorkingList) { - XValue = item.X, - YValue = item.Y, - SeriesName = _printViewModel.WorkingList.First().PumpAnaly.Items[i].Name - }); - }; - // 鍚堝苟鎵�鏈夌郴鍒楃殑鏁版嵁 - List<ChartDataPoint> allData = new List<ChartDataPoint>(); - allData.AddRange(series1Data); - allData.AddRange(series2Data); - allData.AddRange(series3Data); - return allData; + if (working.Accuracy.Items != null && working.Accuracy.Items.Count > 0) + { // 鍒涘缓 XRTable + var tableForAccuracyList = new XRTable(); + tableForAccuracyList.LocationF = new DevExpress.Utils.PointFloat(0F, currentY); + tableForAccuracyList.SizeF = new SizeF(727F, 30F + working.Accuracy.Items.Count * 25F); // 璁剧疆澶у皬 + + // 鍒涘缓琛ㄥご琛� + XRTableRow headerRowAccuracyList = new XRTableRow(); + headerRowAccuracyList.BackColor = Color.LightGray; // 璁剧疆鑳屾櫙棰滆壊 + + // 娣诲姞琛ㄥご鍒� + headerRowAccuracyList.Cells.Add(CreateTableCell("璇勪及鏋勪欢", 100)); + headerRowAccuracyList.Cells.Add(CreateTableCell("璇勪及椤�", 100)); + headerRowAccuracyList.Cells.Add(CreateTableCell("鐩戞祴鍊�", 100)); + headerRowAccuracyList.Cells.Add(CreateTableCell("璁$畻鍊�", 100)); + headerRowAccuracyList.Cells.Add(CreateTableCell("璇勪及璇樊", 100)); + + // 灏嗚〃澶磋娣诲姞鍒拌〃鏍� + tableForAccuracyList.Rows.Add(headerRowAccuracyList); + + foreach (var item in working.Accuracy.Items) + { + // 鍒涘缓鏁版嵁琛� + var dataRow = new XRTableRow(); + dataRow.Cells.Add(new XRTableCell() + { + Text = item.EvaluateName, + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + dataRow.Cells.Add(new XRTableCell() + { + Text = item.EvaluateItem, + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + dataRow.Cells.Add(new XRTableCell() + { + Text = item.MonitorValue.ToString(), + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + dataRow.Cells.Add(new XRTableCell() + { + Text = item.CalcuValue.ToString(), + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + dataRow.Cells.Add(new XRTableCell() + { + Text = item.EvaluateError?.ToString(), + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + tableForAccuracyList.Rows.Add(dataRow); + } + // 灏嗚〃鏍兼坊鍔犲埌Detail + this.Detail.Controls.Add(tableForAccuracyList); + currentY += tableForAccuracyList.HeightF; + } + } + currentY += 20F; + } + + #endregion 璇勪及鍒楄〃 + + #region 姘存车鍒嗘瀽 + + var labForPump = CreateFirstCaption("(2)銆佹按娉靛垎鏋�", contentWidth - 25F, 15F, 20F, currentY); + this.Detail.Controls.Add(labForPump); + currentY += 20F; + if (vm.WorkingList != null && vm.WorkingList.Count > 0) + { + foreach (var working in vm.WorkingList) + { + if (working.PumpAnaly != null && working.PumpAnaly.Items != null && working.PumpAnaly.Items.Count > 0) + { + foreach (var item in working.PumpAnaly.Items) + { + var label = CreateFirstCaption(item.Name, contentWidth - 25F, 15F, 20F, currentY); + this.Detail.Controls.Add(label); + currentY += 20F; + + XRChart chart = new XRChart(); + ((System.ComponentModel.ISupportInitialize)(chart)).BeginInit(); + chart.LocationF = new DevExpress.Utils.PointFloat(0F, currentY); + chart.WidthF = contentWidth; + chart.HeightF = 700F; + chart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False; + + // 鍒涘缓 XY 鍥捐〃 + XYDiagram xyDiagram = new XYDiagram(); + ((System.ComponentModel.ISupportInitialize)(xyDiagram)).BeginInit(); + + // 閰嶇疆涓� 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"; + xyDiagram.AxisY.Title.Visibility = DefaultBoolean.True; + xyDiagram.AxisY.Visibility = DefaultBoolean.True; + + // 鍒涘缓涓や釜闈㈡澘 + 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 = "鍔熺巼"; + secondaryAxisY1.Title.Visibility = DefaultBoolean.True; + secondaryAxisY1.Visibility = DefaultBoolean.True; + xyDiagram.SecondaryAxesY.Add(secondaryAxisY1); + + SecondaryAxisY secondaryAxisY2 = new SecondaryAxisY("Secondary Y-Axis 2"); + secondaryAxisY2.Title.Text = "鏁堢巼"; + secondaryAxisY2.Title.Visibility = DefaultBoolean.True; + secondaryAxisY2.Visibility = DefaultBoolean.True; + xyDiagram.SecondaryAxesY.Add(secondaryAxisY2); + + chart.Diagram = xyDiagram; + ((System.ComponentModel.ISupportInitialize)(xyDiagram)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(chart)).EndInit(); + + // 鍒涘缓绗竴涓郴鍒� + Series series1 = new Series("Series 1", ViewType.Spline); + foreach (var qh in item.RatedCurveQH) + { + series1.Points.Add(new SeriesPoint(qh.X, qh.Y)); + } + series1.LabelsVisibility = DefaultBoolean.False; + chart.Series.Add(series1); + // 鍒涘缓绗簩涓郴鍒� + Series series2 = new Series("Series 2", ViewType.Spline); + foreach (var qe in item.RatedCurveQE) + { + 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); + // 鍒涘缓绗笁涓郴鍒� + Series series3 = new Series("Series 3", ViewType.Spline); + foreach (var qp in item.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); + + Detail.Controls.Add(chart); + currentY += chart.HeightF; + } + } + } + currentY += 20F; + } + + #endregion 姘存车鍒嗘瀽 + + #region 鐩戞祴鍒嗘瀽 + + var labForMonitor = CreateFirstCaption("(3)銆佺洃娴嬪垎鏋�", contentWidth - 25F, 15F, 20F, currentY); + this.Detail.Controls.Add(labForMonitor); + currentY += 20F; + if (vm.WorkingList != null && vm.WorkingList.Count > 0) + { + foreach (var working in vm.WorkingList) + { + if (working.MonitorAnaly.Items != null && working.MonitorAnaly.Items.Count > 0) + { // 鍒涘缓 XRTable + var tableForMonitorList = new XRTable(); + tableForMonitorList.LocationF = new DevExpress.Utils.PointFloat(0F, currentY); + tableForMonitorList.SizeF = new SizeF(727F, 30F + working.MonitorAnaly.Items.Count * 25F); // 璁剧疆澶у皬 + + // 鍒涘缓琛ㄥご琛� + XRTableRow headerRowMonitorList = new XRTableRow(); + headerRowMonitorList.BackColor = Color.LightGray; // 璁剧疆鑳屾櫙棰滆壊 + + // 娣诲姞琛ㄥご鍒� + headerRowMonitorList.Cells.Add(CreateTableCell("鏋勪欢", 100)); + headerRowMonitorList.Cells.Add(CreateTableCell("灞炴��", 100)); + headerRowMonitorList.Cells.Add(CreateTableCell("璁$畻鍊�", 100)); + headerRowMonitorList.Cells.Add(CreateTableCell("鍗曚綅", 100)); + + // 灏嗚〃澶磋娣诲姞鍒拌〃鏍� + tableForMonitorList.Rows.Add(headerRowMonitorList); + + foreach (var item in working.MonitorAnaly.Items) + { + // 鍒涘缓鏁版嵁琛� + var dataRow = new XRTableRow(); + dataRow.Cells.Add(new XRTableCell() + { + Text = item.VisualName, + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + dataRow.Cells.Add(new XRTableCell() + { + Text = item.PropName, + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + dataRow.Cells.Add(new XRTableCell() + { + Text = item.CalcuValue?.ToString(), + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + dataRow.Cells.Add(new XRTableCell() + { + Text = item.UnitName, + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + tableForMonitorList.Rows.Add(dataRow); + } + // 灏嗚〃鏍兼坊鍔犲埌Detail + this.Detail.Controls.Add(tableForMonitorList); + currentY += tableForMonitorList.HeightF; + currentY += 20F; + } + } + } + + #endregion 鐩戞祴鍒嗘瀽 + + #region 鑳借�楀垎鏋� + + var labForEnergyAnaly = CreateFirstCaption("(4)銆佽兘鑰楀垎鏋�", contentWidth - 25F, 15F, 20F, currentY); + this.Detail.Controls.Add(labForEnergyAnaly); + currentY += 20F; + if (vm.WorkingList != null && vm.WorkingList.Count > 0) + { + foreach (var working in vm.WorkingList) + { + if (working.EnergyAnaly != null) + { + if (working.EnergyAnaly.Items != null && working.EnergyAnaly.Items.Count > 0) + { + var group = working.EnergyAnaly.Items.GroupBy(x => x.BeginGroup).ToArray(); + foreach (var item in group) + { + var label = CreateFirstCaption(item.Key, contentWidth - 25F, 15F, 20F, currentY); + 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 chartQE = new XRChart(); + chartQE.LocationF = new DevExpress.Utils.PointFloat(0F, currentY + chartQh.HeightF); + chartQE.WidthF = contentWidth; + chartQE.HeightF = 300F; + + XRChart chartQP = new XRChart(); + chartQP.LocationF = new DevExpress.Utils.PointFloat(0F, currentY + chartQh.HeightF + chartQE.HeightF); + chartQP.WidthF = contentWidth; + chartQP.HeightF = 300F; + + foreach (var valve in item) + { + // 鍒涘缓涓�涓嚎绯诲垪 + Series series = new Series(valve.Code, ViewType.Spline); + // 娣诲姞鏁版嵁鐐� + foreach (var qh in valve.CurrentCurveQH) + { + series.Points.Add(new SeriesPoint(qh.X.ToString(), qh.Y.ToString())); + } + chartQh.Series.Add(series); + + Series series2 = new Series("Series2", ViewType.Spline); + // 娣诲姞鏁版嵁鐐� + foreach (var qe in valve.CurrentCurveQE) + { + series2.Points.Add(new SeriesPoint(qe.X.ToString(), qe.Y.ToString())); + } + chartQE.Series.Add(series2); + + Series series3 = new Series("Series3", ViewType.Spline); + // 娣诲姞鏁版嵁鐐� + foreach (var qp in valve.CurrentCurveQP) + { + series3.Points.Add(new SeriesPoint(qp.X.ToString(), qp.Y.ToString())); + } + 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; + } + } + } + } + } + + #endregion 鑳借�楀垎鏋� + + //鑳芥晥鏄庣粏 + var labForEnergyDetails = CreateFirstCaption("(4.1)銆佽兘鏁堟槑缁�", contentWidth - 25F, 15F, 20F, currentY); + this.Detail.Controls.Add(labForEnergyDetails); + currentY += 20F; + if (vm.WorkingList != null && vm.WorkingList.Count > 0) + { + foreach (var working in vm.WorkingList) + { + if (working.EnergyAnaly.Items != null && working.EnergyAnaly.Items.Count > 0) + { + // 鍒涘缓 XRTable + var tableForEnergyDetails = new XRTable(); + tableForEnergyDetails.LocationF = new DevExpress.Utils.PointFloat(0F, currentY); + tableForEnergyDetails.SizeF = new SizeF(727F, 30F + working.EnergyAnaly.Items.Count * 25F); // 璁剧疆澶у皬 + + // 鍒涘缓琛ㄥご琛� + XRTableRow headerRowEnergyDetails = new XRTableRow(); + headerRowEnergyDetails.BackColor = Color.LightGray; // 璁剧疆鑳屾櫙棰滆壊 + + // 娣诲姞琛ㄥご鍒� + headerRowEnergyDetails.Cells.Add(CreateTableCell("鍒嗙粍", 100)); + headerRowEnergyDetails.Cells.Add(CreateTableCell("鍚嶇О", 100)); + headerRowEnergyDetails.Cells.Add(CreateTableCell("杩愯鐘舵��", 100)); + headerRowEnergyDetails.Cells.Add(CreateTableCell("璁惧畾璇勭巼(hz)", 100)); + headerRowEnergyDetails.Cells.Add(CreateTableCell("璁惧畾娴侀噺(m鲁/h)", 100)); + headerRowEnergyDetails.Cells.Add(CreateTableCell("杩涘彛鍘嬪姏(m)", 100)); + headerRowEnergyDetails.Cells.Add(CreateTableCell("鍑哄彛鍘嬪姏(m)", 100)); + headerRowEnergyDetails.Cells.Add(CreateTableCell("鎵▼(m)", 100)); + headerRowEnergyDetails.Cells.Add(CreateTableCell("鍔熺巼(Kw)", 100)); + headerRowEnergyDetails.Cells.Add(CreateTableCell("鏁堢巼(%)", 100)); + // 灏嗚〃澶磋娣诲姞鍒拌〃鏍� + tableForEnergyDetails.Rows.Add(headerRowEnergyDetails); + + foreach (var item in working.EnergyAnaly.Items) + { + // 鍒涘缓鏁版嵁琛� + var dataRow = new XRTableRow(); + dataRow.Cells.Add(new XRTableCell() + { + Text = item.BeginGroup, + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + dataRow.Cells.Add(new XRTableCell() + { + Text = item.Name, + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + dataRow.Cells.Add(new XRTableCell() + { + Text = item.LinkStatus, + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + dataRow.Cells.Add(new XRTableCell() + { + Text = item.CurrentHz.ToString(), + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + dataRow.Cells.Add(new XRTableCell() + { + Text = item.RatedHz.ToString(), + WidthF = 100F, + TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter, + Borders = DevExpress.XtraPrinting.BorderSide.All + }); + tableForEnergyDetails.Rows.Add(dataRow); + } + // 灏嗚〃鏍兼坊鍔犲埌Detail + this.Detail.Controls.Add(tableForEnergyDetails); + currentY += tableForEnergyDetails.HeightF; + currentY += 20F; + } + } + } + + #region 鎹熷け鏇茬嚎 + + var labForLossCurve = CreateFirstCaption("(5)銆佹崯澶辨洸绾�", contentWidth - 25F, 15F, 20F, currentY); + this.Detail.Controls.Add(labForLossCurve); + currentY += 20F; + if (vm.WorkingList != null && vm.WorkingList.Count > 0) + { + foreach (var working in vm.WorkingList) + { + if (working.LossCurve != null && working.LossCurve.Items != null) + { + XRChart chart = new XRChart(); + chart.LocationF = new DevExpress.Utils.PointFloat(0F, currentY); + chart.WidthF = contentWidth; + chart.HeightF = 300F; + + // 鍒涘缓涓�涓嚎绯诲垪 + Series series = new Series("Series1", ViewType.Area); + Series series2 = new Series("Series2", ViewType.Area); + Series series3 = new Series("Series3", ViewType.Area); + // 娣诲姞鏁版嵁鐐� + foreach (var item in working.LossCurve.End.Items) + { + series.Points.Add(new SeriesPoint(item.X, item.Y)); + } + // 娣诲姞鏁版嵁鐐� + foreach (var item in working.LossCurve.Start.Items) + { + series2.Points.Add(new SeriesPoint(item.X, item.Y)); + } // 娣诲姞鏁版嵁鐐� + foreach (var item in working.LossCurve.Elev.Items) + { + series3.Points.Add(new SeriesPoint(item.X, item.Y)); + } + + chart.Series.Add(series); + chart.Series.Add(series2); + chart.Series.Add(series3); + Detail.Controls.Add(chart); + currentY += chart.HeightF; + } + } + } + + #endregion 鎹熷け鏇茬嚎 + + #region 鎹熷け缁熻 + + var labForLossStatistics = CreateFirstCaption("(6)銆佹崯澶辩粺璁�", contentWidth - 25F, 15F, 20F, currentY); + this.Detail.Controls.Add(labForLossStatistics); + currentY += 20F; + if (vm.WorkingList != null && vm.WorkingList.Count > 0) + { + foreach (var working in vm.WorkingList) + { + var accuracyScaleChart = CreateLossStatistics(working.LossStatistics, 350F, 230F, 0F, currentY); + Detail.Controls.Add(accuracyScaleChart); + var EnergyLossChart = CreateEnergyLoss(working.LossStatistics, 377F, 230F, 350F, currentY); + Detail.Controls.Add(EnergyLossChart); + currentY += accuracyScaleChart.HeightF; + var CategoryChart = CreateCategory(working.LossStatistics, 727F, 230F, 0F, currentY); + Detail.Controls.Add(CategoryChart); + } + } + + #endregion 鎹熷け缁熻 } - public class Product + //鍒涘缓涓�绾ф爣棰� + private XRLabel CreateFirstCaption(string caption, float sizeX, float sizeY, float locationX, float locationY) { - public string Name { get; set; } - public decimal Code { get; set; } + 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; } - public List<Product> CreateSampleProductList() + //鍒涘缓绮惧害姣斾緥 + private XRChart CreateAccuracyScale(SimulationPrintAccuracyScaleViewModel scale, float sizeX, float sizeY, float locationY) { - List<Product> products = new List<Product> - { - new Product { Name = "鑻规灉", Code = 5.99m }, - new Product { Name = "棣欒晧", Code = 3.99m }, - new Product { Name = "姗欏瓙", Code = 4.99m } - }; + 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); - return products; + 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 != null) + { + 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 CreateLossStatistics(HydroLossStatisticsViewModel statistics, 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); + + 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", 8F, 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 (statistics != null) + { + if (statistics.Input.Items != null && statistics.Input.Items.Count > 0) + { + foreach (var item in statistics.Input.Items) + { + series.Points.Add(new SeriesPoint(item.EnergyName.ToString(), item.EnergyValue)); + } + } + doughnutSeriesView.TotalLabel.TextPattern = $"鎬昏兘閲�:{statistics.Input.TotalEnergyValue:P0}"; + } + return chart; + } + + //鍒涘缓鑳介噺缁熻 + private XRChart CreateCategory(HydroLossStatisticsViewModel statistics, 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.SizeF = new System.Drawing.SizeF(sizeX, sizeY); + chart.StylePriority.UseBackColor = false; + chart.StylePriority.UsePadding = false; + if (statistics != null) + { + if (statistics.Category != null && statistics.Category.Items.Count > 0) + { + foreach (var item in statistics.Category.Items) + { + var series1 = new Series(item.EnergyName, ViewType.Bar); + series1.Points.Add(new SeriesPoint(item.EnergyName.ToString(), item.EnergyValue)); + // 鑾峰彇绯诲垪瑙嗗浘骞惰浆鎹负 BarSeriesView 绫诲瀷 + BarSeriesView barSeriesView = (BarSeriesView)series1.View; + series1.Label.TextPattern = "{V} KW"; + // 璁剧疆鏌卞瓙瀹藉害锛岃繖閲岃缃负 0.8锛屽彲鏍规嵁闇�瑕佽皟鏁� + barSeriesView.BarWidth = 2.5; + // 灏嗙郴鍒楁坊鍔犲埌鍥捐〃涓� + chart.Series.Add(series1); + } + } + } + return chart; + } + + //鍒涘缓鑳介噺鎹熷け + private XRChart CreateEnergyLoss(HydroLossStatisticsViewModel statistics, 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); + + 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", 8F, 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 (statistics != null) + { + if (statistics.Catalog != null && statistics.Catalog.Items.Count > 0) + { + foreach (var item in statistics.Catalog.Items) + { + series.Points.Add(new SeriesPoint(item.EnergyName.ToString(), item.EnergyValue)); + } + } + doughnutSeriesView.TotalLabel.TextPattern = $"鎬绘崯澶�:{statistics.Input.TotalEnergyValue:P0}"; + } + 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) + { + XRTableCell cell = new XRTableCell(); + cell.Text = text; + cell.Width = width; + cell.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; // 鏂囨湰灞呬腑 + cell.Borders = DevExpress.XtraPrinting.BorderSide.All; // 璁剧疆杈规 + return cell; + } + + // 鍒涘缓鏁版嵁缁戝畾鍗曞厓鏍� + private XRTableCell CreateTableCellWithBinding(string dataMember, int width) + { + XRTableCell cell = new XRTableCell(); + cell.DataBindings.Add(new XRBinding("Text", null, dataMember)); // 缁戝畾鏁版嵁瀛楁 + cell.Width = width; + cell.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; // 鏂囨湰宸﹀榻� + cell.Borders = DevExpress.XtraPrinting.BorderSide.All; // 璁剧疆杈规 + return cell; } } } \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.Designer.cs index 09d5cc7..5022f4c 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.Designer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.Designer.cs @@ -101,7 +101,6 @@ chartControl1.Legend.LegendID = -1; chartControl1.Legend.MarkerMode = DevExpress.XtraCharts.LegendMarkerMode.CheckBox; chartControl1.Location = new Point(0, 0); - chartControl1.Margin = new Padding(4, 5, 4, 5); chartControl1.Name = "chartControl1"; chartControl1.Padding.Bottom = 10; chartControl1.Padding.Left = 20; @@ -149,7 +148,7 @@ chartControl1.SeriesTemplate.ArgumentDataMember = "X"; chartControl1.SeriesTemplate.ToolTipHintDataMember = "Name"; chartControl1.SeriesTemplate.ValueDataMembersSerializable = "Y"; - chartControl1.Size = new Size(1211, 894); + chartControl1.Size = new Size(848, 569); chartControl1.TabIndex = 0; chartControl1.ToolTipEnabled = DevExpress.Utils.DefaultBoolean.True; chartControl1.ToolTipOptions.ShowForSeries = true; @@ -158,12 +157,11 @@ // // HydroSingleWorkingLossCurveCtrl // - AutoScaleDimensions = new SizeF(10F, 22F); + AutoScaleDimensions = new SizeF(7F, 14F); AutoScaleMode = AutoScaleMode.Font; Controls.Add(chartControl1); - Margin = new Padding(4, 5, 4, 5); Name = "HydroSingleWorkingLossCurveCtrl"; - Size = new Size(1211, 894); + Size = new Size(848, 569); ((ISupportInitialize)lossBindingSource).EndInit(); ((ISupportInitialize)elevBindingSource).EndInit(); ((ISupportInitialize)textAnnotation1).EndInit(); diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.resx index 9471e03..e760b41 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.resx +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.resx @@ -1,7 +1,7 @@ 锘�<?xml version="1.0" encoding="utf-8"?> <root> <!-- - Microsoft ResX Schema + Microsoft ResX Schema Version 2.0 @@ -48,7 +48,7 @@ value : The object must be serialized with : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : and then encoded with base64 encoding. - + mimetype: application/x-microsoft.net.object.soap.base64 value : The object must be serialized with : System.Runtime.Serialization.Formatters.Soap.SoapFormatter -- Gitblit v1.9.3