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