Разработка информационной подсистемы для работы с вкладами от частных лиц, страница 5

public SecondResultOfAskForm secondresultForm = new SecondResultOfAskForm();

private XmlSerializer xmls = new XmlSerializer(typeof(List<Facts>));

public StartForm()

{

InitializeComponent();

bindingSource1.DataSource = new List<Facts>();

}

private void SaveData(string name)

{

if (name == "" || dataGridViewBasic.RowCount == 1)

return;

if (dataGridViewBasic.CurrentRow.IsNewRow)

dataGridViewBasic.CurrentCell = dataGridViewBasic[0, dataGridViewBasic.RowCount - 2];

StreamWriter sw = new StreamWriter(name, false, Encoding.Default);

xmls.Serialize(sw, bindingSource1.DataSource);

sw.Close();

}

private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)

{

bindingNavigatorDeleteItem.Enabled = !dataGridViewBasic.Rows[e.RowIndex].IsNewRow;

}

private void fileMenu_DropDownOpening(object sender, EventArgs e)

{

saveAsFile.Enabled = dataGridViewBasic.RowCount > 1;

}

private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)

{

menuStrip1.Enabled = !dataGridViewBasic.IsCurrentCellDirty;

}

private void createFile_Click(object sender, EventArgs e)

{

SaveData(saveFileDialog1.FileName);

bindingSource1.DataSource = new List<Facts>();

dataGridViewBasic.CurrentCell = dataGridViewBasic[0, 0];

saveFileDialog1.FileName = "";

Text = "Система для работы с вкладами от частных лиц";

}

private void openFile_Click(object sender, EventArgs e)

{

openFileDialog1.FileName = "";

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

SaveData(saveFileDialog1.FileName);

string s = openFileDialog1.FileName;

StreamReader sr = new StreamReader(s, Encoding.Default);

bindingSource1.SuspendBinding();

bindingSource1.DataSource = xmls.Deserialize(sr);

bindingSource1.ResumeBinding();

sr.Close();

saveFileDialog1.FileName = s;

Text = "Система для работы с вкладами от частных лиц - " + Path.GetFileNameWithoutExtension(s);

}

}

private void saveAsFile_Click(object sender, EventArgs e)

{

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{

string s = saveFileDialog1.FileName;

SaveData(s);

Text = "Система для работы с вкладами от частных лиц - " + Path.GetFileNameWithoutExtension(s);

}

}

private void saveFile_Click(object sender, EventArgs e)

{

SaveData(saveFileDialog1.FileName);

}

private void StartForm_FormClosing(object sender, FormClosingEventArgs e)

{

SaveData(saveFileDialog1.FileName);

}

private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)

{

if (dataGridViewBasic.Rows[e.RowIndex].IsNewRow)

return;

string err = "", s = e.FormattedValue.ToString();

switch (e.ColumnIndex)

{

case 0://Date

if (s == "") break;

DateTime d;

if (!DateTime.TryParse(s, out d))

err = "Строку нельзя преобразовать в дату";

else

{

int year = DateTime.Today.Year - d.Year;

int month = DateTime.Today.Month - d.Month;

int day = DateTime.Today.Day - d.Day;

if (year < 0)

err = "Введена неверная дата";

else if (month < 0 && year==0)

err = "Введена неверная дата";

else if (day < 0 && month==0 && year==0)

err = "Введена неверная дата";

}

break;

case 1://Surname

if (s == "")

err = "Поле\"Фамилия\" должно быть непустым";

break;

case 3://depositSum

double i;

if (!double.TryParse(s, out i))

err = "Строку нельзя преобразовать в число";

else

if (i < 0)

err = "Отрицательные числа не допускаются";

break;

} //switch

e.Cancel = err != "";

dataGridViewBasic.Rows[e.RowIndex].ErrorText = err;

}

private void dataGridView1_RowValidating(object sender, DataGridViewCellCancelEventArgs e)

{

if (dataGridViewBasic.Rows[e.RowIndex].IsNewRow)

return;

string err = "";

if (dataGridViewBasic[1, e.RowIndex].Value == null)

err = "Поле\"Фамилия\" должно быть непустым";

e.Cancel = err == "";