Disabled watermeters will not appear in results (screen, ResultsPrinters.Basic and ResultsWriters.Basic).

Updating Disabled (default = false) is provided by DataEntry.Standard when entering serial numbers.
This commit is contained in:
Milan Hanajik 2015-03-25 03:57:46 +01:00
parent 7dce565e4f
commit 23d5e6d19d
9 changed files with 114 additions and 84 deletions

View File

@ -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
/// <summary>
/// Print one water meter results
/// </summary>
/// <param name="wmNr1">Water meter number (1-based)</param>
/// <param name="wmNr">Water meter number (0-based)</param>
/// <param name="top">Top coordinate of watermeter data</param>
/// <returns>The height of the printed section</returns>
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<Entities.TestResult> results = Utils.GetSortedTestResults(procedure, unsortedResults, wmNr1);
IList<Entities.TestResult> 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[] { '|' });

View File

@ -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++);
}
}
}
/// <summary>
/// Write one water meter results
/// </summary>
/// <param name="wmNr1">Water meter number (1-based)</param>
void WriteSingleWM(int wmNr1)
/// <param name="wmNr">Water meter number (0-based)</param>
void WriteSingleWM(int wmNr, int printedWMNr)
{
IList<Entities.TestResult> results = Utils.GetSortedTestResults(procedure, unsortedResults, wmNr1);
IList<Entities.TestResult> 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[] { '|' });

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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;

View File

@ -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);

View File

@ -127,24 +127,6 @@ namespace TBF.Screens
/// </summary>
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
/// </summary>
/// <param name="mtr">Water meter number (1-based): 1 .. Program.WMsCount</param>
/// <returns>ListView object</returns>
ListView GetResultsTestsAreRows(int mtr)
ListView GetResultsTestsAreRows(int mtr, int printedWMNr)
{
IList<Forms.ResultItemSpec> 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
/// </summary>
/// <param name="mtr">Water meter number (1-based): 1 .. Program.WMsCount</param>
/// <returns>ListView object</returns>
ListView GetResultsTestsAreColumns(int mtr)
ListView GetResultsTestsAreColumns(int mtr, int printedWMNr)
{
IList<Forms.ResultItemSpec> 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))
{