laatzen/GenesisDisplayTool/ReportPages.cs
2021-10-01 11:10:17 +02:00

567 lines
34 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Printing;
using System.Diagnostics;
using ZedGraph;
using PdfSharp;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;
using PdfSharp.Pdf;
using PdfSharp.Drawing.Layout;
namespace GenesisDisplayTool
{
public class ReportPages
{
public static Int32 TitlePage(Int32 pagecounter, String introduction, String title, String date, String operatorName, String serialNo, PdfDocument report, XImage logo, CultureInfo culture)
{
try
{
#region Page "TITLEPAGE"
#region Prepare data
pagecounter++; // Pagenumber not on titlepage
report.Info.Title = title;
PdfPage pdfPage = report.AddPage();
XGraphics Titlepage = XGraphics.FromPdfPage(pdfPage);
var formatter = new XTextFormatter(Titlepage);
var layoutRectangle = new XRect(1, 1, 1, 1);
Titlepage.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize));
Titlepage.DrawString($"{title}\n\n\n", ReportParams.font20, XBrushes.Black, new XRect(0, -200, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.Center);
Titlepage.DrawString(date, ReportParams.font14, XBrushes.Black, new XRect(0, -100, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.Center);
Titlepage.DrawString("by", ReportParams.font12, XBrushes.Black, new XRect(0, -50, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.Center);
Titlepage.DrawString(operatorName, ReportParams.font14, XBrushes.Black, new XRect(0, 0, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.Center);
Titlepage.DrawString($"Serial number: {serialNo}", ReportParams.font14, XBrushes.Black, new XRect(0, 100, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.Center);
formatter.DrawString(introduction, ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.IntroductionXPos, ReportParams.IntroductionYPos, 400, 200), XStringFormats.TopLeft);
#endregion
#endregion
}
catch (Exception ex)
{
#region Error
ErrorLog.Log(LogErrReason.Exception(), "ReportPages.TitlePage() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty);
#endregion
}
#region Return value
return pagecounter;
#endregion
}
public static Int32 Settings(Int32 pagecounter, String textSoftwareVersion, String[] columns, Boolean enable, PdfDocument report, XImage logo, CultureInfo culture)
{
try
{
#region Page "SETTINGS"
#region Generate page
pagecounter++;
PdfPage pdfPage = report.AddPage();
XGraphics Gp30Settings = XGraphics.FromPdfPage(pdfPage);
var formatterGp30Settings = new XTextFormatter(Gp30Settings);
var layoutRectangleGp30Settings = new XRect(1, 1, 1, 1);
#endregion
#region Set Image/ Logo
Gp30Settings.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize));
#endregion
#region Headline1
Gp30Settings.DrawString("Settings", ReportParams.font20, XBrushes.Black, new XRect(ReportParams.HeadlineXPos, ReportParams.HeadlineYPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopCenter);
#endregion
#region Headline2 (first)
Gp30Settings.DrawString("Software Version", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos, ReportParams.Headline2YPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
#endregion
#region Data
formatterGp30Settings.DrawString(textSoftwareVersion, ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft);
#endregion
#region GP30 settings
if (enable)
{
#region Headline2
Gp30Settings.DrawString("Values obtained from register readout", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos, ReportParams.Headline2YPos + 150, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
#endregion
#region Data/ text
formatterGp30Settings.DrawString(columns[ReportParams.Column1], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos, ReportParams.StandardTextYPos + 150, 400, 200), XStringFormats.TopLeft);
formatterGp30Settings.DrawString(columns[ReportParams.Column2], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + 140, ReportParams.StandardTextYPos + 150, 400, 200), XStringFormats.TopLeft);
formatterGp30Settings.DrawString(columns[ReportParams.Column3], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + 190, ReportParams.StandardTextYPos + 150, 400, 200), XStringFormats.TopLeft);
#endregion
}
#endregion
#region Set page number
Gp30Settings.DrawString($"Page {pagecounter.ToString(culture)}", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.PageNumberXPosition, ReportParams.PageNumberYPosition, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.BottomCenter);
#endregion
#endregion
}
catch (Exception ex)
{
#region Error
ErrorLog.Log(LogErrReason.Exception(), "ReportPages.Settings() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty);
#endregion
}
#region Return values
return pagecounter;
#endregion
}
public static Int32 DecodedData(Int32 pagecounter, String[] columns, Boolean enable, Boolean enableColumn2, Boolean enableColumn3, Boolean enableColumn4, PdfDocument report, XImage logo, CultureInfo culture)
{
try
{
#region Page "MEAN VALUES"
if ((enable) && ((enableColumn2) || (enableColumn3) || (enableColumn4)))
{
#region All PATHs
#region Prepare Data
pagecounter++;
PdfPage pdfPage = report.AddPage();
XGraphics XMean = XGraphics.FromPdfPage(pdfPage);
var formatterData = new XTextFormatter(XMean);
var layoutRectangleData = new XRect(1, 1, 1, 1);
Int32 Xoffset = -20;
#endregion
#region Headline1
XMean.DrawString("Decoded Data", ReportParams.font20, XBrushes.Black, new XRect(ReportParams.HeadlineXPos, ReportParams.HeadlineYPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopCenter);
#endregion
#region Set text (First column)
if (!enableColumn2)
Xoffset = Xoffset + 40;
if (!enableColumn3)
Xoffset = Xoffset + 40;
if (!enableColumn4)
Xoffset = Xoffset + 40;
formatterData.DrawString(columns[ReportParams.Column1], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft);
Xoffset = Xoffset + 120;
#endregion
#region Set Image/Logo
XMean.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize));
#endregion
#region Add pagenumber
XMean.DrawString($"Page {pagecounter.ToString(culture)}", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.PageNumberXPosition, ReportParams.PageNumberYPosition, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.BottomCenter);
#endregion
#endregion
#region PATH0
if (enableColumn2)
{
Misc.WaitNMilliseconds(100);
#region Headline2
XMean.DrawString("PATH1", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
#endregion
#region Set text
formatterData.DrawString(columns[ReportParams.Column2], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft);
Xoffset = Xoffset + 110;
#endregion
}
#endregion
#region PATH1
if (enableColumn3)
{
Misc.WaitNMilliseconds(100);
#region Headline2
XMean.DrawString("PATH2", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
#endregion
#region Set text
formatterData.DrawString(columns[ReportParams.Column3], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft);
Xoffset = Xoffset + 110;
#endregion
}
#endregion
#region PATH2
if (enableColumn4)
{
Misc.WaitNMilliseconds(100);
#region Headline2
XMean.DrawString("PATH3", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
#endregion
#region Set text
formatterData.DrawString(columns[ReportParams.Column4], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft);
#endregion
}
#endregion
}
#endregion
}
catch (Exception ex)
{
#region Error
ErrorLog.Log(LogErrReason.Exception(), "ReportPages.DecodedData() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty);
#endregion
}
#region Return values
return pagecounter;
#endregion
}
public static Int32 DecodedData2(Int32 pagecounter, String[] columns, Boolean enable, Boolean enableColumn2, Boolean enableColumn3, Boolean enableColumn4, PdfDocument report, XImage logo, CultureInfo culture)
{
try
{
#region Page "F/H-Protocol"
if ((enable) && ((enableColumn2) || (enableColumn3) || (enableColumn4)))
{
#region All PATHs
#region Prepare Data
pagecounter++;
PdfPage pdfPage = report.AddPage();
XGraphics XMean = XGraphics.FromPdfPage(pdfPage);
var formatterData = new XTextFormatter(XMean);
var layoutRectangleData = new XRect(1, 1, 1, 1);
Int32 Xoffset = -20;
#endregion
#region Headline1
XMean.DrawString("Decoded Data", ReportParams.font20, XBrushes.Black, new XRect(ReportParams.HeadlineXPos, ReportParams.HeadlineYPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopCenter);
#endregion
#region Set text (First column)
if (!enableColumn2)
Xoffset = Xoffset + 40;
if (!enableColumn3)
Xoffset = Xoffset + 40;
if (!enableColumn4)
Xoffset = Xoffset + 40;
formatterData.DrawString(columns[ReportParams.Column1], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft);
Xoffset = Xoffset + 120;
#endregion
#region Set Image/Logo
XMean.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize));
#endregion
#region Add pagenumber
XMean.DrawString($"Page {pagecounter.ToString(culture)}", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.PageNumberXPosition, ReportParams.PageNumberYPosition, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.BottomCenter);
#endregion
#endregion
#region PATH0
if (enableColumn2)
{
Misc.WaitNMilliseconds(100);
#region Headline2
XMean.DrawString("PATH1", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
#endregion
#region Set text
formatterData.DrawString(columns[ReportParams.Column2], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft);
Xoffset = Xoffset + 110;
#endregion
}
#endregion
#region PATH1
if (enableColumn3)
{
Misc.WaitNMilliseconds(100);
#region Headline2
XMean.DrawString("PATH2", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
#endregion
#region Set text
formatterData.DrawString(columns[ReportParams.Column3], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft);
Xoffset = Xoffset + 110;
#endregion
}
#endregion
#region PATH2
if (enableColumn4)
{
Misc.WaitNMilliseconds(100);
#region Headline2
XMean.DrawString("PATH3", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
#endregion
#region Set text
formatterData.DrawString(columns[ReportParams.Column4], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft);
#endregion
}
#endregion
}
#endregion
}
catch (Exception ex)
{
#region Error
ErrorLog.Log(LogErrReason.Exception(), "ReportPages.DecodedData() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty);
#endregion
}
#region Return values
return pagecounter;
#endregion
}
public static Int32 Maingraph(Int32 pagecounter, String mainGraphTitle, ZedGraphControl graph, Boolean enable, PdfDocument report, XImage logo, CultureInfo culture)
{
try
{
#region Page "MAIN GRAPH"
if (enable)
{
#region Prepare data
pagecounter++;
PdfPage pdfPage = report.AddPage();
XGraphics XDecodedDataMainGraph = XGraphics.FromPdfPage(pdfPage);
var formatterMainGraph = new XTextFormatter(XDecodedDataMainGraph);
var layoutRectangleMainGraph = new XRect(1, 1, 1, 1);
#endregion
#region Headline1
XDecodedDataMainGraph.DrawString("Main Graph", ReportParams.font20, XBrushes.Black, new XRect(ReportParams.HeadlineXPos, ReportParams.HeadlineYPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopCenter);
#endregion
#region Headline2
XDecodedDataMainGraph.DrawString(mainGraphTitle, ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos, ReportParams.Headline2YPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
#endregion
#region Set Image/Logo
XImage Image0 = graph.MasterPane.GetImage();
XDecodedDataMainGraph.DrawImage(Image0, new XRect(ReportParams.ImageXPos, ReportParams.ImageYPos, ReportParams.ImageXSize, ReportParams.ImageYSize));
XDecodedDataMainGraph.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize));
#endregion
#region Add pagenumber
XDecodedDataMainGraph.DrawString($"Page {pagecounter.ToString(culture)}", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.PageNumberXPosition, ReportParams.PageNumberYPosition, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.BottomCenter);
#endregion
}
#endregion
}
catch (Exception ex)
{
#region Error
ErrorLog.Log(LogErrReason.Exception(), "ReportPages.Maingraph() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty);
#endregion
}
#region Return value
return pagecounter;
#endregion;
}
public static Int32 StdDeviationPath0(Int32 pagecounter, String[] columns, ZedGraphControl graphPath0, Boolean enable, PdfDocument report, XImage logo, CultureInfo culture)
{
try
{
if (enable)
{
#region Standard deviation PATH0
#region Prepare Page
pagecounter++;
PdfPage pdfPage = report.AddPage();
XGraphics StdDev0 = XGraphics.FromPdfPage(pdfPage);
var formatterStdDev0 = new XTextFormatter(StdDev0);
var layoutStdDev0 = new XRect(1, 1, 1, 1);
#endregion
#region Headline1
StdDev0.DrawString("Standard Deviation", ReportParams.font20, XBrushes.Black, new XRect(ReportParams.HeadlineXPos, ReportParams.HeadlineYPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopCenter);
#endregion
#region Headline2
StdDev0.DrawString("Standard Deviation PATH1", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos, ReportParams.Headline2YPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
#endregion
#region Set image
XImage ImageStdDev0 = graphPath0.MasterPane.GetImage(1080, 640, 600, true);
StdDev0.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize));
StdDev0.DrawImage(ImageStdDev0, new XRect(ReportParams.ImageXPos, ReportParams.ImageYPos, ReportParams.ImageXSize, ReportParams.ImageYSize));
#endregion
Misc.WaitNMilliseconds(100);
#region Add data
formatterStdDev0.DrawString(columns[ReportParams.Column1], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + 20, ReportParams.StandardTextYPos + 250, 400, 200), XStringFormats.TopLeft);
formatterStdDev0.DrawString(columns[ReportParams.Column2], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + 100, ReportParams.StandardTextYPos + 250, 400, 200), XStringFormats.TopLeft);
#endregion
#region Set pagenumber
StdDev0.DrawString($"Page {pagecounter.ToString(culture)}", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.PageNumberXPosition, ReportParams.PageNumberYPosition, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.BottomCenter);
#endregion
#endregion
}
}
catch (Exception ex)
{
#region Error
ErrorLog.Log(LogErrReason.Exception(), "ReportPages.StdDeviationPath0() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty);
#endregion
}
#region Return value
return pagecounter;
#endregion
}
public static Int32 StdDeviationPath1(Int32 pagecounter, String[] columns, ZedGraphControl graphPath1, Boolean enable, PdfDocument report, XImage logo, CultureInfo culture)
{
try
{
if (enable)
{
#region Standard deviation PATH0
#region Prepare Page
pagecounter++;
PdfPage pdfPage = report.AddPage();
XGraphics StdDev1 = XGraphics.FromPdfPage(pdfPage);
var formatterStdDev1 = new XTextFormatter(StdDev1);
var layoutStdDev1 = new XRect(1, 1, 1, 1);
#endregion
#region Headline1
StdDev1.DrawString("Standard Deviation", ReportParams.font20, XBrushes.Black, new XRect(ReportParams.HeadlineXPos, ReportParams.HeadlineYPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopCenter);
#endregion
#region Headline2
StdDev1.DrawString("Standard Deviation PATH2", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos, ReportParams.Headline2YPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
#endregion
#region Set image
XImage ImageStdDev1 = graphPath1.MasterPane.GetImage(1080, 640, 600, true);
StdDev1.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize));
StdDev1.DrawImage(ImageStdDev1, new XRect(ReportParams.ImageXPos, ReportParams.ImageYPos, ReportParams.ImageXSize, ReportParams.ImageYSize));
#endregion
Misc.WaitNMilliseconds(100);
#region Add data
formatterStdDev1.DrawString(columns[ReportParams.Column1], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + 20, ReportParams.StandardTextYPos + 250, 400, 200), XStringFormats.TopLeft);
formatterStdDev1.DrawString(columns[ReportParams.Column3], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + 100, ReportParams.StandardTextYPos + 250, 400, 200), XStringFormats.TopLeft);
#endregion
#region Set pagenumber
StdDev1.DrawString($"Page {pagecounter.ToString(culture)}", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.PageNumberXPosition, ReportParams.PageNumberYPosition, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.BottomCenter);
#endregion
#endregion
}
}
catch (Exception ex)
{
#region Error
ErrorLog.Log(LogErrReason.Exception(), $"ReportPages.StdDeviationPath1() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty);
#endregion
}
#region Return value
return pagecounter;
#endregion
}
public static Int32 StdDeviationPath2(Int32 pagecounter, String[] columns, ZedGraphControl graphPath2, Boolean enable, PdfDocument report, XImage logo, CultureInfo culture)
{
try
{
if (enable)
{
#region Standard deviation PATH2
#region Prepare Page
pagecounter++;
PdfPage pdfPage = report.AddPage();
XGraphics StdDev2 = XGraphics.FromPdfPage(pdfPage);
var formatterStdDev2 = new XTextFormatter(StdDev2);
var layoutStdDev2 = new XRect(1, 1, 1, 1);
#endregion
#region Headline1
StdDev2.DrawString("Standard Deviation", ReportParams.font20, XBrushes.Black, new XRect(ReportParams.HeadlineXPos, ReportParams.HeadlineYPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopCenter);
#endregion
#region Headline2
StdDev2.DrawString("Standard Deviation PATH3", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos, ReportParams.Headline2YPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
#endregion
#region Set image
XImage ImageStdDev2 = graphPath2.MasterPane.GetImage(1080, 640, 600, true);
StdDev2.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize));
StdDev2.DrawImage(ImageStdDev2, new XRect(ReportParams.ImageXPos, ReportParams.ImageYPos, ReportParams.ImageXSize, ReportParams.ImageYSize));
#endregion
Misc.WaitNMilliseconds(100);
#region Add data
formatterStdDev2.DrawString(columns[ReportParams.Column1], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + 20, ReportParams.StandardTextYPos + 250, 400, 200), XStringFormats.TopLeft);
formatterStdDev2.DrawString(columns[ReportParams.Column4], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + 100, ReportParams.StandardTextYPos + 250, 400, 200), XStringFormats.TopLeft);
#endregion
#region Set pagenumber
StdDev2.DrawString($"Page {pagecounter.ToString(culture)}", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.PageNumberXPosition, ReportParams.PageNumberYPosition, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.BottomCenter);
#endregion
#endregion
}
}
catch (Exception ex)
{
#region Error
ErrorLog.Log(LogErrReason.Exception(), "ReportPages.StdDeviationPath2() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty);
#endregion
}
#region Return value
return pagecounter;
#endregion
}
public static Int32 MeanValues(Int32 pagecounter, String[] columns, Boolean enable, Boolean enableColumn2, Boolean enableColumn3, Boolean enableColumn4, PdfDocument report, XImage logo, CultureInfo culture)
{
try
{
#region Page "MEAN VALUES"
if ((enable) && ((enableColumn2) || (enableColumn3) || (enableColumn4)))
{
#region All PATHs
#region Prepare Data
pagecounter++;
PdfPage pdfPage = report.AddPage();
XGraphics XMean = XGraphics.FromPdfPage(pdfPage);
var formatterData = new XTextFormatter(XMean);
var layoutRectangleData = new XRect(1, 1, 1, 1);
Int32 Xoffset = 0;
#endregion
#region Headline1
XMean.DrawString("Mean Values", ReportParams.font20, XBrushes.Black, new XRect(ReportParams.HeadlineXPos, ReportParams.HeadlineYPos, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopCenter);
#endregion
#region Set text (First column)
if (!enableColumn2)
Xoffset = Xoffset + 40;
if (!enableColumn3)
Xoffset = Xoffset + 40;
if (!enableColumn4)
Xoffset = Xoffset + 40;
formatterData.DrawString(columns[ReportParams.Column1], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft);
Xoffset = Xoffset + 100;
#endregion
#region Set Image/Logo
XMean.DrawImage(logo, new XRect(ReportParams.LogoXPos, ReportParams.LogoYPos, ReportParams.LogoXSize, ReportParams.LogoYSize));
#endregion
#region Add pagenumber
XMean.DrawString($"Page {pagecounter.ToString()}", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.PageNumberXPosition, ReportParams.PageNumberYPosition, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.BottomCenter);
#endregion
#endregion
Misc.WaitNMilliseconds(100);
#region PATH0
if (enableColumn2)
{
#region Headline2
XMean.DrawString("PATH1", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
#endregion
#region Set text
formatterData.DrawString(columns[ReportParams.Column2], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft);
Xoffset = Xoffset + 100;
#endregion
}
#endregion
Misc.WaitNMilliseconds(100);
#region PATH1
if (enableColumn3)
{
#region Headline2
XMean.DrawString("PATH2", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
#endregion
#region Set text
formatterData.DrawString(columns[ReportParams.Column3], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft);
Xoffset = Xoffset + 100;
#endregion
}
#endregion
Misc.WaitNMilliseconds(100);
#region PATH2
if (enableColumn4)
{
#region Headline2
XMean.DrawString("PATH3", ReportParams.font12, XBrushes.Black, new XRect(ReportParams.Headline2XPos + Xoffset, ReportParams.Headline2YPos + 20, pdfPage.Width.Point, pdfPage.Height.Point), XStringFormats.TopLeft);
#endregion
#region Set text
formatterData.DrawString(columns[ReportParams.Column4], ReportParams.fontStandard, XBrushes.Black, new XRect(ReportParams.StandardTextXPos + Xoffset, ReportParams.StandardTextYPos, 400, 200), XStringFormats.TopLeft);
#endregion
}
#endregion
}
#endregion
}
catch (Exception ex)
{
#region Error
ErrorLog.Log(LogErrReason.Exception(), "ReportPages.MeanValues() failed", $"0x{ex.HResult.ToString("X")}", String.Empty);
#endregion
}
#region Return values
return pagecounter;
#endregion
}
}
}