Физическая структура программы 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Физическая структура программы



В ходе разработки программы были созданы следующие формы:

‒ «Glavn» – главная форма приложения, на которой производится вся работа с информацией. На форме доступна возможность перехода к формам справочников и документов приложения, а также к формированию отчетов для пользователей;

‒ «Sotrud», «Dolgnost», «Klienty», «Uslugi», «VidyUslig», «Zakazy» - формы для просмотра, редактирования и обработки информации в табличном виде из таблиц БД: Сотрудники, Должности, Клиенты, Услуги, Виды услуг и Заказы соответственно;

‒ «Report1», «Report2», «Report3», «Report4», «Report5» и «Report6» - формы для формирования отчетов: «Личная карточка работников», «Договор», «Статистика по заказам», «Статистика по сотрудникам», «Статистика по услугам» и «Финансовый отчет»;

‒ «Auth» и «Registr» – формы для авторизации и регистрации пользователей;

‒ «ZakazySotr» – форма для просмотра и редактирования заказов конкретного сотрудника из таблицы Заказы;

‒ «DobavUslugi» - форма для добавления и удаления услуг по конкретному заказу представлена на рисунке 11.

Рисунок 11 – UML-диаграмма классов «Glavn» и «Sotrud»

В ходе разработки программы в классах были разработаны различные методы для функционирования системы, например:

‒ «sortAsc_Click» – обработка события для кнопки «Сортировать по возрастанию» в табличных формах программы, например в форме «Sotrud»:

private void sortAsc_Click(object sender, EventArgs e)

 

   {

       if (ComboBoxSortColumns.SelectedIndex > -1)           сотрудникиDataGridView.Sort(сотрудникиDataGridView.Columns[ComboBoxSortColumns.SelectedIndex], ListSortDirection.Ascending);

   }

‒ «sortDesk_Click» – обработка события для кнопки «Сортировать по убыванию» в табличных формах программы, например в форме «Sotrud»:

private void sortDesc_Click(object sender, EventArgs e)

   {

       if (ComboBoxSortColumns.SelectedIndex > -1)           сотрудникиDataGridView.Sort(сотрудникиDataGridView.Columns[ComboBoxSortColumns.SelectedIndex], ListSortDirection.Descending);

   }

‒ «filtr_Click» – обработка события для кнопки «Применить» для фильтрации содержимого таблицы по выбранному столбцу:

private void filtr_Click(object sender, EventArgs e)

   {

       сотрудникиBindingSource.Filter = "Фамилия='" + comboBox1.Text + "'";

   }

‒ «poisk_Click» – обработка события для кнопки «Поиск» в табличных формах программы, например в форме «Sotrud»:

private void poisk_Click(object sender, EventArgs e)

   {

       for (int i = 0; i < сотрудникиDataGridView.RowCount; i++)

           

{

           сотрудникиDataGridView.Rows[i].Selected = false;

           for (int j = 0; j < сотрудникиDataGridView.ColumnCount; j++)

              if (сотрудникиDataGridView.Rows[i].Cells[j].Value!= null)

                   if (сотрудникиDataGridView.Rows[i].Cells[j].Value.ToString().Contains(textBox1.Text))

                   {                       сотрудникиDataGridView.Rows[i].Selected = true;

                       break;

                   }

       }     

}

‒ «dobavFoto_Click» – обработка события для кнопки «Загрузить фото» в форме «Sotrud»:

private void dobavFoto_Click(object sender, EventArgs e)

   {

       Bitmap image; //Bitmap для открываемого изображения

       OpenFileDialog open_dialog = new OpenFileDialog();

       open_dialog.Filter =

"Image Files(*.BMP;*.JPG;*.GIF;*.PNG)|*.BMP;*.JPG;*.GIF;*.PNG|All files (*.*)|*.*";

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

       {

           try

           {

               image = new Bitmap(open_dialog.FileName);

               this.фотоPictureBox.Size = image.Size;

               фотоPictureBox.Image = image;

               фотоPictureBox.Invalidate();

           }

           catch

           {

               DialogResult rezult = MessageBox.Show("Невозможно открыть выбранный файл", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

           }

       }

       фотоPictureBox.SizeMode = PictureBoxSizeMode.Zoom;

       this.Validate();

       this.сотрудникиBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.химчисткаDataSet);

   }

‒ «dobav_Click» – обработка события для кнопки «Добавить» в табличных формах программы, например в форме «Sotrud»:

private void dobav_Click(object sender, EventArgs e)

   {

       сотрудникиBindingSource.AddNew();

   }

‒ «udalen_Click» – обработка события для кнопки «Удалить» в табличных формах программы, например в форме «Sotrud»:

private void udalen_Click(object sender, EventArgs e)

   {

       сотрудникиBindingSource.RemoveCurrent();

   }

‒ «sohran_Click» – обработка события для кнопки «Сохранить» в табличных формах программы, например в форме «Sotrud»:

private void sohran_Click(object sender, EventArgs e)

   {

       this.Validate();

       this.сотрудникиBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.химчисткаDataSet);

   }

‒ «obnov_Click» – обработка события для кнопки «Обновить» в табличных формах программы, например в форме «Sotrud»:

private void obnov_Click(object sender, EventArgs e)

   {       this.сотрудникиTableAdapter.Fill(this.химчисткаDataSet.Сотрудники);

   }

‒ «export_Click» – обработка события для кнопки «Экспорт в Excel» в в форме «Uslugi»:

private void export_Click(object sender, EventArgs e)

   {

       Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();

 

       ExcelApp.Application.Workbooks.Add(Type.Missing);

       ExcelApp.Columns.ColumnWidth = 15;

       ExcelApp.Cells[1, 1] = "Номер услуги";

       ExcelApp.Cells[1, 2] = "Вид услуги";

       ExcelApp.Cells[1, 3] = "Наименование услуги";

       ExcelApp.Cells[1, 4] = "Стоимость услуги";           

       for (int i = 0; i < услугиDataGridView.ColumnCount; i++)

       {

           for (int j = 0; j < услугиDataGridView.RowCount; j++)

           {

               ExcelApp.Cells[j + 2, i + 1] = услугиDataGridView[i, j].Value;

           }

       }

       ExcelApp.Visible = true;

   }

‒ «RaschetSum_Click» – обработка события для кнопки «Рассчитать сумму» в форме «Zakazy»:

private void RaschetSum_Click(object sender, EventArgs e)

   {

       double Sum = 0;

       for (int i = 0; i < услуги_по_заказуDataGridView.RowCount; i++)

           Sum = Sum + Convert.ToDouble(услуги_по_заказуDataGridView.Rows[i].Cells[2].Value) * Convert.ToDouble(услуги_по_заказуDataGridView.Rows[i].Cells[3].Value);

       label2.Text = Sum.ToString("c");

   }

Рисунок 12 – UML-диаграмма классов «Auth» и «Registr»

‒ «vhod_Click» – обработка события для кнопки «Войти» в форме «Auth»:

private void vhod_Click(object sender, EventArgs e)

   {

       if (textBox1.Text == "")

       {

           MessageBox.Show("Вы не ввели логин.");

           return;

       }

       if (textBox2.Text == "")

       {

           MessageBox.Show("Вы не ввели пароль.");

           return;

       }

       if (comboBox1.Text == "")

       {

           MessageBox.Show("Вы не выбрали тип пользователя.");

           return;

       }

       SqlConnection con = new SqlConnection(@"Data Source=localhost\SQLEXPRESS; Initial Catalog=Химчистка; Integrated Security=True; User Instance=False");

       string str = "select * from Авторизация " + "where Логин='" + textBox1.Text + "' " + "and Пароль='" + textBox2.Text + "'" + "and Тип_пользователя='" + comboBox1.Text + "'";

       con.Open();

       SqlCommand cmd = new SqlCommand(str, con);

       object obj = cmd.ExecuteScalar();

       if (obj == null)

       {

           MessageBox.Show("Такого логина и пароля с таким типом пользователя в БД нет.");

       }

       else

       {

           if (comboBox1.Text == "Директор")

           {

               Glavn f1 = new Glavn();

               f1.Show();

               this.Hide();

               admin = true;

           }

           if (comboBox1.Text == "Менеджер")

           {

               this.Hide();

               Glavn f1 = new Glavn();

               f1.Show();

               mened = true;

           }

           if (comboBox1.Text == "Сотрудник")

           {

               this.Hide();

               @fam = textBox1.Text;

                   

ZakazySotr f15 = new ZakazySotr();

               f15.Show();

               sotr = true;

           }

       }   }

‒ «registracia_Click» – обработка события для кнопки «зарегистрироваться» в форме «Registr»:

private void Registracia_Click(object sender, EventArgs e)

   {

       if (textBox1.Text == "")

       {

           MessageBox.Show("Вы не ввели логин.");

           return;

       }

       if (textBox2.Text == "")

       {

           MessageBox.Show("Вы не ввели пароль.");

           return;

       }

       if (textBox2.Text!= textBox3.Text)

       {

           MessageBox.Show("Введенные пароли не совпадают.");

           return;

       }

       SqlConnection con = new SqlConnection(@"Data Source=Localhost\SQLEXPRESS; Initial Catalog=Химчистка; Integrated Security=True; User Instance=False");

       try

       {

           string str="insert into Авторизация (Логин, Пароль, Тип_пользователя) values (@log, @pas, @p3)";

           con.Open();

           SqlCommand cmd = new SqlCommand(str, con);

           cmd.Parameters.AddWithValue("@log", textBox1.Text);

           cmd.Parameters.AddWithValue("@pas", textBox2.Text);

           cmd.Parameters.AddWithValue("@p3", "Сотрудник");

           cmd.ExecuteNonQuery();

           con.Close();

           MessageBox.Show("Запись успешно добавлена.");

 

           this.Hide();

           Auth f13 = new Auth();

           f13.Show();

           Auth.sotr = true;

       }

       catch

       {

           MessageBox.Show("Возможно такой логин уже существует в БД.");

       }   }


 



Поделиться:


Последнее изменение этой страницы: 2019-11-02; просмотров: 584; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.147.215 (0.019 с.)