diff --git a/TestBenchFramework/BenchControl/ResultsPrinters/Basic/BasicPrintDocument.cs b/TestBenchFramework/BenchControl/ResultsPrinters/Basic/BasicPrintDocument.cs
index 5317d2695..282c1b6d6 100644
--- a/TestBenchFramework/BenchControl/ResultsPrinters/Basic/BasicPrintDocument.cs
+++ b/TestBenchFramework/BenchControl/ResultsPrinters/Basic/BasicPrintDocument.cs
@@ -164,20 +164,25 @@ namespace TBF.BenchControl.ResultsPrinters.Basic
///--------
/// Body
///--------
- int nrWMs = (combined ? Program.WMsCount / 2 : Program.WMsCount);
+
+ /// This variable represents the top coordinate of the area where WM results are printed
+ /// and it is updated (increased by) the value returned by PrintXyzWM() - the section size.
int nextWmTop = BodyTop;
+
if (combined)
{
- for (int wmNr = 1; wmNr <= Program.WMsCount / 2; wmNr++)
+ for (int wmNr = 1; wmNr <= Program.WMsCount / 2; wmNr++) /// wmNr is 1-based
{
- nextWmTop += PrintCombinedWM(e, wmNr, nextWmTop); /// wmNr is 1-based
+ nextWmTop += PrintCombinedWM(e, wmNr, nextWmTop);
}
}
else
{
- for (int wmNr = 1; wmNr <= Program.WMsCount; wmNr++)
+ int printedWMNr = 1;
+ for (int wmNr = 0; wmNr < Program.WMsCount; wmNr++) /// wmNr is 0-based
{
- nextWmTop += PrintSingleWM(e, wmNr, nextWmTop); /// wmNr is 1-based
+ if (!unsortedResults[0].Meters[wmNr].Disabled)
+ nextWmTop += PrintSingleWM(e, wmNr, printedWMNr++, nextWmTop);
}
}
@@ -188,12 +193,12 @@ namespace TBF.BenchControl.ResultsPrinters.Basic
///
/// Print one water meter results
///
- /// Water meter number (1-based)
+ /// Water meter number (0-based)
/// Top coordinate of watermeter data
/// The height of the printed section
- int PrintSingleWM(System.Drawing.Printing.PrintPageEventArgs e, int wmNr1, int top)
+ int PrintSingleWM(System.Drawing.Printing.PrintPageEventArgs e, int wmNr, int printedWMNr, int top)
{
- IList results = Utils.GetSortedTestResults(procedure, unsortedResults, wmNr1);
+ IList results = Utils.GetSortedTestResults(procedure, unsortedResults, wmNr + 1);
/// Determin column widths
float[] columnPos = new float[resultItems.Count + 1];
@@ -206,7 +211,7 @@ namespace TBF.BenchControl.ResultsPrinters.Basic
{
if (tr != null)
{
- float width = e.Graphics.MeasureString(resultItems[i].Print(tr.Meters[wmNr1 - 1]), font).Width;
+ float width = e.Graphics.MeasureString(resultItems[i].Print(tr.Meters[wmNr]), font).Width;
if (width > columnWidth) columnWidth = width;
}
}
@@ -215,12 +220,12 @@ namespace TBF.BenchControl.ResultsPrinters.Basic
int tableLeftX = (int)columnPos[0];
int tableRightX = (int)columnPos[resultItems.Count] - 20;
- string wmText = string.Format("Water meter {0}", wmNr1);
+ string wmText = string.Format("Water meter {0}", printedWMNr);
PrintAt(e, 100, top, wmText);
- if (!string.IsNullOrEmpty(unsortedResults[0].Meters[wmNr1 - 1].SerialNr))
+ if (!string.IsNullOrEmpty(unsortedResults[0].Meters[wmNr].SerialNr))
{
PrintAt(e, 100 + (int)e.Graphics.MeasureString(wmText, font).Width, top,
- string.Format(" s/n = {0}", unsortedResults[0].Meters[wmNr1 - 1].SerialNr));
+ string.Format(" s/n = {0}", unsortedResults[0].Meters[wmNr].SerialNr));
}
/// Horizontal line
@@ -242,7 +247,7 @@ namespace TBF.BenchControl.ResultsPrinters.Basic
{
for (int i = 0; i < resultItems.Count; i++)
{
- string text = resultItems[i].Print(results[r].Meters[wmNr1 - 1]);
+ string text = resultItems[i].Print(results[r].Meters[wmNr]);
string[] texts = text.Split(new char[] { '|' });
diff --git a/TestBenchFramework/BenchControl/ResultsWriters/Basic/Writer.cs b/TestBenchFramework/BenchControl/ResultsWriters/Basic/Writer.cs
index 25eb7cf52..8a46f7c9e 100644
--- a/TestBenchFramework/BenchControl/ResultsWriters/Basic/Writer.cs
+++ b/TestBenchFramework/BenchControl/ResultsWriters/Basic/Writer.cs
@@ -172,24 +172,28 @@ namespace TBF.BenchControl.ResultsWriters.Basic
///--------
/// Body
///--------
- int nrWMs = (combined ? Program.WMsCount / 2 : Program.WMsCount);
if (combined)
{
for (int wmNr = 1; wmNr <= Program.WMsCount / 2; wmNr++) WriteCombinedWM(wmNr); /// wmNr is 1-based
}
else
{
- for (int wmNr = 1; wmNr <= Program.WMsCount; wmNr++) WriteSingleWM(wmNr); /// wmNr is 1-based
+ int printedWMNr = 1;
+ for (int wmNr = 0; wmNr < Program.WMsCount; wmNr++) /// wmNr is 0-based
+ {
+ if (!unsortedResults[0].Meters[wmNr].Disabled)
+ WriteSingleWM(wmNr, printedWMNr++);
+ }
}
}
///
/// Write one water meter results
///
- /// Water meter number (1-based)
- void WriteSingleWM(int wmNr1)
+ /// Water meter number (0-based)
+ void WriteSingleWM(int wmNr, int printedWMNr)
{
- IList results = Utils.GetSortedTestResults(procedure, unsortedResults, wmNr1);
+ IList results = Utils.GetSortedTestResults(procedure, unsortedResults, wmNr + 1);
/// Determine column widths
int[] columnWidths = new int[resultItems.Count];
@@ -201,7 +205,7 @@ namespace TBF.BenchControl.ResultsWriters.Basic
{
if (tr != null)
{
- int len = resultItems[i].Print(tr.Meters[wmNr1 - 1]).Length;
+ int len = resultItems[i].Print(tr.Meters[wmNr]).Length;
if (len > columnWidths[i]) columnWidths[i] = len;
}
}
@@ -211,10 +215,10 @@ namespace TBF.BenchControl.ResultsWriters.Basic
/// Write water meter number and s/n
- writer.Write(string.Format("Water meter {0}", wmNr1));
- if (!string.IsNullOrEmpty(unsortedResults[0].Meters[wmNr1 - 1].SerialNr))
+ writer.Write(string.Format("Water meter {0}", printedWMNr));
+ if (!string.IsNullOrEmpty(unsortedResults[0].Meters[wmNr].SerialNr))
{
- writer.Write(string.Format(" s/n: {0}", unsortedResults[0].Meters[wmNr1 - 1].SerialNr));
+ writer.Write(string.Format(" s/n: {0}", unsortedResults[0].Meters[wmNr].SerialNr));
}
writer.WriteLine(string.Empty);
@@ -244,7 +248,7 @@ namespace TBF.BenchControl.ResultsWriters.Basic
{
for (int i = 0; i < resultItems.Count; i++)
{
- string text = resultItems[i].Print(tr.Meters[wmNr1 - 1]);
+ string text = resultItems[i].Print(tr.Meters[wmNr]);
/// Get rid of the color information
string[] texts = text.Split(new char[] { '|' });
diff --git a/TestBenchFramework/BenchControl/TestMethods/Adjustment/AdjustmentSeq.cs b/TestBenchFramework/BenchControl/TestMethods/Adjustment/AdjustmentSeq.cs
index a34582e1e..13ffe7f2d 100644
--- a/TestBenchFramework/BenchControl/TestMethods/Adjustment/AdjustmentSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/Adjustment/AdjustmentSeq.cs
@@ -302,16 +302,16 @@ namespace TBF.BenchControl.TestMethods.Adjustment
tstRslt.Meters[i].VolumeErrorPct = -100;
}
tstRslt.Meters[i].Passed = (tstRslt.ErrLimLo <= tstRslt.Meters[i].VolumeErrorPct) && (tstRslt.Meters[i].VolumeErrorPct <= tstRslt.ErrLimHi);
+
+ tstRslt.Meters[i].Disabled = false;
+ }
+ else
+ {
+ tstRslt.Meters[i].Disabled = true;
}
}
/// Add data - end
- /// Remove diasabled watermeters
- //for (int i = Program.WMsCount - 1; i >= 0; i--)
- //{
- // if (WaterMeters[i].Disabled) tstRslt.Meters.RemoveAt(i);
- //}
-
/// Update modeless dialog error information
Bridge.OnAdjustmentInProgress(this, new AdjustmentInProgressEventArgs(tstRslt));
diff --git a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs
index 196586f51..7bcfcf9a1 100644
--- a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs
@@ -526,16 +526,16 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection
tstRslt.Meters[i].VolumeErrorPct = -100;
}
tstRslt.Meters[i].Passed = (tstRslt.ErrLimLo <= tstRslt.Meters[i].VolumeErrorPct) && (tstRslt.Meters[i].VolumeErrorPct <= tstRslt.ErrLimHi);
+
+ tstRslt.Meters[i].Disabled = false;
+ }
+ else
+ {
+ tstRslt.Meters[i].Disabled = true;
}
}
/// Add data - end
- /// Remove diasabled watermeters
- //for (int i = Program.WMsCount - 1; i >= 0; i--)
- //{
- // if (WaterMeters[i].Disabled) tstRslt.Meters.RemoveAt(i);
- //}
-
AddOrOverwriteResult(tstRslt);
Bridge.OnTestCompleted(this, new TestCompletedEventArgs(tstRslt));
diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs
index 0cd42789e..df4203fb8 100644
--- a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs
@@ -271,16 +271,16 @@ namespace TBF.BenchControl.TestMethods.FlyingStart
tstRslt.Meters[i].VolumeErrorPct = -100;
}
tstRslt.Meters[i].Passed = (tstRslt.ErrLimLo <= tstRslt.Meters[i].VolumeErrorPct) && (tstRslt.Meters[i].VolumeErrorPct <= tstRslt.ErrLimHi);
+
+ tstRslt.Meters[i].Disabled = false;
+ }
+ else
+ {
+ tstRslt.Meters[i].Disabled = true;
}
}
/// Add data - end
- /// Remove diasabled watermeters
- //for (int i = Program.WMsCount - 1; i >= 0; i--)
- //{
- // if (WaterMeters[i].Disabled) tstRslt.Meters.RemoveAt(i);
- //}
-
AddOrOverwriteResult(tstRslt);
Bridge.OnTestCompleted(this, new TestCompletedEventArgs(tstRslt));
diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/FlyingStartCollectionMethodSeq.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/FlyingStartCollectionMethodSeq.cs
index 07d3c09a9..8d7809936 100644
--- a/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/FlyingStartCollectionMethodSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/FlyingStartCollectionMethodSeq.cs
@@ -414,16 +414,16 @@ namespace TBF.BenchControl.TestMethods.FlyingStartCollectionMethod
tstRslt.Meters[i].VolumeErrorPct = -100;
}
tstRslt.Meters[i].Passed = (tstRslt.ErrLimLo <= tstRslt.Meters[i].VolumeErrorPct) && (tstRslt.Meters[i].VolumeErrorPct <= tstRslt.ErrLimHi);
+
+ tstRslt.Meters[i].Disabled = false;
+ }
+ else
+ {
+ tstRslt.Meters[i].Disabled = true;
}
}
/// Add data - end
- /// Remove diasabled watermeters
- //for (int i = Program.WMsCount - 1; i >= 0; i--)
- //{
- // if (WaterMeters[i].Disabled) tstRslt.Meters.RemoveAt(i);
- //}
-
AddOrOverwriteResult(tstRslt);
Bridge.OnTestCompleted(this, new TestCompletedEventArgs(tstRslt));
diff --git a/TestBenchFramework/Entities/MeterTestResult.cs b/TestBenchFramework/Entities/MeterTestResult.cs
index a1608187b..2d91662d3 100644
--- a/TestBenchFramework/Entities/MeterTestResult.cs
+++ b/TestBenchFramework/Entities/MeterTestResult.cs
@@ -7,7 +7,8 @@ namespace TBF.Entities
public virtual int Id { get; protected set; }
public virtual TestResult TestResult { get; set; } /// reference to the TestResult entity
- public virtual string SerialNr { get; set; }
+ public virtual bool Disabled { get; set; } /// true = this meter was disabled and the results should be disregarded
+ public virtual string SerialNr { get; set; }
public virtual string EndState { get; set; }
public virtual float VolumeStart { get; set; } /// liter
public virtual float VolumeEnd { get; set; } /// liter
@@ -33,7 +34,8 @@ namespace TBF.Entities
{
MeterTestResult result = new MeterTestResult(testResult);
- result.SerialNr = SerialNr;
+ result.Disabled = Disabled;
+ result.SerialNr = SerialNr;
result.EndState = EndState;
result.VolumeStart = VolumeStart;
result.VolumeEnd = VolumeEnd;
diff --git a/TestBenchFramework/Mappings/MeterTestResultMap.cs b/TestBenchFramework/Mappings/MeterTestResultMap.cs
index 472e368ad..0646d406d 100644
--- a/TestBenchFramework/Mappings/MeterTestResultMap.cs
+++ b/TestBenchFramework/Mappings/MeterTestResultMap.cs
@@ -9,7 +9,8 @@ namespace TBF.Mappings
{
Id(x => x.Id);
References(x => x.TestResult);
- Map(x => x.SerialNr);
+ Map(x => x.Disabled);
+ Map(x => x.SerialNr);
Map(x => x.EndState);
Map(x => x.VolumeStart);
Map(x => x.VolumeEnd);
diff --git a/TestBenchFramework/Screens/ResultsTabPageCtrl.cs b/TestBenchFramework/Screens/ResultsTabPageCtrl.cs
index ef511c89b..a4bc07ae7 100644
--- a/TestBenchFramework/Screens/ResultsTabPageCtrl.cs
+++ b/TestBenchFramework/Screens/ResultsTabPageCtrl.cs
@@ -127,24 +127,6 @@ namespace TBF.Screens
///
void RedrawAll()
{
- this.SuspendLayout();
- lvWidth = flowLayoutPanel.Width - 10;
- lvHeight = flowLayoutPanel.Height - 10;
-
- if (MetersArrangement == Forms.ResultsConfig.Meters.Horizontally)
- {
- flowLayoutPanel.FlowDirection = FlowDirection.LeftToRight;
- lvWidth = (lvWidth + 5) / Program.WMsCount - 5;
- }
- else
- {
- flowLayoutPanel.FlowDirection = FlowDirection.TopDown;
- lvHeight = (lvHeight + 5) / Program.WMsCount - 5;
- }
- flowLayoutPanel.Controls.Clear();
- flowLayoutPanel.WrapContents = false;
- flowLayoutPanel.AutoScroll = true;
-
///
/// Determine whether combined meter results are displayed
///
@@ -152,20 +134,56 @@ namespace TBF.Screens
(testResults.Count > 0) &&
(testResults[0].MetersKind == Entities.MetersKind.Combined));
+ this.SuspendLayout();
+ lvWidth = flowLayoutPanel.Width - 10;
+ lvHeight = flowLayoutPanel.Height - 10;
+
+ /// Determine how many water meters were enabled for result evaluation and printing
+ int enabledWMsCount = 0;
+ if (combined)
+ {
+ enabledWMsCount = Program.WMsCount / 2;
+ }
+ else
+ {
+ for (int mtr0 = 0; mtr0 < Program.WMsCount; mtr0++)
+ {
+ if (!testResults[0].Meters[mtr0].Disabled) enabledWMsCount++;
+ }
+ }
+
+ if (MetersArrangement == Forms.ResultsConfig.Meters.Horizontally)
+ {
+ flowLayoutPanel.FlowDirection = FlowDirection.LeftToRight;
+ lvWidth = (lvWidth + 5) / enabledWMsCount - 5;
+ }
+ else
+ {
+ flowLayoutPanel.FlowDirection = FlowDirection.TopDown;
+ lvHeight = (lvHeight + 5) / enabledWMsCount - 5;
+ }
+ flowLayoutPanel.Controls.Clear();
+ flowLayoutPanel.WrapContents = false;
+ flowLayoutPanel.AutoScroll = true;
+
bool first = true;
+ int printedWMNr = 1;
for (int mtr = 1; mtr <= (combined ? Program.WMsCount / 2 : Program.WMsCount); mtr++)
{
- if (TestsArrangement == Forms.ResultsConfig.TestsAre.Rows)
+ if (combined || !testResults[0].Meters[mtr - 1].Disabled)
{
- ListView lview = GetResultsTestsAreRows(mtr);
- if (first) { firstListView = lview; first = false; }
- if (lview != null) flowLayoutPanel.Controls.Add(lview);
- }
- else
- {
- ListView lview = GetResultsTestsAreColumns(mtr);
- if (first) { firstListView = lview; first = false; }
- if (lview != null) flowLayoutPanel.Controls.Add(lview);
+ if (TestsArrangement == Forms.ResultsConfig.TestsAre.Rows)
+ {
+ ListView lview = GetResultsTestsAreRows(mtr, printedWMNr++);
+ if (first) { firstListView = lview; first = false; }
+ if (lview != null) flowLayoutPanel.Controls.Add(lview);
+ }
+ else
+ {
+ ListView lview = GetResultsTestsAreColumns(mtr, printedWMNr++);
+ if (first) { firstListView = lview; first = false; }
+ if (lview != null) flowLayoutPanel.Controls.Add(lview);
+ }
}
}
this.ResumeLayout(false);
@@ -227,7 +245,7 @@ namespace TBF.Screens
///
/// Water meter number (1-based): 1 .. Program.WMsCount
/// ListView object
- ListView GetResultsTestsAreRows(int mtr)
+ ListView GetResultsTestsAreRows(int mtr, int printedWMNr)
{
IList items = (combined ? RsltItems_Screen_CombinedWM : RsltItems_Screen_SingleWM);
if (procedure == null || procedure.Tests == null || items == null) return null;
@@ -238,7 +256,7 @@ namespace TBF.Screens
TBF.LocalSettings ls = Program.LocalSettings;
if (combined)
{
- lview.Columns.Add(mtr.ToString(), (ls.RsltsCombinedClmnCount > 0) ? ls.RsltsCombinedClmnWdths[0] : 40);
+ lview.Columns.Add(printedWMNr.ToString(), (ls.RsltsCombinedClmnCount > 0) ? ls.RsltsCombinedClmnWdths[0] : 40);
int i = 1;
foreach (var item in items)
{
@@ -248,7 +266,7 @@ namespace TBF.Screens
}
else
{
- lview.Columns.Add(mtr.ToString(), (ls.RsltsSingleClmnCount > 0) ? ls.RsltsSingleClmnWdths[0] : 40);
+ lview.Columns.Add(printedWMNr.ToString(), (ls.RsltsSingleClmnCount > 0) ? ls.RsltsSingleClmnWdths[0] : 40);
int i = 1;
foreach (var item in items)
{
@@ -308,7 +326,7 @@ namespace TBF.Screens
///
/// Water meter number (1-based): 1 .. Program.WMsCount
/// ListView object
- ListView GetResultsTestsAreColumns(int mtr)
+ ListView GetResultsTestsAreColumns(int mtr, int printedWMNr)
{
IList items = (combined ? RsltItems_Screen_CombinedWM : RsltItems_Screen_SingleWM);
if (procedure == null || procedure.Tests == null || items == null) return null;
@@ -319,7 +337,7 @@ namespace TBF.Screens
TBF.LocalSettings ls = Program.LocalSettings;
if (combined)
{
- lview.Columns.Add(mtr.ToString(), (ls.RsltsCombinedClmnCount > 0) ? ls.RsltsCombinedClmnWdths[0] : 40);
+ lview.Columns.Add(printedWMNr.ToString(), (ls.RsltsCombinedClmnCount > 0) ? ls.RsltsCombinedClmnWdths[0] : 40);
int i = 1;
foreach (var str in GetAllDecoratedTestNames(mtr))
{
@@ -329,7 +347,7 @@ namespace TBF.Screens
}
else
{
- lview.Columns.Add(mtr.ToString(), (ls.RsltsSingleClmnCount > 0) ? ls.RsltsSingleClmnWdths[0] : 40);
+ lview.Columns.Add(printedWMNr.ToString(), (ls.RsltsSingleClmnCount > 0) ? ls.RsltsSingleClmnWdths[0] : 40);
int i = 1;
foreach (var str in GetAllDecoratedTestNames(mtr))
{