Курсовая работа. ПЗ_Самый итоговый вариант. Допустить к защите
Скачать 1.4 Mb.
|
3.3 Физическая структура программыВ ходе разработки программы были созданы следующие формы: «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("Возможно такой логин уже существует в БД."); } } |