| | |
| | | using DevExpress.XtraReports.UI; |
| | | using DevExpress.XtraCharts; |
| | | using DevExpress.XtraReports.UI; |
| | | using System; |
| | | using System.Collections; |
| | | using System.ComponentModel; |
| | |
| | | //A4设置 827 1169 |
| | | this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4; |
| | | this.Margins = new DevExpress.Drawing.DXMargins(50, 50, 50, 50); |
| | | |
| | | //内容宽度 |
| | | float contentWidth = 727F;//内容宽度 |
| | | float firstCaptionHeight = 30F;//一级标题高度 |
| | | |
| | | //727 1069 |
| | | |
| | |
| | | |
| | | #region 一、项目概述 |
| | | |
| | | var labForDescription = new XRLabel(); |
| | | labForDescription.AnchorHorizontal = (DevExpress.XtraReports.UI.HorizontalAnchorStyles.Left | DevExpress.XtraReports.UI.HorizontalAnchorStyles.Right); |
| | | labForDescription.Font = new DevExpress.Drawing.DXFont("Arial", 12F, DevExpress.Drawing.DXFontStyle.Bold); |
| | | labForDescription.LocationFloat = new DevExpress.Utils.PointFloat(0F, locationY); |
| | | labForDescription.Multiline = true; |
| | | labForDescription.Name = "labForDescription"; |
| | | labForDescription.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); |
| | | labForDescription.SizeF = new System.Drawing.SizeF(727F, 25F); |
| | | labForDescription.StylePriority.UseFont = false; |
| | | labForDescription.StylePriority.UseTextAlignment = false; |
| | | labForDescription.Text = "一、项目概述"; |
| | | labForDescription.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; |
| | | var labForDescription = CreateFirstCaption("一、项目概述", contentWidth, firstCaptionHeight, 0F, locationY); |
| | | this.Detail.Controls.Add(labForDescription); |
| | | locationY += 25F; |
| | | locationY += firstCaptionHeight; |
| | | |
| | | #endregion |
| | | |
| | |
| | | |
| | | // 将表格添加到Detail |
| | | this.Detail.Controls.Add(tableForPumpList); |
| | | locationY += 30F; |
| | | locationY += 30F * vm.PumpList.Count; |
| | | } |
| | | |
| | | if (vm.WorkingList != null && vm.WorkingList.Count > 0) |
| | | { |
| | | foreach (var working in vm.WorkingList) |
| | | { |
| | | //XRChart chart = new XRChart(); |
| | | //chart.LocationF = new DevExpress.Utils.PointFloat(0F, locationY); |
| | | //chart.WidthF = contentWidth; |
| | | //chart.HeightF = 300F; |
| | | |
| | | //// 创建一个线系列 |
| | | //Series series = new Series("Series1", ViewType.Spline); |
| | | |
| | | //// 添加数据点 |
| | | //foreach (var item in working.PumpAnaly.Items[0].RatedCurveQH) |
| | | //{ |
| | | // series.Points.Add(new SeriesPoint(item.X, item.Y)); |
| | | //} |
| | | |
| | | //chart.Series.Add(series); |
| | | |
| | | //Detail.Controls.Add(chart); |
| | | |
| | | var accuracyScaleChart = CreateAccuracyScale(working.Accuracy.Scale, 300F, 250F, locationY); |
| | | Detail.Controls.Add(accuracyScaleChart); |
| | | var accuracyFlowChart = CreateAccuracyItem(working.Accuracy.Flow?.AvgError ?? 0, 213F, 250F, 300F, locationY); |
| | | Detail.Controls.Add(accuracyFlowChart); |
| | | var accuracyPressChart = CreateAccuracyItem(working.Accuracy.Press?.AvgError ?? 0, 213F, 250F, 513F, locationY); |
| | | Detail.Controls.Add(accuracyPressChart); |
| | | |
| | | //var chart = new XRChart(); |
| | | //chart.BackColor = System.Drawing.Color.Transparent; |
| | | //chart.BorderColor = System.Drawing.Color.Black; |
| | | //chart.Borders = DevExpress.XtraPrinting.BorderSide.None; |
| | | ////chart.Legend.LegendID = -1; |
| | | //chart.Legend.Name = "Default Legend"; |
| | | //chart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False; |
| | | //chart.LocationFloat = new DevExpress.Utils.PointFloat(20F, locationY); |
| | | //chart.Name = "xrChart6"; |
| | | //chart.Padding = new DevExpress.XtraPrinting.PaddingInfo(10, 10, 20, 20, 96F); |
| | | //chart.PaletteRepository.Add("Palette 1", new DevExpress.XtraCharts.Palette("Palette 1", DevExpress.XtraCharts.PaletteScaleMode.Repeat, new DevExpress.XtraCharts.PaletteEntry[] { |
| | | //new DevExpress.XtraCharts.PaletteEntry(System.Drawing.Color.FromArgb(((int)(((byte)(103)))), ((int)(((byte)(174)))), ((int)(((byte)(197))))), System.Drawing.Color.FromArgb(((int)(((byte)(103)))), ((int)(((byte)(174)))), ((int)(((byte)(197)))))), |
| | | //new DevExpress.XtraCharts.PaletteEntry(System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(236)))), ((int)(((byte)(240))))), System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(236)))), ((int)(((byte)(240))))))})); |
| | | //chart.PaletteName = "Palette 1"; |
| | | |
| | | |
| | | |
| | | //var series = new DevExpress.XtraCharts.Series(); |
| | | //series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False; |
| | | //series.Name = "Series 1"; |
| | | ////series.SeriesID = 0; |
| | | //var doughnutSeriesView = new DevExpress.XtraCharts.DoughnutSeriesView(); |
| | | //doughnutSeriesView.HoleRadiusPercent = 45; |
| | | //doughnutSeriesView.TotalLabel.DXFont = new DevExpress.Drawing.DXFont("Tahoma", 12F, DevExpress.Drawing.DXFontStyle.Bold); |
| | | //doughnutSeriesView.TotalLabel.Visible = true; |
| | | //series.View = doughnutSeriesView; |
| | | //chart.SeriesSerializable = new DevExpress.XtraCharts.Series[] { series }; |
| | | //chart.SizeF = new System.Drawing.SizeF(175F, 185F); |
| | | //chart.StylePriority.UseBackColor = false; |
| | | //chart.StylePriority.UsePadding = false; |
| | | |
| | | //series.Points.Add(new SeriesPoint("误差", 15)); |
| | | //series.Points.Add(new SeriesPoint("其他", 85)); |
| | | |
| | | //doughnutSeriesView.TotalLabel.TextPattern = string.Format("{0:0%}", 0.15); |
| | | |
| | | //this.Detail.Controls.Add(chart); |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | //创建一级标题 |
| | | private XRLabel CreateFirstCaption(string caption, float sizeX, float sizeY, float locationX, float locationY) |
| | | { |
| | | var lab = new XRLabel(); |
| | | lab.AnchorHorizontal = (DevExpress.XtraReports.UI.HorizontalAnchorStyles.Left | DevExpress.XtraReports.UI.HorizontalAnchorStyles.Right); |
| | | lab.Font = new DevExpress.Drawing.DXFont("Arial", 12F, DevExpress.Drawing.DXFontStyle.Bold); |
| | | lab.LocationFloat = new DevExpress.Utils.PointFloat(locationX, locationY); |
| | | lab.Multiline = true; |
| | | lab.Name = "lab"; |
| | | lab.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); |
| | | lab.SizeF = new System.Drawing.SizeF(sizeX, sizeY); |
| | | lab.StylePriority.UseFont = false; |
| | | lab.StylePriority.UseTextAlignment = false; |
| | | lab.Text = caption; |
| | | lab.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; |
| | | return lab; |
| | | } |
| | | |
| | | //创建精度比例 |
| | | private XRChart CreateAccuracyScale(SimulationPrintAccuracyScaleViewModel scale, float sizeX, float sizeY, float locationY) |
| | | { |
| | | var chart = new XRChart(); |
| | | chart.BackColor = System.Drawing.Color.Transparent; |
| | | chart.BorderColor = System.Drawing.Color.Black; |
| | | chart.Borders = DevExpress.XtraPrinting.BorderSide.All; |
| | | chart.Legend.Name = "Default Legend"; |
| | | chart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False; |
| | | chart.LocationFloat = new DevExpress.Utils.PointFloat(0F, locationY); |
| | | chart.Name = "chart"; |
| | | chart.Padding = new DevExpress.XtraPrinting.PaddingInfo(10, 10, 20, 20, 100F); |
| | | |
| | | var series = new DevExpress.XtraCharts.Series(); |
| | | series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True; |
| | | series.Name = "Series"; |
| | | var doughnutSeriesView = new DevExpress.XtraCharts.DoughnutSeriesView(); |
| | | doughnutSeriesView.HoleRadiusPercent = 45; |
| | | doughnutSeriesView.TotalLabel.DXFont = new DevExpress.Drawing.DXFont("Tahoma", 12F, DevExpress.Drawing.DXFontStyle.Bold); |
| | | doughnutSeriesView.TotalLabel.Visible = true; |
| | | series.View = doughnutSeriesView; |
| | | series.Label.LineVisibility = DevExpress.Utils.DefaultBoolean.True; |
| | | series.Label.TextPattern = "{A}:{VP:P1}"; |
| | | chart.SeriesSerializable = new DevExpress.XtraCharts.Series[] { series }; |
| | | chart.SizeF = new System.Drawing.SizeF(sizeX, sizeY); |
| | | chart.StylePriority.UseBackColor = false; |
| | | chart.StylePriority.UsePadding = false; |
| | | |
| | | if (scale.Items != null && scale.Items.Count > 0) |
| | | { |
| | | foreach (var item in scale.Items) |
| | | { |
| | | series.Points.Add(new SeriesPoint(item.EvaluateItem, item.EvaluateCount)); |
| | | } |
| | | } |
| | | doughnutSeriesView.TotalLabel.TextPattern = string.Format("{0:0%}", (scale.AvgError ?? 0) / 100F); |
| | | return chart; |
| | | } |
| | | |
| | | //创建精度项 |
| | | private XRChart CreateAccuracyItem(double value, float sizeX, float sizeY, float locationX, float locationY) |
| | | { |
| | | var chart = new XRChart(); |
| | | chart.BackColor = System.Drawing.Color.Transparent; |
| | | chart.BorderColor = System.Drawing.Color.Black; |
| | | chart.Borders = DevExpress.XtraPrinting.BorderSide.All; |
| | | chart.Legend.Name = "Default Legend"; |
| | | chart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False; |
| | | chart.LocationFloat = new DevExpress.Utils.PointFloat(locationX, locationY); |
| | | chart.Name = "chart"; |
| | | chart.Padding = new DevExpress.XtraPrinting.PaddingInfo(10, 10, 20, 20, 100F); |
| | | chart.PaletteRepository.Add("Palette 1", new DevExpress.XtraCharts.Palette("Palette 1", DevExpress.XtraCharts.PaletteScaleMode.Repeat, new DevExpress.XtraCharts.PaletteEntry[] { |
| | | new DevExpress.XtraCharts.PaletteEntry(System.Drawing.Color.FromArgb(((int)(((byte)(103)))), ((int)(((byte)(174)))), ((int)(((byte)(197))))), System.Drawing.Color.FromArgb(((int)(((byte)(103)))), ((int)(((byte)(174)))), ((int)(((byte)(197)))))), |
| | | new DevExpress.XtraCharts.PaletteEntry(System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(236)))), ((int)(((byte)(240))))), System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(236)))), ((int)(((byte)(240))))))})); |
| | | chart.PaletteName = "Palette 1"; |
| | | |
| | | var series = new DevExpress.XtraCharts.Series(); |
| | | series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False; |
| | | series.Name = "Series"; |
| | | var doughnutSeriesView = new DevExpress.XtraCharts.DoughnutSeriesView(); |
| | | doughnutSeriesView.HoleRadiusPercent = 45; |
| | | doughnutSeriesView.TotalLabel.DXFont = new DevExpress.Drawing.DXFont("Tahoma", 12F, DevExpress.Drawing.DXFontStyle.Bold); |
| | | doughnutSeriesView.TotalLabel.Visible = true; |
| | | series.View = doughnutSeriesView; |
| | | chart.SeriesSerializable = new DevExpress.XtraCharts.Series[] { series }; |
| | | chart.SizeF = new System.Drawing.SizeF(sizeX, sizeY); |
| | | chart.StylePriority.UseBackColor = false; |
| | | chart.StylePriority.UsePadding = false; |
| | | |
| | | var otherValue = 100 - value; |
| | | series.Points.Add(new SeriesPoint("误差", value)); |
| | | series.Points.Add(new SeriesPoint("其他", otherValue)); |
| | | |
| | | doughnutSeriesView.TotalLabel.TextPattern = string.Format("{0:0%}", value / 100f); |
| | | return chart; |
| | | } |
| | | |
| | | |
| | | // 创建表头单元格 |
| | | private XRTableCell CreateTableCell(string text, int width) |
| | | { |