Printed and Saved basic results output improved
This commit is contained in:
@@ -15,14 +15,14 @@ namespace TBF.BenchControl.ResultsPrinters.Basic
|
|||||||
const int TitleX = 100;
|
const int TitleX = 100;
|
||||||
const int TitleY = 180; /// Depends on the size of the header
|
const int TitleY = 180; /// Depends on the size of the header
|
||||||
const int HdrTop = 240; /// Depends on the size of the header
|
const int HdrTop = 240; /// Depends on the size of the header
|
||||||
const int BodyTop = 420;
|
const int BodyTop = 400;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Property variable for the Font the user wishes to use
|
/// Property variable for the Font the user wishes to use
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Font font;
|
Font font;
|
||||||
Font boldFont;
|
Font boldFont;
|
||||||
Font fontTitle;
|
Font titleFont;
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Data to print
|
/// Data to print
|
||||||
@@ -71,7 +71,7 @@ namespace TBF.BenchControl.ResultsPrinters.Basic
|
|||||||
|
|
||||||
if (font == null) { font = new Font(FontFamilyName, 10, FontStyle.Regular); }
|
if (font == null) { font = new Font(FontFamilyName, 10, FontStyle.Regular); }
|
||||||
if (boldFont == null) { boldFont = new Font(FontFamilyName, 10, FontStyle.Bold); }
|
if (boldFont == null) { boldFont = new Font(FontFamilyName, 10, FontStyle.Bold); }
|
||||||
if (fontTitle == null) { fontTitle = new Font(FontFamilyName, 18, FontStyle.Bold); }
|
if (titleFont == null) { titleFont = new Font(FontFamilyName, 18, FontStyle.Bold); }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -111,7 +111,7 @@ namespace TBF.BenchControl.ResultsPrinters.Basic
|
|||||||
/// Header
|
/// Header
|
||||||
///----------
|
///----------
|
||||||
RectangleF printArea = new RectangleF(TitleX, TitleY, 667, 40);
|
RectangleF printArea = new RectangleF(TitleX, TitleY, 667, 40);
|
||||||
e.Graphics.DrawString(results[0].ProtocolTitle, fontTitle, Brushes.Black, printArea);
|
e.Graphics.DrawString(results[0].ProtocolTitle, titleFont, Brushes.Black, printArea);
|
||||||
|
|
||||||
string[] leftColumn = new string[]
|
string[] leftColumn = new string[]
|
||||||
{
|
{
|
||||||
@@ -155,13 +155,14 @@ namespace TBF.BenchControl.ResultsPrinters.Basic
|
|||||||
/// Body
|
/// Body
|
||||||
///--------
|
///--------
|
||||||
int nrWMs = (combined ? Program.WMsCount / 2 : Program.WMsCount);
|
int nrWMs = (combined ? Program.WMsCount / 2 : Program.WMsCount);
|
||||||
|
int OneWmHeight = (results.Count + 4) * SpacingOne;
|
||||||
if (combined)
|
if (combined)
|
||||||
{
|
{
|
||||||
for (int wmNr = 0; wmNr < Program.WMsCount / 2; wmNr++) PrintCombinedWM(e, wmNr, BodyTop + 150 * wmNr);
|
for (int wmNr = 0; wmNr < Program.WMsCount / 2; wmNr++) PrintCombinedWM(e, wmNr, BodyTop + OneWmHeight * wmNr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (int wmNr = 0; wmNr < Program.WMsCount; wmNr++) PrintSingleWM(e, wmNr, BodyTop + 150 * wmNr);
|
for (int wmNr = 0; wmNr < Program.WMsCount; wmNr++) PrintSingleWM(e, wmNr, BodyTop + OneWmHeight * wmNr);
|
||||||
}
|
}
|
||||||
|
|
||||||
e.HasMorePages = false;
|
e.HasMorePages = false;
|
||||||
@@ -175,41 +176,55 @@ namespace TBF.BenchControl.ResultsPrinters.Basic
|
|||||||
void PrintSingleWM(System.Drawing.Printing.PrintPageEventArgs e, int wmNr, int top)
|
void PrintSingleWM(System.Drawing.Printing.PrintPageEventArgs e, int wmNr, int top)
|
||||||
{
|
{
|
||||||
/// Determin column widths
|
/// Determin column widths
|
||||||
int[] columnWidths = new int[resultItems.Count];
|
float[] columnPos = new float[resultItems.Count + 1];
|
||||||
int totalWidth = 0;
|
columnPos[0] = 100.0f;
|
||||||
|
|
||||||
for (int i = 0; i < resultItems.Count; i++)
|
for (int i = 0; i < resultItems.Count; i++)
|
||||||
{
|
{
|
||||||
columnWidths[i] = resultItems[i].ClmnHeaderText.Length;
|
float columnWidth = e.Graphics.MeasureString(resultItems[i].ClmnHeaderText, font).Width;
|
||||||
foreach (var tr in results)
|
foreach (var tr in results)
|
||||||
{
|
{
|
||||||
int len = resultItems[i].Print(tr.Meters[wmNr]).Length;
|
float width = e.Graphics.MeasureString(resultItems[i].Print(tr.Meters[wmNr]), font).Width;
|
||||||
if (len > columnWidths[i]) columnWidths[i] = len;
|
if (width > columnWidth) columnWidth = width;
|
||||||
}
|
}
|
||||||
totalWidth += columnWidths[i];
|
columnPos[i + 1] = columnPos[i] + columnWidth + 20.0f;
|
||||||
}
|
}
|
||||||
totalWidth += 3 * (resultItems.Count - 1);
|
int tableLeftX = (int)columnPos[0];
|
||||||
|
int tableRightX = (int)columnPos[resultItems.Count] - 20;
|
||||||
|
|
||||||
PrintAt(e, 100, top, string.Format("Water meter {0}, s/n: {1}", wmNr + 1, results[0].Meters[wmNr].SerialNr));
|
string wmText = string.Format("Water meter {0}", wmNr + 1);
|
||||||
|
PrintAt(e, 100, top, wmText);
|
||||||
|
if (!string.IsNullOrEmpty(results[0].Meters[wmNr].SerialNr))
|
||||||
|
{
|
||||||
|
PrintAt(e, 100 + (int)e.Graphics.MeasureString(wmText, font).Width, top,
|
||||||
|
string.Format(", s/n = {0}", results[0].Meters[wmNr].SerialNr));
|
||||||
|
}
|
||||||
|
|
||||||
//writer.WriteLine(new String('-', totalWidth));
|
/// Horizontal line
|
||||||
|
int horY = top + 25;
|
||||||
|
e.Graphics.DrawLine(new Pen(Color.Black, 2), new Point(tableLeftX, horY), new Point(tableRightX, horY));
|
||||||
|
|
||||||
for (int i = 0; i < resultItems.Count; i++)
|
for (int i = 0; i < resultItems.Count; i++)
|
||||||
{
|
{
|
||||||
PrintAt(e, 100 + 100 * i, top + 30, resultItems[i].ClmnHeaderText);
|
PrintAt(e, (int)columnPos[i], top + 27, resultItems[i].ClmnHeaderText);
|
||||||
}
|
}
|
||||||
|
|
||||||
//writer.WriteLine(new String('-', totalWidth));
|
/// Horizontal line
|
||||||
|
horY = top + 27 + SpacingOne;
|
||||||
|
e.Graphics.DrawLine(new Pen(Color.Black, 2), new Point(tableLeftX, horY), new Point(tableRightX, horY));
|
||||||
|
|
||||||
for (int r = 0; r < results.Count; r++)
|
for (int r = 0; r < results.Count; r++)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < resultItems.Count; i++)
|
for (int i = 0; i < resultItems.Count; i++)
|
||||||
{
|
{
|
||||||
string text = resultItems[i].Print(results[r].Meters[wmNr]);
|
string text = resultItems[i].Print(results[r].Meters[wmNr]);
|
||||||
PrintAt(e, 100 + 100 * i, top + 30 + SpacingOne * (r + 1), text);
|
PrintAt(e, (int)columnPos[i], top + 30 + SpacingOne * (r + 1), text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//writer.WriteLine(new String('-', totalWidth));
|
/// Horizontal line
|
||||||
|
horY = top + 30 + SpacingOne * (results.Count + 1);
|
||||||
|
e.Graphics.DrawLine(new Pen(Color.Black, 2), new Point(tableLeftX, horY), new Point(tableRightX, horY));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -219,6 +234,60 @@ namespace TBF.BenchControl.ResultsPrinters.Basic
|
|||||||
/// <param name="top">Top coordinate of watermeter data</param>
|
/// <param name="top">Top coordinate of watermeter data</param>
|
||||||
void PrintCombinedWM(System.Drawing.Printing.PrintPageEventArgs e, int wmNr, int top)
|
void PrintCombinedWM(System.Drawing.Printing.PrintPageEventArgs e, int wmNr, int top)
|
||||||
{
|
{
|
||||||
|
/// Determin column widths
|
||||||
|
float[] columnPos = new float[resultItems.Count + 1];
|
||||||
|
columnPos[0] = 100.0f;
|
||||||
|
|
||||||
|
for (int i = 0; i < resultItems.Count; i++)
|
||||||
|
{
|
||||||
|
float columnWidth = e.Graphics.MeasureString(resultItems[i].ClmnHeaderText, font).Width;
|
||||||
|
foreach (var tr in results)
|
||||||
|
{
|
||||||
|
float width = e.Graphics.MeasureString(resultItems[i].PrintCombined(tr.Meters[2 * wmNr],
|
||||||
|
tr.Meters[2 * wmNr + 1],
|
||||||
|
tr.CombinedMeters[wmNr]), font).Width;
|
||||||
|
if (width > columnWidth) columnWidth = width;
|
||||||
|
}
|
||||||
|
columnPos[i + 1] = columnPos[i] + columnWidth + 20.0f;
|
||||||
|
}
|
||||||
|
int tableLeftX = (int)columnPos[0];
|
||||||
|
int tableRightX = (int)columnPos[resultItems.Count] - 20;
|
||||||
|
|
||||||
|
string wmText = string.Format("Water meter {0}", wmNr + 1);
|
||||||
|
PrintAt(e, 100, top, wmText);
|
||||||
|
if (!string.IsNullOrEmpty(results[0].Meters[wmNr].SerialNr))
|
||||||
|
{
|
||||||
|
PrintAt(e, 100 + (int)e.Graphics.MeasureString(wmText, font).Width, top,
|
||||||
|
string.Format(", s/n = {0}", results[0].Meters[wmNr].SerialNr));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Horizontal line
|
||||||
|
int horY = top + 25;
|
||||||
|
e.Graphics.DrawLine(new Pen(Color.Black, 2), new Point(tableLeftX, horY), new Point(tableRightX, horY));
|
||||||
|
|
||||||
|
for (int i = 0; i < resultItems.Count; i++)
|
||||||
|
{
|
||||||
|
PrintAt(e, (int)columnPos[i], top + 27, resultItems[i].ClmnHeaderText);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Horizontal line
|
||||||
|
horY = top + 27 + SpacingOne;
|
||||||
|
e.Graphics.DrawLine(new Pen(Color.Black, 2), new Point(tableLeftX, horY), new Point(tableRightX, horY));
|
||||||
|
|
||||||
|
for (int r = 0; r < results.Count; r++)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < resultItems.Count; i++)
|
||||||
|
{
|
||||||
|
string text = resultItems[i].PrintCombined(results[r].Meters[2 * wmNr],
|
||||||
|
results[r].Meters[2 * wmNr + 1],
|
||||||
|
results[r].CombinedMeters[wmNr]);
|
||||||
|
PrintAt(e, (int)columnPos[i], top + 30 + SpacingOne * (r + 1), text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Horizontal line
|
||||||
|
horY = top + 30 + SpacingOne * (results.Count + 1);
|
||||||
|
e.Graphics.DrawLine(new Pen(Color.Black, 2), new Point(tableLeftX, horY), new Point(tableRightX, horY));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -190,7 +190,7 @@ namespace TBF.BenchControl.ResultsWriters.Basic
|
|||||||
/// <param name="wmNr">Water meter number</param>
|
/// <param name="wmNr">Water meter number</param>
|
||||||
void WriteSingleWM(int wmNr)
|
void WriteSingleWM(int wmNr)
|
||||||
{
|
{
|
||||||
/// Determin column widths
|
/// Determine column widths
|
||||||
int[] columnWidths = new int[resultItems.Count];
|
int[] columnWidths = new int[resultItems.Count];
|
||||||
int totalWidth = 0;
|
int totalWidth = 0;
|
||||||
for (int i = 0; i < resultItems.Count; i++)
|
for (int i = 0; i < resultItems.Count; i++)
|
||||||
@@ -205,10 +205,18 @@ namespace TBF.BenchControl.ResultsWriters.Basic
|
|||||||
}
|
}
|
||||||
totalWidth += 3 * (resultItems.Count - 1);
|
totalWidth += 3 * (resultItems.Count - 1);
|
||||||
|
|
||||||
writer.WriteLine(string.Format("Water meter {0}, s/n: {1}", wmNr + 1, results[0].Meters[wmNr].SerialNr));
|
/// Write water meter number and s/n
|
||||||
|
writer.Write(string.Format("Water meter {0}", wmNr + 1));
|
||||||
|
if (!string.IsNullOrEmpty(results[0].Meters[wmNr].SerialNr))
|
||||||
|
{
|
||||||
|
writer.Write(string.Format(", s/n: {0}", results[0].Meters[wmNr].SerialNr));
|
||||||
|
}
|
||||||
|
writer.WriteLine(string.Empty);
|
||||||
|
|
||||||
|
/// Horizontal line
|
||||||
writer.WriteLine(new String('-', totalWidth));
|
writer.WriteLine(new String('-', totalWidth));
|
||||||
|
|
||||||
|
/// Write column headers
|
||||||
for (int i = 0; i < resultItems.Count; i++)
|
for (int i = 0; i < resultItems.Count; i++)
|
||||||
{
|
{
|
||||||
writer.Write(resultItems[i].ClmnHeaderText);
|
writer.Write(resultItems[i].ClmnHeaderText);
|
||||||
@@ -218,9 +226,11 @@ namespace TBF.BenchControl.ResultsWriters.Basic
|
|||||||
else
|
else
|
||||||
writer.WriteLine(string.Empty);
|
writer.WriteLine(string.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Horizontal line
|
||||||
writer.WriteLine(new String('-', totalWidth));
|
writer.WriteLine(new String('-', totalWidth));
|
||||||
|
|
||||||
|
/// Write table data
|
||||||
foreach (var tr in results)
|
foreach (var tr in results)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < resultItems.Count; i++)
|
for (int i = 0; i < resultItems.Count; i++)
|
||||||
@@ -235,7 +245,9 @@ namespace TBF.BenchControl.ResultsWriters.Basic
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Horizontal line
|
||||||
writer.WriteLine(new String('-', totalWidth));
|
writer.WriteLine(new String('-', totalWidth));
|
||||||
|
|
||||||
writer.WriteLine(string.Empty);
|
writer.WriteLine(string.Empty);
|
||||||
writer.WriteLine(string.Empty);
|
writer.WriteLine(string.Empty);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user