Diplom_O/MainForms/ChildForm.cs
2024-09-20 06:53:52 +03:00

163 lines
3.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Diplom_O.DataBase;
namespace Diplom_O
{
public partial class ChildForm : Form
{
private readonly ColumnConf[] tableMainColumns = {
new ColumnConf(name: "№"),
new ColumnConf(name: "Фамилия И.О.", size: 140),
new ColumnConf(name: "Пол", size: 80),
new ColumnConf(name: "Дата рождения", size: 80),
new ColumnConf(name: "Род 1", size: 140),
new ColumnConf(name: "Род 2", size: 140)
};
private void resetChildTable()
{
try
{
var res = FuncDB.ChildTableMain(findBox.Text);
this.ResetTable(
childGridView,
tableMainColumns,
res
);
}
catch (Exception e)
{
this.ShowError(errorLabel, e.Message);
}
}
private Child selectedChildTable()
{
try
{
if (childGridView.SelectedRows.Count != 1)
throw new Exception("Ребонок не выбран.");
if (int.TryParse((string)childGridView.SelectedRows[0].Cells[0].Value, out int value))
return FuncDB.ChildGetById(value);
else
throw new Exception("Ошибка в таблице.");
}
catch (Exception e)
{
this.ShowError(errorLabel, e.Message);
return null;
}
}
private void resetChildCount()
{
try
{
lableChildCount.Text = FuncDB.ChildCount(dateTimePicker1.Value).ToString();
lableChildCountMale.Text = FuncDB.ChildCount(dateTimePicker1.Value, true).ToString();
lableChildCountFemale.Text = FuncDB.ChildCount(dateTimePicker1.Value, false).ToString();
}
catch (Exception e)
{
this.ShowError(errorLabel, e.Message);
}
}
public ChildForm()
{
InitializeComponent();
this.correctUpperMenu(menuStrip, 6);
resetChildTable();
dateTimePicker1.Value = DateTime.Now;
resetChildCount();
addButton.Enabled =
changeButton.Enabled =
delButton.Enabled = false;
var user = this.GetUser();
if (user == null)
return;
delButton.Enabled = FuncDB.AccessGetByUserIdFormIdAccessId(user.Id, 6, 1) != null;
changeButton.Enabled = FuncDB.AccessGetByUserIdFormIdAccessId(user.Id, 6, 2) != null;
addButton.Enabled = FuncDB.AccessGetByUserIdFormIdAccessId(user.Id, 6, 3) != null;
}
private void addButton_Click(object sender, EventArgs e)
{
try
{
var form = new SupportForms.ChildForm();
form.ShowDialog();
if (!form.isCanceled)
resetChildTable();
resetChildCount();
}
catch (Exception ex)
{
this.ShowError(errorLabel, ex.Message);
}
}
private void changeButton_Click(object sender, EventArgs e)
{
try
{
var form = new SupportForms.ChildForm(selectedChildTable());
form.ShowDialog();
if (!form.isCanceled)
resetChildTable();
resetChildCount();
}
catch (Exception ex)
{
this.ShowError(errorLabel, ex.Message);
}
}
private void delButton_Click(object sender, EventArgs e)
{
try
{
var res = selectedChildTable();
FuncDB.ChildDelete(res);
resetChildTable();
resetChildCount();
}
catch (Exception ex)
{
this.ShowError(errorLabel, ex.Message);
}
}
private void upperMenuClicked(object sender, ToolStripItemClickedEventArgs e)
{
this.upperMenuClicked((MenuStrip)sender);
if (this.GetNextForm() != -1)
Close();
}
private void button1_Click(object sender, EventArgs e)
{
resetChildCount();
}
private void findBox_TextChanged(object sender, EventArgs e)
{
this.FindOnChanged(resetChildTable);
}
private void dropFindButton_Click(object sender, EventArgs e)
{
findBox.Text = "";
this.FindOnChanged(null);
resetChildTable();
}
}
}