/// /// Copyright (c) 2019 Sensus Slovensko a.s. /// using System; using System.Collections.Generic; using System.Windows.Forms; using TracingDB.Entities; using Results.Resources; using Config.Entities; using System.Drawing; using System.Windows.Forms.DataVisualization.Charting; namespace Results.Forms { public partial class MoreWMResultsDlg : Form { public MoreWMResultsDlg(Results.Entities.WaterMeter wm, IList refRecords) { InitializeComponent(); Localize(); ShowAllResults(wm); ShowChart(wm); if (refRecords == null) { tabControl1.SelectTab(1); tabControl1.TabPages[2].Hide(); } else { tabControl1.SelectTab(2); ShowTracingResults(wm, refRecords); } } void Localize() { Text = Strings.Water_meter_results; tabControl1.TabPages[0].Text = Strings.All_results; tabControl1.TabPages[1].Text = Strings.Graphs; tabControl1.TabPages[2].Text = Strings.Production_tracing_results; } /// /// Display all results for this water meter in the 1st tab page /// /// Water meter entity void ShowAllResults(Results.Entities.WaterMeter wMtr) { string message; Color commonBackColor = wMtr.GetColorOfResults(false, out message); /// Ony message is used later on #if ORACLE_DB oneWMResultsCtrl.Caption = string.Format("{0} ({1}) {2}", (string.IsNullOrEmpty(wMtr.SerialNr) ? string.Empty : wMtr.SerialNr), (wMtr.Pruefindex % 100), message); #else oneWMResultsCtrl.Caption = string.Format("s/n = {0}", string.IsNullOrEmpty(wMtr.SerialNr) ? string.Empty : wMtr.SerialNr); #endif IList items = Results.WMeterRsltItemSpec.AllItems; // Header oneWMResultsCtrl.Columns.Add(wMtr.WMPosition.ToString(), 100); int i = 1; foreach (var str in wMtr.GetAllDecoratedTestNames()) { oneWMResultsCtrl.Columns.Add(str, 100); i++; } foreach (var item in items) { ListViewItem lvi = new ListViewItem(item.Name); foreach (var mtr in wMtr.MeterTestRslts) { if (mtr != null && mtr.IsPilotRslt() && mtr.TestDone && mtr.Publish() != Config.Entities.Publish.Never && mtr.Publish() != Config.Entities.Publish.Internal) { string str = item.Print(wMtr, mtr.Name()); string[] texts = str.Split(new char[] { '|' }); if (texts.Length == 1) { lvi.SubItems.Add(str); } else if (texts.Length == 2) { Color color = texts[1].Equals("Green") ? Color.Green : (texts[1].Equals("Red") ? Color.Red : Color.White); lvi.UseItemStyleForSubItems = false; lvi.SubItems.Add(texts[0]); lvi.SubItems[lvi.SubItems.Count - 1].BackColor = color; } else { lvi.SubItems.Add(string.Empty); } } } oneWMResultsCtrl.Items.Add(lvi); } } void ShowChart(Results.Entities.WaterMeter wm) { //chart.ChartAreas[0].AxisX.LabelStyle.Format = "dd.MM.yy"; //chart.ChartAreas[0].AxisX.Interval = 1; //chart.ChartAreas[0].AxisX.IntervalType = ; tabControl1.TabPages[1].Controls.Add(Results.Output.WMChart.GetChart(wm)); } /// /// Display tracing results in the 3rd tab page /// /// Water meter entity /// ReferenceRecord-s from tracing DB void ShowTracingResults(Results.Entities.WaterMeter wm, IList refRecords) { tracingResultsListView.Columns.Add(Strings.Date_and_time, 110); tracingResultsListView.Columns.Add(Strings.Step, 100); tracingResultsListView.Columns.Add(Strings.Workplace, 100); tracingResultsListView.Columns.Add(Strings.Name, 100); tracingResultsListView.Columns.Add(Strings.Result, 70); tracingResultsListView.Columns.Add(Strings.Part, 90); tracingResultsListView.Columns.Add(Strings.Code, 150); tracingResultsListView.Columns.Add(Strings.Workflow, 450); foreach (var rr in refRecords) { tracingResultsListView.Items.Add(new ListViewItem(new string[] { rr.TimeStamp.ToString("dd.MM.yyyy HH:mm"), rr.Workstep.Name, rr.Workplace, rr.UserName, rr.Result == 0 ? "OK" : "NOK", rr.Workstep.ReferencePart.Name, rr.Code, rr.Process.Name, })); } } } }