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)) {