tbf/ResultsBrowser/Forms/CustomQuerySpecificationForm.cs

149 lines
5.8 KiB
C#
Raw Permalink Normal View History

///
/// Copyright (c) 2020 Sensus Slovensko a.s.
///
using System;
using System.Text;
using System.Windows.Forms;
namespace ResultsBrowser.Forms
{
public partial class CustomQuerySpecificationForm : Form
{
public CQCriteria CQCriteria;
public string InputList { get { return inputListSB.ToString(); } }
public int IntParameter { get { return intParameter; } }
public DateTime From { get { return fromDateTimePicker.Value.Date; } }
public DateTime To { get { return toDateTimePicker.Value.Date.AddDays(1).AddTicks(-1); } }
public string DestinationFile
{
get
{
return String.IsNullOrEmpty(destinationFileTextBox.Text)
? string.Format("vysledky_hladania_{0:ddMMyyyy_HHmm}.csv", DateTime.Now)
: destinationFileTextBox.Text;
}
}
StringBuilder inputListSB;
int intParameter;
public CustomQuerySpecificationForm()
{
InitializeComponent();
inputListSB = new StringBuilder();
queryTypeComboBox.Items.Add(new CQSelectionItem(CQCriteria.ListOfOrders, "Všetky vodomery s číslami objednávok podľa zadaného zoznamu"));
queryTypeComboBox.Items.Add(new CQSelectionItem(CQCriteria.ListOfPcbNumbers, "Všetky vodomery s číslami PCB podľa zadaného zoznamu"));
//queryTypeComboBox.Items.Add(new CQSelectionItem(CQCriteria.RangeOfSerialNumbers, "Všetky vodomery so sériovými číslami v zadanom rozsahu"));
//queryTypeComboBox.Items.Add(new CQSelectionItem(CQCriteria.ListOfSerialNumbers, "Všetky vodomery so sériovými číslami podľa zadaného zoznamu"));
queryTypeComboBox.Items.Add(new CQSelectionItem(CQCriteria.WZTypeIdAndTimePeriod, "Všetky vodomery so zadaným WZTypeID vyrobené v zadanom časovom období"));
queryTypeComboBox.Items.Add(new CQSelectionItem(CQCriteria.ProducedWithinTimePeriod, "Všetky vodomery vyrobené v zadanom časovom období"));
queryTypeComboBox.Items.Add(new CQSelectionItem(CQCriteria.BenchAndBatchNr, "Stanica a číslo dávky"));
queryTypeComboBox.Text = "Všetky vodomery vyrobené v zadanom časovom období";
destinationFileTextBox.Text = string.Format("vysledky_hladania_{0:ddMMyyyy_HHmm}.csv", DateTime.Now);
}
private void queryTypeComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
CQCriteria = CQCriteria.Undefined;
/// Determine selected criteria
foreach (var item in queryTypeComboBox.Items)
{
if (item.ToString() == queryTypeComboBox.Text)
{
CQCriteria = (item as CQSelectionItem).CQCriteria;
break;
}
}
if (CQCriteria == CQCriteria.Undefined)
{
/// No criteria selected
inputListGroupBox.Enabled = false;
return;
}
/// Update UI elements visibility
inputListGroupBox.Enabled = (CQCriteria == CQCriteria.ListOfOrders) ||
(CQCriteria == CQCriteria.ListOfPcbNumbers) ||
(CQCriteria == CQCriteria.ListOfSerialNumbers) ||
(CQCriteria == CQCriteria.BenchAndBatchNr);
timePeriodGroupBox.Enabled = (CQCriteria == CQCriteria.WZTypeIdAndTimePeriod) ||
(CQCriteria == CQCriteria.ProducedWithinTimePeriod);
if (CQCriteria == CQCriteria.WZTypeIdAndTimePeriod)
{
parameterGroupBox.Enabled = true;
parameterNameLabel.Text = "WZ Type ID";
}
else if (CQCriteria == CQCriteria.BenchAndBatchNr)
{
parameterGroupBox.Enabled = true;
parameterNameLabel.Text = "Test bench number (e.g. 10 for WR10)";
}
else
{
parameterGroupBox.Enabled = false;
parameterNameLabel.Text = string.Empty;
}
}
private void addToListButton_Click(object sender, EventArgs e)
{
AddItemForm dlg = new AddItemForm();
if (dlg.ShowDialog() == DialogResult.OK)
{
if (inputListSB.Length != 0)
{
inputListSB.Append(",");
}
inputListSB.Append(dlg.ItemText);
inputListTextBox.Text = inputListSB.ToString();
}
}
private void importFromFileButton_Click(object sender, EventArgs e)
{
MessageBox.Show("Zatiaľ nie je naimplementované");
}
private void clearListButton_Click(object sender, EventArgs e)
{
inputListSB.Clear();
inputListTextBox.Text = String.Empty;
}
private void okButton_Click(object sender, EventArgs e)
{
if (parameterGroupBox.Enabled && !int.TryParse(parameterValueTextBox.Text, out intParameter))
{
MessageBox.Show("Parameter je neplatný!");
return;
}
DialogResult = DialogResult.OK;
Close();
}
private void cancelButton_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
Close();
}
private void destinationFileButton_Click(object sender, EventArgs e)
{
SaveFileDialog dlg = new SaveFileDialog { FileName = destinationFileTextBox.Text };
if (dlg.ShowDialog() == DialogResult.OK)
{
destinationFileTextBox.Text = dlg.FileName;
}
}
}
}