Configuration of results: Display on screen completed - to be tested
This commit is contained in:
@@ -12,17 +12,25 @@ namespace TBF.Forms
|
|||||||
public readonly string Name; /// Name-s of all items must be unique
|
public readonly string Name; /// Name-s of all items must be unique
|
||||||
public readonly string ClmnHeaderText; /// Text printed in the column header
|
public readonly string ClmnHeaderText; /// Text printed in the column header
|
||||||
|
|
||||||
|
/// Function to pick a MeterTestResult field and convert it into a string
|
||||||
public delegate string PrintDlgt(Entities.MeterTestResult meterTestResult);
|
public delegate string PrintDlgt(Entities.MeterTestResult meterTestResult);
|
||||||
public readonly PrintDlgt Print; /// Function to pick a MeterTestResult field and convert it into a string
|
public readonly PrintDlgt Print;
|
||||||
|
|
||||||
|
/// Function to pick a MeterTestResult field and convert it into a string
|
||||||
|
public delegate string PrintCombinedDlgt(Entities.MeterTestResult largeMeterTestResult,
|
||||||
|
Entities.MeterTestResult smallMeterTestResult,
|
||||||
|
Entities.MeterTestResult combinedMeterTestResult);
|
||||||
|
public readonly PrintCombinedDlgt PrintCombined;
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Public constructor
|
/// Public constructor
|
||||||
///
|
///
|
||||||
public ResultItemSpec(string name, string clmnHeaderText, PrintDlgt printDlgt)
|
public ResultItemSpec(string name, string clmnHeaderText, PrintDlgt printDlgt, PrintCombinedDlgt printCombinedDlgt)
|
||||||
{
|
{
|
||||||
Name = name;
|
Name = name;
|
||||||
ClmnHeaderText = clmnHeaderText;
|
ClmnHeaderText = clmnHeaderText;
|
||||||
Print = printDlgt;
|
Print = printDlgt;
|
||||||
|
PrintCombined = printCombinedDlgt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -36,29 +44,58 @@ namespace TBF.Forms
|
|||||||
AllItems = new List<ResultItemSpec>();
|
AllItems = new List<ResultItemSpec>();
|
||||||
|
|
||||||
/// Target values
|
/// Target values
|
||||||
AllItems.Add(new ResultItemSpec("Q from", Strings.Q_from_m3h, x => x.TestResult.Qfrom.ToString("F3")));
|
AllItems.Add(new ResultItemSpec("Q from", Strings.Q_from_m3h, x => x.TestResult.Qfrom.ToString("F3"),
|
||||||
AllItems.Add(new ResultItemSpec("Q to", Strings.Q_to_m3h, x => x.TestResult.Qto.ToString("F3")));
|
(x, y, z) => x.TestResult.Qfrom.ToString("F3")));
|
||||||
|
|
||||||
|
AllItems.Add(new ResultItemSpec("Q to", Strings.Q_to_m3h, x => x.TestResult.Qto.ToString("F3"),
|
||||||
|
(x, y, z) => x.TestResult.Qto.ToString("F3")));
|
||||||
|
|
||||||
/// Test results
|
/// Test results
|
||||||
AllItems.Add(new ResultItemSpec("Start time", "T start", x => x.TestResult.TimeStart.ToShortTimeString()));
|
AllItems.Add(new ResultItemSpec("Start time", "T start", x => x.TestResult.TimeStart.ToShortTimeString(),
|
||||||
AllItems.Add(new ResultItemSpec("End time", "T end", x => x.TestResult.TimeEnd.ToShortTimeString()));
|
(x, y, z) => z.TestResult.TimeStart.ToShortTimeString()));
|
||||||
AllItems.Add(new ResultItemSpec("Test time", "T [s]", x => x.TestResult.TimeEnd.ToShortTimeString()));
|
|
||||||
AllItems.Add(new ResultItemSpec("Flow", Strings.Flow_m3h, x => x.TestResult.FlowVolume.ToString("F3")));
|
|
||||||
AllItems.Add(new ResultItemSpec("T in", Strings.T_in, x => x.TestResult.TempInAvrg.ToString("F2")));
|
|
||||||
AllItems.Add(new ResultItemSpec("T out", Strings.T_out, x => x.TestResult.TempOutAvrg.ToString("F2")));
|
|
||||||
AllItems.Add(new ResultItemSpec("T div", Strings.T_div, x => x.TestResult.TempDivAvrg.ToString("F2")));
|
|
||||||
AllItems.Add(new ResultItemSpec("P in", Strings.P_in, x => x.TestResult.PressInAvrg.ToString("F3")));
|
|
||||||
AllItems.Add(new ResultItemSpec("P out", Strings.P_out, x => x.TestResult.PressOutAvrg.ToString("F3")));
|
|
||||||
|
|
||||||
/// Water meter results
|
AllItems.Add(new ResultItemSpec("End time", "T end", x => x.TestResult.TimeEnd.ToShortTimeString(),
|
||||||
AllItems.Add(new ResultItemSpec("Volume", "Volume", x => x.VolumeMeter.ToString("F3")));
|
(x, y, z) => z.TestResult.TimeEnd.ToShortTimeString()));
|
||||||
AllItems.Add(new ResultItemSpec("Reference volume", "Ref.volume", x => x.VolumeErrorPct.ToString("F2")));
|
|
||||||
AllItems.Add(new ResultItemSpec("Error", "Error [%]", x => x.VolumeMeter.ToString("F3")));
|
AllItems.Add(new ResultItemSpec("Test time", "T [s]", x => x.TestResult.TimeEnd.ToShortTimeString(),
|
||||||
AllItems.Add(new ResultItemSpec("Passed", "Result", x => (x.Passed ? Strings.Passed : Strings.Failed)));
|
(x, y, z) => z.TestResult.TimeEnd.ToShortTimeString()));
|
||||||
AllItems.Add(new ResultItemSpec("Pulses", "Pulses", x => x.PulsesMeter.ToString()));
|
|
||||||
AllItems.Add(new ResultItemSpec("Reference pulses", "Ref.pulses", x => x.PulsesMaster.ToString()));
|
AllItems.Add(new ResultItemSpec("Flow", Strings.Flow_m3h, x => x.TestResult.FlowVolume.ToString("F3"),
|
||||||
AllItems.Add(new ResultItemSpec("Serial Nr", "s/n", x => x.PulsesMeter.ToString()));
|
(x, y, z) => z.TestResult.FlowVolume.ToString("F3")));
|
||||||
AllItems.Add(new ResultItemSpec("End state", "End state", x => x.PulsesMeter.ToString()));
|
|
||||||
|
AllItems.Add(new ResultItemSpec("T in", Strings.T_in, x => x.TestResult.TempInAvrg.ToString("F2"),
|
||||||
|
(x, y, z) => z.TestResult.TempInAvrg.ToString("F2")));
|
||||||
|
|
||||||
|
AllItems.Add(new ResultItemSpec("T out", Strings.T_out, x => x.TestResult.TempOutAvrg.ToString("F2"),
|
||||||
|
(x, y, z) => z.TestResult.TempOutAvrg.ToString("F2")));
|
||||||
|
|
||||||
|
AllItems.Add(new ResultItemSpec("T div", Strings.T_div, x => x.TestResult.TempDivAvrg.ToString("F2"),
|
||||||
|
(x, y, z) => z.TestResult.TempDivAvrg.ToString("F2")));
|
||||||
|
|
||||||
|
AllItems.Add(new ResultItemSpec("P in", Strings.P_in, x => x.TestResult.PressInAvrg.ToString("F3"),
|
||||||
|
(x, y, z) => z.TestResult.PressInAvrg.ToString("F3")));
|
||||||
|
|
||||||
|
AllItems.Add(new ResultItemSpec("P out", Strings.P_out, x => x.TestResult.PressOutAvrg.ToString("F3"),
|
||||||
|
(x, y, z) => z.TestResult.PressOutAvrg.ToString("F3")));
|
||||||
|
|
||||||
|
/// Single and combined ater meter results
|
||||||
|
AllItems.Add(new ResultItemSpec("Volume", "Volume", x => x.VolumeMeter.ToString("F3"),
|
||||||
|
(x, y, z) => z.VolumeMeter.ToString("F3")));
|
||||||
|
|
||||||
|
AllItems.Add(new ResultItemSpec("Reference volume", "Ref.volume", x => x.VolumeRef.ToString("F3"),
|
||||||
|
(x, y, z) => z.VolumeRef.ToString("F3")));
|
||||||
|
|
||||||
|
AllItems.Add(new ResultItemSpec("Error", "Error [%]", x => x.VolumeErrorPct.ToString("F2"),
|
||||||
|
(x, y, z) => z.VolumeErrorPct.ToString("F2")));
|
||||||
|
|
||||||
|
AllItems.Add(new ResultItemSpec("Passed", "Result", x => (x.Passed ? Strings.Passed : Strings.Failed),
|
||||||
|
(x, y, z) => (z.Passed ? Strings.Passed : Strings.Failed)));
|
||||||
|
|
||||||
|
/// Single water meters only results
|
||||||
|
AllItems.Add(new ResultItemSpec("Pulses", "Pulses", x => x.PulsesMeter.ToString(), null));
|
||||||
|
AllItems.Add(new ResultItemSpec("Reference pulses", "Ref.pulses", x => x.PulsesMaster.ToString(), null));
|
||||||
|
AllItems.Add(new ResultItemSpec("Serial Nr", "s/n", x => x.PulsesMeter.ToString(), null));
|
||||||
|
AllItems.Add(new ResultItemSpec("End state", "End state", x => x.PulsesMeter.ToString(), null));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ResultItemSpec GetItem(string name)
|
public static ResultItemSpec GetItem(string name)
|
||||||
|
|||||||
@@ -93,10 +93,11 @@ namespace TBF.Forms
|
|||||||
currentlyAvailableItems = new List<ResultItemSpec>();
|
currentlyAvailableItems = new List<ResultItemSpec>();
|
||||||
foreach (var item in ResultItemSpec.AllItems)
|
foreach (var item in ResultItemSpec.AllItems)
|
||||||
{
|
{
|
||||||
if (!selectedItems.Contains(item))
|
if (!selectedItems.Contains(item) && (combined ? (item.PrintCombined != null) : (item.Print != null)))
|
||||||
{
|
{
|
||||||
currentlyAvailableItems.Add(item);
|
currentlyAvailableItems.Add(item);
|
||||||
availableResultsListBox.Items.Add(item.Name);
|
string displayName = item.Name.Substring(0, 1).Equals("_") ? item.Name.Substring(1) : item.Name;
|
||||||
|
availableResultsListBox.Items.Add(displayName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -111,7 +112,8 @@ namespace TBF.Forms
|
|||||||
selectedResultsListBox.Items.Clear();
|
selectedResultsListBox.Items.Clear();
|
||||||
foreach (var item in selectedItems)
|
foreach (var item in selectedItems)
|
||||||
{
|
{
|
||||||
selectedResultsListBox.Items.Add(item.Name);
|
string displayName = item.Name.Substring(0, 1).Equals("_") ? item.Name.Substring(1) : item.Name;
|
||||||
|
selectedResultsListBox.Items.Add(displayName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -212,30 +212,6 @@ namespace TBF.Screens
|
|||||||
return rslt;
|
return rslt;
|
||||||
}
|
}
|
||||||
|
|
||||||
IList<string> GetAllResultNames(bool combined)
|
|
||||||
{
|
|
||||||
IList<string> rslt = new List<string>();
|
|
||||||
if (combined)
|
|
||||||
{
|
|
||||||
rslt.Add("Q [l/h]");
|
|
||||||
rslt.Add("Ref.volume [l]");
|
|
||||||
rslt.Add("WM1 volume [l]");
|
|
||||||
rslt.Add("WM2 volume [l]");
|
|
||||||
rslt.Add("WM volume [l]");
|
|
||||||
rslt.Add("Error [%]");
|
|
||||||
rslt.Add("Result");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
rslt.Add("Q [l/h]");
|
|
||||||
rslt.Add("Ref.volume [l]");
|
|
||||||
rslt.Add("WM volume [l]");
|
|
||||||
rslt.Add("Error [%]");
|
|
||||||
rslt.Add("Result");
|
|
||||||
}
|
|
||||||
return rslt;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get a ListView control filled with results of the meter 'mtr'
|
/// Get a ListView control filled with results of the meter 'mtr'
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -244,12 +220,12 @@ namespace TBF.Screens
|
|||||||
ListView GetResultsTestsAreRows(int mtr, bool combined)
|
ListView GetResultsTestsAreRows(int mtr, bool combined)
|
||||||
{
|
{
|
||||||
if (tests == null) return null;
|
if (tests == null) return null;
|
||||||
|
IList<Forms.ResultItemSpec> items = (combined ? SelectedItems_CombinedWM : SelectedItems_SingleWM);
|
||||||
ListView lview = GetListView();
|
ListView lview = GetListView();
|
||||||
|
|
||||||
// Header
|
// Header
|
||||||
lview.Columns.Add((mtr + 1).ToString());
|
lview.Columns.Add((mtr + 1).ToString());
|
||||||
foreach (var str in GetAllResultNames(combined)) lview.Columns.Add(str);
|
foreach (var item in items) lview.Columns.Add(item.ClmnHeaderText);
|
||||||
|
|
||||||
IList<string> testNames = GetAllDecoratedTestNames();
|
IList<string> testNames = GetAllDecoratedTestNames();
|
||||||
int ix = 0;
|
int ix = 0;
|
||||||
@@ -258,29 +234,20 @@ namespace TBF.Screens
|
|||||||
ListViewItem lvi = new ListViewItem(testNames[ix++]);
|
ListViewItem lvi = new ListViewItem(testNames[ix++]);
|
||||||
if (testRslt != null)
|
if (testRslt != null)
|
||||||
{
|
{
|
||||||
if (combined)
|
foreach (var item in items)
|
||||||
{
|
{
|
||||||
lvi.SubItems.Add(testRslt.FlowMass.ToString("F1"));
|
if (combined)
|
||||||
lvi.SubItems.Add(testRslt.VolumeCTV.ToString("F2"));
|
{
|
||||||
lvi.SubItems.Add(testRslt.Meters[2 * mtr].VolumeMeter.ToString("F2"));
|
lvi.SubItems.Add((item.PrintCombined == null) ? string.Empty : item.PrintCombined(testRslt.Meters[2 * mtr],
|
||||||
lvi.SubItems.Add(testRslt.Meters[2 * mtr + 1].VolumeMeter.ToString("F2"));
|
testRslt.Meters[2 * mtr + 1],
|
||||||
lvi.SubItems.Add(testRslt.CombinedMeters[mtr].VolumeMeter.ToString("F2"));
|
testRslt.CombinedMeters[mtr]));
|
||||||
lvi.SubItems.Add(testRslt.CombinedMeters[mtr].VolumeErrorPct.ToString("F2"));
|
}
|
||||||
lvi.SubItems.Add(testRslt.CombinedMeters[mtr].Passed ? Strings.Passed : Strings.Failed);
|
else
|
||||||
lvi.UseItemStyleForSubItems = false;
|
{
|
||||||
lvi.SubItems[7].BackColor = (testRslt.CombinedMeters[mtr].Passed ? Color.Green : Color.Red);
|
lvi.SubItems.Add((item.Print == null) ? string.Empty : item.Print(testRslt.Meters[mtr]));
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
lvi.SubItems.Add(testRslt.FlowMass.ToString("F1"));
|
|
||||||
lvi.SubItems.Add(testRslt.VolumeCTV.ToString("F2"));
|
|
||||||
lvi.SubItems.Add(testRslt.Meters[mtr].VolumeMeter.ToString("F2"));
|
|
||||||
lvi.SubItems.Add(testRslt.Meters[mtr].VolumeErrorPct.ToString("F2"));
|
|
||||||
lvi.SubItems.Add(testRslt.Meters[mtr].Passed ? Strings.Passed : Strings.Failed);
|
|
||||||
lvi.UseItemStyleForSubItems = false;
|
|
||||||
lvi.SubItems[5].BackColor = (testRslt.Meters[mtr].Passed ? Color.Green : Color.Red);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lview.Items.Add(lvi);
|
lview.Items.Add(lvi);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -295,7 +262,7 @@ namespace TBF.Screens
|
|||||||
ListView GetResultsTestsAreColumns(int mtr, bool combined)
|
ListView GetResultsTestsAreColumns(int mtr, bool combined)
|
||||||
{
|
{
|
||||||
if (tests == null) return null;
|
if (tests == null) return null;
|
||||||
|
IList<Forms.ResultItemSpec> items = (combined ? SelectedItems_CombinedWM : SelectedItems_SingleWM);
|
||||||
ListView lview = GetListView();
|
ListView lview = GetListView();
|
||||||
|
|
||||||
// Header
|
// Header
|
||||||
@@ -304,96 +271,25 @@ namespace TBF.Screens
|
|||||||
|
|
||||||
IList<Entities.TestResult> trs = GetCurrentTestResults();
|
IList<Entities.TestResult> trs = GetCurrentTestResults();
|
||||||
|
|
||||||
int rsltId = 0;
|
foreach (var item in items)
|
||||||
foreach (var rsltName in GetAllResultNames(combined))
|
|
||||||
{
|
{
|
||||||
ListViewItem lvi = new ListViewItem(rsltName);
|
ListViewItem lvi = new ListViewItem(item.ClmnHeaderText);
|
||||||
if (combined)
|
if (combined)
|
||||||
{
|
{
|
||||||
switch (rsltId++)
|
foreach (var tr in trs)
|
||||||
{
|
{
|
||||||
case 0:
|
lvi.SubItems.Add((item.PrintCombined == null) ? string.Empty : item.PrintCombined(tr.Meters[2 * mtr],
|
||||||
foreach (var tr in trs) lvi.SubItems.Add((tr != null) ? tr.FlowMass.ToString("F1") : string.Empty);
|
tr.Meters[2 * mtr + 1],
|
||||||
break;
|
tr.CombinedMeters[mtr]));
|
||||||
case 1:
|
|
||||||
foreach (var tr in trs) lvi.SubItems.Add((tr != null) ? tr.VolumeCTV.ToString("F2") : string.Empty);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
foreach (var tr in trs) lvi.SubItems.Add((tr != null) ? tr.Meters[2 * mtr].VolumeMeter.ToString("F2") : string.Empty);
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
foreach (var tr in trs) lvi.SubItems.Add((tr != null) ? tr.Meters[2 * mtr + 1].VolumeMeter.ToString("F2") : string.Empty);
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
foreach (var tr in trs) lvi.SubItems.Add((tr != null) ? tr.CombinedMeters[mtr].VolumeMeter.ToString("F2") : string.Empty);
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
foreach (var tr in trs) lvi.SubItems.Add((tr != null) ? tr.CombinedMeters[mtr].VolumeErrorPct.ToString("F2") : string.Empty);
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
int i = 1;
|
|
||||||
lvi.UseItemStyleForSubItems = false;
|
|
||||||
foreach (var tr in trs)
|
|
||||||
{
|
|
||||||
if (tr == null)
|
|
||||||
{
|
|
||||||
lvi.SubItems.Add(string.Empty);
|
|
||||||
}
|
|
||||||
else if (tr.CombinedMeters[mtr].Passed)
|
|
||||||
{
|
|
||||||
lvi.SubItems.Add(Strings.Passed);
|
|
||||||
lvi.SubItems[i].BackColor = Color.Green;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lvi.SubItems.Add(Strings.Failed);
|
|
||||||
lvi.SubItems[i].BackColor = Color.Red;
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
switch (rsltId++)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
foreach (var tr in trs) lvi.SubItems.Add((tr != null) ? tr.FlowMass.ToString("F1") : string.Empty);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
foreach (var tr in trs) lvi.SubItems.Add((tr != null) ? tr.VolumeCTV.ToString("F2") : string.Empty);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
foreach (var tr in trs) lvi.SubItems.Add((tr != null) ? tr.Meters[mtr].VolumeMeter.ToString("F2") : string.Empty);
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
foreach (var tr in trs) lvi.SubItems.Add((tr != null) ? tr.Meters[mtr].VolumeErrorPct.ToString("F2") : string.Empty);
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
int i = 1;
|
|
||||||
lvi.UseItemStyleForSubItems = false;
|
|
||||||
foreach (var tr in trs)
|
|
||||||
{
|
|
||||||
if (tr == null)
|
|
||||||
{
|
|
||||||
lvi.SubItems.Add(string.Empty);
|
|
||||||
}
|
|
||||||
else if (tr.Meters[mtr].Passed)
|
|
||||||
{
|
|
||||||
lvi.SubItems.Add(Strings.Passed);
|
|
||||||
lvi.SubItems[i].BackColor = Color.Green;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lvi.SubItems.Add(Strings.Failed);
|
|
||||||
lvi.SubItems[i].BackColor = Color.Red;
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach (var tr in trs)
|
||||||
|
{
|
||||||
|
lvi.SubItems.Add((item.Print == null) ? string.Empty : item.Print(tr.Meters[mtr]));
|
||||||
|
}
|
||||||
|
}
|
||||||
lview.Items.Add(lvi);
|
lview.Items.Add(lvi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user