From 376056fb1accc1ad5a79c28e11840a56e9dd720c Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Mon, 2 Feb 2015 10:35:06 +0100 Subject: [PATCH] Results to database consolidated, 1-based WMNr used in printing, saving --- .../Basic/BasicPrintDocument.cs | 52 +++++++++---------- .../ResultsWriters/Basic/Writer.cs | 43 +++++++-------- .../BenchControl/Sequences/MainSeq.cs | 4 +- .../Screens/ResultsTabPageCtrl.cs | 38 ++++++++------ TestBenchFramework/Utils.cs | 4 +- 5 files changed, 73 insertions(+), 68 deletions(-) diff --git a/TestBenchFramework/BenchControl/ResultsPrinters/Basic/BasicPrintDocument.cs b/TestBenchFramework/BenchControl/ResultsPrinters/Basic/BasicPrintDocument.cs index 975776585..e9ab3f86c 100644 --- a/TestBenchFramework/BenchControl/ResultsPrinters/Basic/BasicPrintDocument.cs +++ b/TestBenchFramework/BenchControl/ResultsPrinters/Basic/BasicPrintDocument.cs @@ -168,16 +168,16 @@ namespace TBF.BenchControl.ResultsPrinters.Basic int nextWmTop = BodyTop; if (combined) { - for (int wmNr = 0; wmNr < Program.WMsCount / 2; wmNr++) + for (int wmNr = 1; wmNr <= Program.WMsCount / 2; wmNr++) { - nextWmTop += PrintCombinedWM(e, wmNr, nextWmTop); + nextWmTop += PrintCombinedWM(e, wmNr, nextWmTop); /// wmNr is 1-based } } else { - for (int wmNr = 0; wmNr < Program.WMsCount; wmNr++) + for (int wmNr = 1; wmNr <= Program.WMsCount; wmNr++) { - nextWmTop += PrintSingleWM(e, wmNr, nextWmTop); + nextWmTop += PrintSingleWM(e, wmNr, nextWmTop); /// wmNr is 1-based } } @@ -188,12 +188,12 @@ namespace TBF.BenchControl.ResultsPrinters.Basic /// /// Print one water meter results /// - /// Water meter number + /// Water meter number (1-based) /// Top coordinate of watermeter data /// The height of the printed section - int PrintSingleWM(System.Drawing.Printing.PrintPageEventArgs e, int wmNr, int top) + int PrintSingleWM(System.Drawing.Printing.PrintPageEventArgs e, int wmNr1, int top) { - IList results = Utils.GetSortedTestResults(procedure, unsortedResults, wmNr); + IList results = Utils.GetSortedTestResults(procedure, unsortedResults, wmNr1); /// Determin column widths float[] columnPos = new float[resultItems.Count + 1]; @@ -206,7 +206,7 @@ namespace TBF.BenchControl.ResultsPrinters.Basic { if (tr != null) { - float width = e.Graphics.MeasureString(resultItems[i].Print(tr.Meters[wmNr]), font).Width; + float width = e.Graphics.MeasureString(resultItems[i].Print(tr.Meters[wmNr1 - 1]), font).Width; if (width > columnWidth) columnWidth = width; } } @@ -215,12 +215,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}", wmNr + 1); + string wmText = string.Format("Water meter {0}", wmNr1); PrintAt(e, 100, top, wmText); - if (!string.IsNullOrEmpty(unsortedResults[0].Meters[wmNr].SerialNr)) + if (!string.IsNullOrEmpty(unsortedResults[0].Meters[wmNr1 - 1].SerialNr)) { PrintAt(e, 100 + (int)e.Graphics.MeasureString(wmText, font).Width, top, - string.Format(", s/n = {0}", unsortedResults[0].Meters[wmNr].SerialNr)); + string.Format(" s/n = {0}", unsortedResults[0].Meters[wmNr1 - 1].SerialNr)); } /// Horizontal line @@ -242,7 +242,7 @@ namespace TBF.BenchControl.ResultsPrinters.Basic { 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[wmNr1 - 1]); string[] texts = text.Split(new char[] { '|' }); @@ -269,12 +269,12 @@ namespace TBF.BenchControl.ResultsPrinters.Basic /// /// Print one combined water meter results /// - /// Water meter number + /// Water meter number (1-based) /// Top coordinate of watermeter data /// The height of the printed section - int PrintCombinedWM(System.Drawing.Printing.PrintPageEventArgs e, int wmNr, int top) + int PrintCombinedWM(System.Drawing.Printing.PrintPageEventArgs e, int wmNr1, int top) { - IList results = Utils.GetSortedTestResults(procedure, unsortedResults, wmNr); + IList results = Utils.GetSortedTestResults(procedure, unsortedResults, wmNr1); /// Determin column widths float[] columnPos = new float[resultItems.Count + 1]; @@ -287,9 +287,9 @@ namespace TBF.BenchControl.ResultsPrinters.Basic { if (tr != null) { - float width = e.Graphics.MeasureString(resultItems[i].PrintCombined(tr.Meters[2 * wmNr], - tr.Meters[2 * wmNr + 1], - tr.CombinedMeters[wmNr]), font).Width; + float width = e.Graphics.MeasureString(resultItems[i].PrintCombined(tr.Meters[2 * wmNr1 - 2], + tr.Meters[2 * wmNr1 - 1], + tr.CombinedMeters[wmNr1 - 1]), font).Width; if (width > columnWidth) columnWidth = width; } } @@ -298,14 +298,14 @@ namespace TBF.BenchControl.ResultsPrinters.Basic int tableLeftX = (int)columnPos[0]; int tableRightX = (int)columnPos[resultItems.Count] - 20; - string wmText = string.Format("Water meter {0}", wmNr + 1); + string wmText = string.Format("Water meter {0}", wmNr1); PrintAt(e, 100, top, wmText); - if (!string.IsNullOrEmpty(unsortedResults[0].Meters[2 * wmNr].SerialNr)) + if (!string.IsNullOrEmpty(unsortedResults[0].Meters[2 * wmNr1 - 2].SerialNr)) { PrintAt(e, 100 + (int)e.Graphics.MeasureString(wmText, font).Width, top, - string.Format(", Main s/n: {0}, Aux. s/n:{1}", - unsortedResults[0].Meters[2 * wmNr].SerialNr, - unsortedResults[0].Meters[2 * wmNr + 1].SerialNr)); + string.Format(" Main s/n: {0} Aux. s/n:{1}", + unsortedResults[0].Meters[2 * wmNr1 - 2].SerialNr, + unsortedResults[0].Meters[2 * wmNr1 - 1].SerialNr)); } /// Horizontal line @@ -327,9 +327,9 @@ namespace TBF.BenchControl.ResultsPrinters.Basic { 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]); + string text = resultItems[i].PrintCombined(results[r].Meters[2 * wmNr1 - 2], + results[r].Meters[2 * wmNr1 - 1], + results[r].CombinedMeters[wmNr1 - 1]); string[] texts = text.Split(new char[] { '|' }); if (texts.Length == 2) diff --git a/TestBenchFramework/BenchControl/ResultsWriters/Basic/Writer.cs b/TestBenchFramework/BenchControl/ResultsWriters/Basic/Writer.cs index 7183f27a4..6abfe1f08 100644 --- a/TestBenchFramework/BenchControl/ResultsWriters/Basic/Writer.cs +++ b/TestBenchFramework/BenchControl/ResultsWriters/Basic/Writer.cs @@ -168,7 +168,6 @@ namespace TBF.BenchControl.ResultsWriters.Basic writer.WriteLine(rightColumn[i]); } writer.WriteLine(string.Empty); - writer.WriteLine(string.Empty); ///-------- /// Body @@ -176,21 +175,21 @@ namespace TBF.BenchControl.ResultsWriters.Basic int nrWMs = (combined ? Program.WMsCount / 2 : Program.WMsCount); if (combined) { - for (int wmNr = 0; wmNr < Program.WMsCount / 2; wmNr++) WriteCombinedWM(wmNr); + for (int wmNr = 1; wmNr <= Program.WMsCount / 2; wmNr++) WriteCombinedWM(wmNr); /// wmNr is 1-based } else { - for (int wmNr = 0; wmNr < Program.WMsCount; wmNr++) WriteSingleWM(wmNr); + for (int wmNr = 1; wmNr <= Program.WMsCount; wmNr++) WriteSingleWM(wmNr); /// wmNr is 1-based } } /// /// Write one water meter results /// - /// Water meter number - void WriteSingleWM(int wmNr) + /// Water meter number (1-based) + void WriteSingleWM(int wmNr1) { - IList results = Utils.GetSortedTestResults(procedure, unsortedResults, wmNr); + IList results = Utils.GetSortedTestResults(procedure, unsortedResults, wmNr1); /// Determine column widths int[] columnWidths = new int[resultItems.Count]; @@ -202,7 +201,7 @@ namespace TBF.BenchControl.ResultsWriters.Basic { if (tr != null) { - int len = resultItems[i].Print(tr.Meters[wmNr]).Length; + int len = resultItems[i].Print(tr.Meters[wmNr1 - 1]).Length; if (len > columnWidths[i]) columnWidths[i] = len; } } @@ -212,10 +211,10 @@ namespace TBF.BenchControl.ResultsWriters.Basic /// Write water meter number and s/n - writer.Write(string.Format("Water meter {0}", wmNr + 1)); - if (!string.IsNullOrEmpty(unsortedResults[0].Meters[wmNr].SerialNr)) + writer.Write(string.Format("Water meter {0}", wmNr1)); + if (!string.IsNullOrEmpty(unsortedResults[0].Meters[wmNr1 - 1].SerialNr)) { - writer.Write(string.Format(", s/n: {0}", unsortedResults[0].Meters[wmNr].SerialNr)); + writer.Write(string.Format(" s/n: {0}", unsortedResults[0].Meters[wmNr1 - 1].SerialNr)); } writer.WriteLine(string.Empty); @@ -245,7 +244,7 @@ namespace TBF.BenchControl.ResultsWriters.Basic { for (int i = 0; i < resultItems.Count; i++) { - string text = resultItems[i].Print(tr.Meters[wmNr]); + string text = resultItems[i].Print(tr.Meters[wmNr1 - 1]); /// Get rid of the color information string[] texts = text.Split(new char[] { '|' }); @@ -265,16 +264,15 @@ namespace TBF.BenchControl.ResultsWriters.Basic writer.WriteLine(new String('-', totalWidth)); /// Horizontal line below the body writer.WriteLine(string.Empty); - writer.WriteLine(string.Empty); } /// /// Write one combined water meter results /// - /// Water meter number - void WriteCombinedWM(int wmNr) + /// Combined water meter number (1-based) + void WriteCombinedWM(int wmNr1) { - IList results = Utils.GetSortedTestResults(procedure, unsortedResults, wmNr); + IList results = Utils.GetSortedTestResults(procedure, unsortedResults, wmNr1); /// Determin column widths int[] columnWidths = new int[resultItems.Count]; @@ -286,7 +284,7 @@ namespace TBF.BenchControl.ResultsWriters.Basic { if (tr != null) { - int len = resultItems[i].PrintCombined(tr.Meters[2 * wmNr], tr.Meters[2 * wmNr + 1], tr.CombinedMeters[wmNr]).Length; + int len = resultItems[i].PrintCombined(tr.Meters[2 * wmNr1 - 2], tr.Meters[2 * wmNr1 - 1], tr.CombinedMeters[wmNr1 - 1]).Length; if (len > columnWidths[i]) columnWidths[i] = len; } } @@ -296,14 +294,14 @@ namespace TBF.BenchControl.ResultsWriters.Basic /// Write water meter number and two s/n-s - writer.Write(string.Format("Water meter {0}", wmNr + 1)); - if (!string.IsNullOrEmpty(unsortedResults[0].Meters[2 * wmNr].SerialNr)) + writer.Write(string.Format("Water meter {0}", wmNr1)); + if (!string.IsNullOrEmpty(unsortedResults[0].Meters[2 * wmNr1 - 2].SerialNr)) { - writer.Write(string.Format(", Main s/n: {0}", unsortedResults[0].Meters[2 * wmNr].SerialNr)); + writer.Write(string.Format(", Main s/n: {0}", unsortedResults[0].Meters[2 * wmNr1 - 2].SerialNr)); } - if (!string.IsNullOrEmpty(unsortedResults[0].Meters[2 * wmNr + 1].SerialNr)) + if (!string.IsNullOrEmpty(unsortedResults[0].Meters[2 * wmNr1 - 1].SerialNr)) { - writer.Write(string.Format(", Aux. s/n:{0}", unsortedResults[0].Meters[2 * wmNr + 1].SerialNr)); + writer.Write(string.Format(", Aux. s/n:{0}", unsortedResults[0].Meters[2 * wmNr1 - 1].SerialNr)); } writer.WriteLine(string.Empty); @@ -331,7 +329,7 @@ namespace TBF.BenchControl.ResultsWriters.Basic { for (int i = 0; i < resultItems.Count; i++) { - string text = resultItems[i].PrintCombined(tr.Meters[2 * wmNr], tr.Meters[2 * wmNr + 1], tr.CombinedMeters[wmNr]); + string text = resultItems[i].PrintCombined(tr.Meters[2 * wmNr1 - 2], tr.Meters[2 * wmNr1 - 1], tr.CombinedMeters[wmNr1 - 1]); /// Get rid of the color information string[] texts = text.Split(new char[] { '|' }); @@ -350,7 +348,6 @@ namespace TBF.BenchControl.ResultsWriters.Basic writer.WriteLine(new String('-', totalWidth)); /// Horizontal line below the body writer.WriteLine(string.Empty); - writer.WriteLine(string.Empty); } /// Run this operation diff --git a/TestBenchFramework/BenchControl/Sequences/MainSeq.cs b/TestBenchFramework/BenchControl/Sequences/MainSeq.cs index ce7501051..394d3c7f6 100644 --- a/TestBenchFramework/BenchControl/Sequences/MainSeq.cs +++ b/TestBenchFramework/BenchControl/Sequences/MainSeq.cs @@ -393,8 +393,10 @@ namespace TBF.BenchControl.Sequences } while (e.Contains(Event.Busy)); + //------------------------------------------------------ - foreach (var rslt in results) FluentCommon.SaveToDb(StateMachine.WtSession, rslt); /// TODO: Use separate database + IList sortedResults = Utils.GetSortedTestResults(StateMachine.Procedure, results, 0); + foreach (var rslt in sortedResults) FluentCommon.SaveToDb(StateMachine.WtSession, rslt); //-------------------------------- diff --git a/TestBenchFramework/Screens/ResultsTabPageCtrl.cs b/TestBenchFramework/Screens/ResultsTabPageCtrl.cs index 430f6d356..4c0d43b57 100644 --- a/TestBenchFramework/Screens/ResultsTabPageCtrl.cs +++ b/TestBenchFramework/Screens/ResultsTabPageCtrl.cs @@ -153,7 +153,7 @@ namespace TBF.Screens (testResults[0].MetersKind == Entities.MetersKind.Combined)); bool first = true; - for (int mtr = 0; mtr < (combined ? Program.WMsCount / 2 : Program.WMsCount); mtr++) + for (int mtr = 1; mtr <= (combined ? Program.WMsCount / 2 : Program.WMsCount); mtr++) { if (TestsArrangement == Forms.ResultsConfig.TestsAre.Rows) { @@ -191,6 +191,12 @@ namespace TBF.Screens } + /// + /// Get decorated test names for the specified watermeter + /// The parameter meterNr is used in the same way as the parameter meterNr of Utils.GetSortedTestResults + /// + /// Water meter nr (1-based): 1 .. Program.WMsCount + /// A list of strings IList GetAllDecoratedTestNames(int meterNr) { IList rslt = new List(); @@ -200,7 +206,7 @@ namespace TBF.Screens BenchControl.GenericDevices.ITestMethod method = BenchControl.TbfComponents.FindComponent(test.Method) as BenchControl.GenericDevices.ITestMethod; - if ((method != null) && method.Publish && ((test.Part == 0) || (test.Part == meterNr + 1))) + if ((method != null) && method.Publish && ((test.Part == 0) || (meterNr == 0) || (test.Part == meterNr))) { if (test.Repeats == 1) { @@ -219,7 +225,7 @@ namespace TBF.Screens /// /// Get a ListView control filled with results of the meter 'mtr' /// - /// Water meter number: 0..Program.WMsCount + /// Water meter number (1-based): 1 .. Program.WMsCount /// ListView object ListView GetResultsTestsAreRows(int mtr) { @@ -232,7 +238,7 @@ namespace TBF.Screens TBF.LocalSettings ls = Program.LocalSettings; if (combined) { - lview.Columns.Add((mtr + 1).ToString(), (ls.RsltsCombinedClmnCount > 0) ? ls.RsltsCombinedClmnWdths[0] : 40); + lview.Columns.Add(mtr.ToString(), (ls.RsltsCombinedClmnCount > 0) ? ls.RsltsCombinedClmnWdths[0] : 40); int i = 1; foreach (var item in items) { @@ -242,7 +248,7 @@ namespace TBF.Screens } else { - lview.Columns.Add((mtr + 1).ToString(), (ls.RsltsSingleClmnCount > 0) ? ls.RsltsSingleClmnWdths[0] : 40); + lview.Columns.Add(mtr.ToString(), (ls.RsltsSingleClmnCount > 0) ? ls.RsltsSingleClmnWdths[0] : 40); int i = 1; foreach (var item in items) { @@ -263,13 +269,13 @@ namespace TBF.Screens string str; if (combined) { - str = (item.PrintCombined == null) ? string.Empty : item.PrintCombined(testRslt.Meters[2 * mtr], - testRslt.Meters[2 * mtr + 1], - testRslt.CombinedMeters[mtr]); + str = (item.PrintCombined == null) ? string.Empty : item.PrintCombined(testRslt.Meters[2 * mtr - 2], + testRslt.Meters[2 * mtr - 1], + testRslt.CombinedMeters[mtr - 1]); } else { - str = (item.Print == null) ? string.Empty : item.Print(testRslt.Meters[mtr]); + str = (item.Print == null) ? string.Empty : item.Print(testRslt.Meters[mtr - 1]); } string[] texts = str.Split(new char[] { '|' }); @@ -299,7 +305,7 @@ namespace TBF.Screens /// /// Get a ListView control filled with results of the meter 'mtr' /// - /// Water meter number: 0..Program.WMsCount + /// Water meter number (1-based): 1 .. Program.WMsCount /// ListView object ListView GetResultsTestsAreColumns(int mtr) { @@ -312,7 +318,7 @@ namespace TBF.Screens TBF.LocalSettings ls = Program.LocalSettings; if (combined) { - lview.Columns.Add((mtr + 1).ToString(), (ls.RsltsCombinedClmnCount > 0) ? ls.RsltsCombinedClmnWdths[0] : 40); + lview.Columns.Add(mtr.ToString(), (ls.RsltsCombinedClmnCount > 0) ? ls.RsltsCombinedClmnWdths[0] : 40); int i = 1; foreach (var str in GetAllDecoratedTestNames(mtr)) { @@ -322,7 +328,7 @@ namespace TBF.Screens } else { - lview.Columns.Add((mtr + 1).ToString(), (ls.RsltsSingleClmnCount > 0) ? ls.RsltsSingleClmnWdths[0] : 40); + lview.Columns.Add(mtr.ToString(), (ls.RsltsSingleClmnCount > 0) ? ls.RsltsSingleClmnWdths[0] : 40); int i = 1; foreach (var str in GetAllDecoratedTestNames(mtr)) { @@ -340,9 +346,9 @@ namespace TBF.Screens { foreach (var tr in trs) { - string str = (item.PrintCombined == null || tr == null) ? string.Empty : item.PrintCombined(tr.Meters[2 * mtr], - tr.Meters[2 * mtr + 1], - tr.CombinedMeters[mtr]); + string str = (item.PrintCombined == null || tr == null) ? string.Empty : item.PrintCombined(tr.Meters[2 * mtr - 2], + tr.Meters[2 * mtr - 1], + tr.CombinedMeters[mtr - 1]); string[] texts = str.Split(new char[] { '|' }); if (texts.Length == 1) { @@ -365,7 +371,7 @@ namespace TBF.Screens { foreach (var tr in trs) { - string str = (item.Print == null || tr == null) ? string.Empty : item.Print(tr.Meters[mtr]); + string str = (item.Print == null || tr == null) ? string.Empty : item.Print(tr.Meters[mtr - 1]); string[] texts = str.Split(new char[] { '|' }); if (texts.Length == 1) diff --git a/TestBenchFramework/Utils.cs b/TestBenchFramework/Utils.cs index 4e0cb4931..cc5d361c2 100644 --- a/TestBenchFramework/Utils.cs +++ b/TestBenchFramework/Utils.cs @@ -172,7 +172,7 @@ namespace TBF /// /// Current procedure, it is used to determine the order of resulting test results /// Currently available unsorted test results (can also be null) - /// Water meter number (only used when tests have nonzero 'Part' number) + /// Water meter number (1-based) or 0=all (also compared with nonzero 'Part' number) /// Ordered list of test results containing null-s for missing results public static IList GetSortedTestResults(Entities.Procedure procedure, IList testResults, int meterNr) { @@ -185,7 +185,7 @@ namespace TBF BenchControl.GenericDevices.ITestMethod method = BenchControl.TbfComponents.FindComponent(test.Method) as BenchControl.GenericDevices.ITestMethod; - if ((method != null) && method.Publish && ((test.Part == 0) || (test.Part == meterNr + 1))) + if ((method != null) && method.Publish && ((test.Part == 0) || (meterNr == 0) || (test.Part == meterNr))) { for (int rpt = 1; rpt <= test.Repeats; rpt++) {