591 lines
20 KiB
C#
591 lines
20 KiB
C#
///
|
|
/// Copyright (c) 2015 Sensus Metering Systems
|
|
///
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using log4net;
|
|
using NHibernate;
|
|
using Oracle.DataAccess.Client; // ODP.NET Oracle managed provider
|
|
using Oracle.DataAccess.Types;
|
|
using Results.Entities;
|
|
|
|
namespace ResultsBrowser
|
|
{
|
|
public partial class MainWnd : Form
|
|
{
|
|
static readonly ILog log = LogManager.GetLogger(typeof(MainWnd));
|
|
|
|
bool batchesQueried;
|
|
|
|
public static IList<Batch> QueryBatches;
|
|
public static IList<WaterMeter> QueryWaterMeters;
|
|
|
|
public static IList<Batch> ReportBatches;
|
|
public static IList<WaterMeter> ReportWaterMeters;
|
|
|
|
public IList<Results.ItemSpec> ReportItems_Single;
|
|
public IList<Results.ItemSpec> ReportItems_Compound;
|
|
|
|
|
|
public MainWnd()
|
|
{
|
|
InitializeComponent();
|
|
|
|
QueryBatches = new List<Batch>();
|
|
QueryWaterMeters = new List<WaterMeter>();
|
|
|
|
ReportBatches = new List<Batch>();
|
|
ReportWaterMeters = new List<WaterMeter>();
|
|
}
|
|
|
|
private void MainWnd_Load(object sender, EventArgs e)
|
|
{
|
|
PrepareComboBoxHistory(Program.LocalSettings.PurchaseOrderHistory, purchaseOrderComboBox);
|
|
PrepareComboBoxHistory(Program.LocalSettings.ProcedureHistory, procedureComboBox);
|
|
PrepareComboBoxHistory(Program.LocalSettings.ReportFileNameHistory, reportFileComboBox);
|
|
purchaseOrderComboBox.Text = Program.LocalSettings.LastPurchaseOrder;
|
|
procedureComboBox.Text = Program.LocalSettings.LastProcedure;
|
|
reportFileComboBox.Text = Program.LocalSettings.LastReportFileName;
|
|
|
|
ReportItems_Single = Results.ItemSpec.FromStrArray(Program.LocalSettings.ReportItems_Single);
|
|
ReportItems_Compound = Results.ItemSpec.FromStrArray(Program.LocalSettings.ReportItems_Compound);
|
|
|
|
purchaseOrderCheckBox.Checked = Program.LocalSettings.FilterPurchaseOrder;
|
|
procedureCheckBox.Checked = Program.LocalSettings.FilterProcedure;
|
|
batchNrCheckBox.Checked = Program.LocalSettings.FilterBatchNr;
|
|
filterDateCheckBox.Checked = Program.LocalSettings.FilterDate;
|
|
|
|
resolveManuallyCheckBox.Checked = Program.LocalSettings.ResolveManually;
|
|
|
|
batchNrFromTextBox.Text = Program.LocalSettings.BatchFrom;
|
|
batchNrToTextBox.Text = Program.LocalSettings.BatchTo;
|
|
|
|
Results.DB.ConnectionString = Program.LocalSettings.ConnectionString1;
|
|
}
|
|
|
|
private void MainWnd_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
Program.LocalSettings.UpdateHistory(purchaseOrderComboBox.Text, ref Program.LocalSettings.PurchaseOrderHistory);
|
|
Program.LocalSettings.UpdateHistory(procedureComboBox.Text, ref Program.LocalSettings.PurchaseOrderHistory);
|
|
Program.LocalSettings.UpdateHistory(reportFileComboBox.Text, ref Program.LocalSettings.ReportFileNameHistory);
|
|
Program.LocalSettings.LastPurchaseOrder = purchaseOrderComboBox.Text;
|
|
Program.LocalSettings.LastProcedure = procedureComboBox.Text;
|
|
Program.LocalSettings.LastReportFileName = reportFileComboBox.Text;
|
|
|
|
Program.LocalSettings.ReportItems_Single = Results.ItemSpec.ToStrArray(ReportItems_Single);
|
|
Program.LocalSettings.ReportItems_Compound = Results.ItemSpec.ToStrArray(ReportItems_Compound);
|
|
|
|
Program.LocalSettings.FilterPurchaseOrder = purchaseOrderCheckBox.Checked;
|
|
Program.LocalSettings.FilterProcedure = procedureCheckBox.Checked;
|
|
Program.LocalSettings.FilterBatchNr = batchNrCheckBox.Checked;
|
|
Program.LocalSettings.FilterDate = filterDateCheckBox.Checked;
|
|
|
|
Program.LocalSettings.BatchFrom = batchNrFromTextBox.Text;
|
|
Program.LocalSettings.BatchTo = batchNrToTextBox.Text;
|
|
|
|
Program.LocalSettings.ResolveManually = resolveManuallyCheckBox.Checked;
|
|
|
|
Program.LocalSettings.Save();
|
|
}
|
|
|
|
void RedrawLists()
|
|
{
|
|
RedrawQueryList();
|
|
RedrawReportList();
|
|
}
|
|
|
|
void RedrawQueryList()
|
|
{
|
|
queryResultsListBox.Items.Clear();
|
|
if (batchesQueried)
|
|
{
|
|
foreach (var b in QueryBatches) queryResultsListBox.Items.Add(b.ToString());
|
|
}
|
|
else
|
|
{
|
|
foreach (var wmr in QueryWaterMeters) queryResultsListBox.Items.Add(wmr);
|
|
}
|
|
int nrItems = queryResultsListBox.Items.Count;
|
|
if (nrItems == 0) queryResultsListBox.Items.Add("<empty>");
|
|
queryResultsItemsLabel.Text = string.Format("{0} items", nrItems);
|
|
}
|
|
|
|
void RedrawReportList()
|
|
{
|
|
reportListBox.Items.Clear();
|
|
foreach (var wmr in ReportWaterMeters) reportListBox.Items.Add(wmr);
|
|
int nrItems = reportListBox.Items.Count;
|
|
if (nrItems == 0) reportListBox.Items.Add("<empty>");
|
|
reportItemsLabel.Text = string.Format("{0} items", nrItems);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Load Purchase order combo box items from the LocalSettings PurchaseOrderHistory array
|
|
/// </summary>
|
|
/// <param name="comboBox">Puchase order ComboBox</param>
|
|
void PrepareComboBoxHistory(string[] history, ComboBox comboBox)
|
|
{
|
|
if (history == null || history.Length == 0) return;
|
|
|
|
for (int i = 0; i < history.Length; i++) comboBox.Items.Add(history[i]);
|
|
if (comboBox.Items.Count > 0) comboBox.Text = comboBox.Items[0].ToString();
|
|
}
|
|
|
|
private void filterDateCheckBox_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
fromDateTimePicker.Enabled = toDateTimePicker.Enabled = filterDateCheckBox.Checked;
|
|
}
|
|
|
|
private void purchaseOrderCheckBox_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
purchaseOrderComboBox.Enabled = purchaseOrderCheckBox.Checked;
|
|
}
|
|
|
|
private void procedureCheckBox_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
procedureComboBox.Enabled = procedureCheckBox.Checked;
|
|
}
|
|
|
|
|
|
private void clearButton_Click(object sender, EventArgs e)
|
|
{
|
|
QueryWaterMeters.Clear();
|
|
queryResultsListBox.Items.Clear();
|
|
}
|
|
|
|
|
|
private void configReportButton_Click(object sender, EventArgs e)
|
|
{
|
|
Forms.ResultsConfig dlg = new Forms.ResultsConfig(false);
|
|
|
|
dlg.ReportItems_Single = ReportItems_Single;
|
|
dlg.ReportItems_Compound = ReportItems_Compound;
|
|
|
|
if (DialogResult.OK == dlg.ShowDialog())
|
|
{
|
|
ReportItems_Single = dlg.ReportItems_Single;
|
|
ReportItems_Compound = dlg.ReportItems_Compound;
|
|
|
|
Program.LocalSettings.ReportItems_Single = Results.ItemSpec.ToStrArray(ReportItems_Single);
|
|
Program.LocalSettings.ReportItems_Compound = Results.ItemSpec.ToStrArray(ReportItems_Compound);
|
|
}
|
|
}
|
|
|
|
|
|
private void removeFromQueryButton_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
/// Remove from the list (the last selected item first so that the indexes are not affected)
|
|
for (int i = queryResultsListBox.SelectedIndices.Count - 1; i >= 0; i--)
|
|
{
|
|
if (batchesQueried)
|
|
{
|
|
QueryBatches.RemoveAt(queryResultsListBox.SelectedIndices[i]);
|
|
}
|
|
else
|
|
{
|
|
QueryWaterMeters.RemoveAt(queryResultsListBox.SelectedIndices[i]);
|
|
}
|
|
}
|
|
|
|
RedrawLists();
|
|
}
|
|
catch
|
|
{
|
|
MessageBox.Show("Something strange happened", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
|
}
|
|
}
|
|
|
|
|
|
private void removeFromReportButton_Click(object sender, EventArgs e)
|
|
{
|
|
/// Remove from the list (the last selected item first so that the indexes are not affected)
|
|
for (int i = reportListBox.SelectedIndices.Count - 1; i >= 0; i--)
|
|
{
|
|
ReportWaterMeters.RemoveAt(reportListBox.SelectedIndices[i]);
|
|
}
|
|
|
|
RedrawLists();
|
|
}
|
|
|
|
|
|
private void addToReportButton_Click(object sender, EventArgs e)
|
|
{
|
|
if (batchesQueried)
|
|
{
|
|
foreach (var b in QueryBatches)
|
|
{
|
|
foreach (var wm in b.WaterMeters) ReportWaterMeters.Add(wm);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
foreach (var wm in QueryWaterMeters)
|
|
{
|
|
if (!ReportWaterMeters.Contains(wm)) ReportWaterMeters.Add(wm);
|
|
}
|
|
}
|
|
|
|
RedrawLists();
|
|
}
|
|
|
|
|
|
private void browseFileButton_Click(object sender, EventArgs e)
|
|
{
|
|
SaveFileDialog dlg = new SaveFileDialog();
|
|
dlg.Title = "Target file";
|
|
if (dlg.ShowDialog() == DialogResult.OK)
|
|
{
|
|
reportFileComboBox.Text = dlg.FileName;
|
|
}
|
|
}
|
|
|
|
|
|
private void addOracleDataButton_Click(object sender, EventArgs e)
|
|
{
|
|
#if IPERLST || IPERLST_SPECIAL
|
|
if (ReportWaterMeters.Count == 0) return;
|
|
|
|
/// Oracle database connection
|
|
OracleConnection conn = new OracleConnection("Data Source=STARA01.WORLD;User Id=deltachef;Password=deltachef;");
|
|
|
|
try
|
|
{
|
|
conn.Open();
|
|
|
|
for (int i = 0; i < ReportWaterMeters.Count; i++)
|
|
{
|
|
Results.Entities.WaterMeter wm = ReportWaterMeters[i];
|
|
|
|
IList<int> serialNrExes = new List<int>();
|
|
{
|
|
OracleParameter parm = new OracleParameter();
|
|
parm.OracleDbType = OracleDbType.Varchar2;
|
|
parm.Value = wm.SerialNr; /// PCB Nr.
|
|
|
|
OracleCommand cmd1 = new OracleCommand("SELECT Zaehlernummer, Auftragsnummer FROM VT_ZAEHLER_PD WHERE VT_Fernum = :1 AND ANBID = 4", conn);
|
|
cmd1.Parameters.Add(parm);
|
|
|
|
OracleDataReader dr = cmd1.ExecuteReader();
|
|
|
|
if (dr.Read())
|
|
{
|
|
wm.SerialNrEx = dr.GetInt32(0);
|
|
wm.PurchaseOrder = dr.GetString(1);
|
|
}
|
|
|
|
dr.Close();
|
|
}
|
|
}
|
|
|
|
conn.Close();
|
|
}
|
|
catch (Exception exc)
|
|
{
|
|
MessageBox.Show(string.Format("Error when querying Oracle database:\r\n{0}", exc.Message),
|
|
"Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
|
|
RedrawLists();
|
|
return;
|
|
}
|
|
|
|
RedrawLists();
|
|
#endif
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Create ASC file in R.Uhlik format
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void makeAscFileButton_Click(object sender, EventArgs e)
|
|
{
|
|
if (string.IsNullOrEmpty(reportFileComboBox.Text))
|
|
{
|
|
MessageBox.Show("No report file selected.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
|
return;
|
|
}
|
|
|
|
if (ReportItems_Single == null || ReportItems_Single.Count == 0)
|
|
{
|
|
MessageBox.Show("Please, configure the report first", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
|
return;
|
|
}
|
|
|
|
using (TextWriter report = new StreamWriter(reportFileComboBox.Text, true))
|
|
{
|
|
foreach (var wm in ReportWaterMeters)
|
|
{
|
|
try
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
#if IPERLST || IPERLST_SPECIAL
|
|
sb.Append(wm.SerialNrEx);
|
|
#else
|
|
sb.Append(wm.SerialNr);
|
|
#endif
|
|
sb.Append(';'); sb.Append(wm.ProductName());
|
|
sb.Append(';'); sb.Append(wm.ApprovalInfo());
|
|
sb.Append(';'); sb.Append(wm.MetrologicalClass());
|
|
sb.Append(';'); sb.Append("0");
|
|
sb.Append(';'); sb.Append((1000 * (wm.GetTestRslt("Q1") != null ? wm.GetTestRslt("Q1").Qfrom() : 0)).ToString("F0")); /// Q1 nominal
|
|
sb.Append(';'); sb.Append((1000 * (wm.GetTestRslt("Q2") != null ? wm.GetTestRslt("Q2").Qfrom() : 0)).ToString("F0")); /// Q2 nominal
|
|
sb.Append(';'); sb.Append((1000 * (wm.GetTestRslt("Q3") != null ? wm.GetTestRslt("Q3").Qto() : 0)).ToString("F0")); /// Q3 nominal
|
|
sb.Append(';'); sb.Append("0"); /// Q4 nominal
|
|
sb.Append(';'); sb.Append("6"); /// Worker code
|
|
sb.Append(';'); sb.Append(ToShortStr(wm.EndTime()));
|
|
sb.Append(';'); sb.Append((wm.GetMeterTestRslt("Q1") != null ? wm.GetMeterTestRslt("Q1").Error : 99).ToString("F1")); /// Q1 Error [%]
|
|
sb.Append(';'); sb.Append((wm.GetMeterTestRslt("Q2") != null ? wm.GetMeterTestRslt("Q2").Error : 99).ToString("F1")); /// Q2 Error [%]
|
|
sb.Append(';'); sb.Append((wm.GetMeterTestRslt("Q3") != null ? wm.GetMeterTestRslt("Q3").Error : 99).ToString("F1")); /// Q3 Error [%]
|
|
sb.Append(';'); sb.Append("0"); /// Q4 Error [%]
|
|
sb.Append(';'); sb.Append(wm.BenchId().ToString()); ///
|
|
sb.Append(';'); sb.Append(wm.PurchaseOrder);
|
|
sb.Append(';'); sb.Append("");
|
|
sb.Append(';'); sb.Append("10000");
|
|
sb.Append(';'); sb.Append(wm.ProcedureName().Substring(0, 8));
|
|
sb.Append(";\""); sb.Append(wm.SerialNr); sb.Append('"');
|
|
|
|
report.WriteLine(sb);
|
|
}
|
|
catch (Exception exc)
|
|
{
|
|
string msg = exc.Message;
|
|
}
|
|
}
|
|
}
|
|
|
|
MessageBox.Show("Report saved", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
}
|
|
|
|
|
|
static string ToShortStr(DateTime date)
|
|
{
|
|
return (((date.Year % 100) * 100 + date.Month) * 100 + date.Day).ToString();
|
|
}
|
|
|
|
|
|
private void makeReportButton_Click(object sender, EventArgs e)
|
|
{
|
|
if (string.IsNullOrEmpty(reportFileComboBox.Text))
|
|
{
|
|
MessageBox.Show("No report file selected.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
|
return;
|
|
}
|
|
|
|
if (ReportItems_Single == null || ReportItems_Single.Count == 0)
|
|
{
|
|
MessageBox.Show("Please, configure the report first", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
|
return;
|
|
}
|
|
|
|
using (TextWriter report = new StreamWriter(reportFileComboBox.Text, true))
|
|
{
|
|
foreach (var wm in ReportWaterMeters)
|
|
{
|
|
try
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
#if IPERLST || IPERLST_SPECIAL
|
|
sb.Append(wm.SerialNrEx);
|
|
#else
|
|
sb.Append(wm.SerialNr);
|
|
#endif
|
|
sb.Append(";\""); sb.Append(wm.SerialNr); sb.Append('"'); /// PCB number
|
|
sb.Append(";\""); sb.Append(wm.ProcedureName()); sb.Append('"'); /// Procedure name
|
|
sb.Append(';'); sb.Append((1000 * (wm.GetTestRslt("q3") != null ? wm.GetTestRslt("q3").Qto() : 0)).ToString("F0")); /// Q3 nominal
|
|
sb.Append(';'); sb.Append((wm.GetMeterTestRslt("adjustment") != null ? wm.GetMeterTestRslt("adjustment").Error : 99).ToString("F2"));/// Adjustment Error [%]
|
|
sb.Append(';'); sb.Append((wm.GetMeterTestRslt("q3") != null ? wm.GetMeterTestRslt("q1").Error : 99).ToString("F2")); /// Q1 Error [%]
|
|
sb.Append(';'); sb.Append((wm.GetMeterTestRslt("q2") != null ? wm.GetMeterTestRslt("q2").Error : 99).ToString("F2")); /// Q2 Error [%]
|
|
sb.Append(';'); sb.Append((wm.GetMeterTestRslt("q1") != null ? wm.GetMeterTestRslt("q3").Error : 99).ToString("F2")); /// Q3 Error [%]
|
|
sb.Append(';'); sb.Append(wm.StartTime().ToShortTimeString());
|
|
sb.Append(';'); sb.Append(wm.EndTime().ToShortTimeString());
|
|
|
|
report.WriteLine(sb);
|
|
}
|
|
catch (Exception exc)
|
|
{
|
|
string msg = exc.Message;
|
|
}
|
|
}
|
|
}
|
|
|
|
MessageBox.Show("Report saved", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
}
|
|
|
|
|
|
private void configButton_Click(object sender, EventArgs e)
|
|
{
|
|
if ((new Forms.DatabaseSettingsDlg()).ShowDialog() == DialogResult.OK)
|
|
{
|
|
Results.DB.ConnectionString = Program.LocalSettings.ConnectionString1;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void queryBatchesButton_Click(object sender, EventArgs e)
|
|
{
|
|
if (!purchaseOrderCheckBox.Checked && !procedureCheckBox.Checked &&
|
|
!filterDateCheckBox.Checked && !batchNrCheckBox.Checked)
|
|
{
|
|
return;
|
|
}
|
|
|
|
queryResultsListBox.Items.Clear();
|
|
|
|
try
|
|
{
|
|
ISession session = Results.DB.CreateSession();
|
|
|
|
IList<Batch> batches;
|
|
|
|
if (filterDateCheckBox.Checked)
|
|
{
|
|
batches = session.QueryOver<Batch>()
|
|
.WhereRestrictionOn(x => x.EndTime)
|
|
.IsBetween(fromDateTimePicker.Value.Date)
|
|
.And(toDateTimePicker.Value.Date.AddDays(1).AddTicks(-1))
|
|
//.OrderBy(x => x.BatchNr).Asc
|
|
.List<Batch>();
|
|
}
|
|
else
|
|
{
|
|
batches = session.QueryOver<Batch>()
|
|
.List<Batch>();
|
|
}
|
|
|
|
if (procedureCheckBox.Checked)
|
|
{
|
|
IList<Batch> batches2 = new List<Batch>();
|
|
foreach (var b in batches)
|
|
{
|
|
if (b.ProcedureName.Equals(procedureComboBox.Text)) batches2.Add(b);
|
|
}
|
|
batches = batches2;
|
|
}
|
|
|
|
if (purchaseOrderCheckBox.Checked)
|
|
{
|
|
IList<Batch> batches3 = new List<Batch>();
|
|
foreach (var b in batches)
|
|
{
|
|
if (b.WaterMeters[0].PurchaseOrder.Equals(purchaseOrderComboBox.Text)) batches3.Add(b);
|
|
}
|
|
batches = batches3;
|
|
}
|
|
|
|
QueryBatches = batches;
|
|
batchesQueried = true;
|
|
RedrawQueryList();
|
|
///
|
|
}
|
|
catch (Exception exc)
|
|
{
|
|
MessageBox.Show(exc.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
}
|
|
|
|
private void queryWatermetersButton_Click(object sender, EventArgs e)
|
|
{
|
|
if (!purchaseOrderCheckBox.Checked && !procedureCheckBox.Checked &&
|
|
!filterDateCheckBox.Checked && !batchNrCheckBox.Checked)
|
|
{
|
|
return;
|
|
}
|
|
|
|
queryResultsListBox.Items.Clear();
|
|
|
|
try
|
|
{
|
|
bool purchaseOrderFiltered = false;
|
|
bool procedureFiltered = false;
|
|
|
|
ISession session = Results.DB.CreateSession();
|
|
|
|
IList<WaterMeter> waterMeters;
|
|
|
|
if (filterDateCheckBox.Checked)
|
|
{
|
|
IList<Batch> batches = session.QueryOver<Batch>()
|
|
.WhereRestrictionOn(x => x.EndTime)
|
|
.IsBetween(fromDateTimePicker.Value.Date)
|
|
.And(toDateTimePicker.Value.Date.AddDays(1).AddTicks(-1))
|
|
//.OrderBy(x => x.BatchNr).Asc
|
|
.List<Batch>();
|
|
|
|
waterMeters = new List<WaterMeter>();
|
|
foreach (var b in batches)
|
|
{
|
|
foreach (var wm in b.WaterMeters) waterMeters.Add(wm);
|
|
}
|
|
}
|
|
else if (purchaseOrderCheckBox.Checked)
|
|
{
|
|
waterMeters = session.QueryOver<WaterMeter>()
|
|
.Where(x => (x.PurchaseOrder == purchaseOrderCheckBox.Text))
|
|
.List<WaterMeter>();
|
|
purchaseOrderFiltered = true;
|
|
}
|
|
else if (procedureCheckBox.Checked && !procedureFiltered)
|
|
{
|
|
waterMeters = session.QueryOver<WaterMeter>()
|
|
.Where(x => (x.Batch.ProcedureName == procedureComboBox.Text))
|
|
.List<WaterMeter>();
|
|
procedureFiltered = true;
|
|
}
|
|
else
|
|
{
|
|
waterMeters = session.QueryOver<WaterMeter>().List<WaterMeter>();
|
|
}
|
|
|
|
|
|
if (purchaseOrderCheckBox.Checked && !purchaseOrderFiltered)
|
|
{
|
|
IList<WaterMeter> waterMeters3 = new List<WaterMeter>();
|
|
foreach (var wm in waterMeters)
|
|
{
|
|
if (wm.PurchaseOrder.Equals(purchaseOrderComboBox.Text)) waterMeters3.Add(wm);
|
|
}
|
|
waterMeters = waterMeters3;
|
|
purchaseOrderFiltered = true;
|
|
}
|
|
|
|
if (procedureCheckBox.Checked && !procedureFiltered)
|
|
{
|
|
IList<WaterMeter> waterMeters2 = new List<WaterMeter>();
|
|
foreach (var wm in waterMeters)
|
|
{
|
|
if (wm.Batch.ProcedureName.Equals(procedureComboBox.Text)) waterMeters2.Add(wm);
|
|
}
|
|
waterMeters = waterMeters2;
|
|
procedureFiltered = true;
|
|
}
|
|
|
|
QueryWaterMeters = waterMeters;
|
|
batchesQueried = false;
|
|
RedrawQueryList();
|
|
}
|
|
catch (Exception exc)
|
|
{
|
|
MessageBox.Show(exc.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
}
|
|
|
|
private void queryResultsListBox_DoubleClick(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void reportListBox_DoubleClick(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
}
|
|
}
|