Разработка программного продукта "Отдел кадров завода"

Отчет по практике - Компьютеры, программирование

Другие отчеты по практике по предмету Компьютеры, программирование

одимые команды соответствующие активной таблице, такие как поиск, удаление, добавление, редактирование. При закрытии главной рабочей формы осуществляется автоматический выход из приложения.

 

. Выбор методов решения задачи и разработка основных алгоритмов

 

Структура обработки информации представляется в следующем виде:

 

 

 

 

 

 

 

Рисунок 7.1 - Структура обработки информации

 

Соединение с базой данных производится следующим образом:

string InstConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"Организация.mdb";con;= new OleDbConnection(InstConnectString);

Для осуществления поиска по полям таблицы Сотрудники в программе предусмотрен специальный метод Search, который не только позволяет быстро находить необходимые данные по всем полям таблицы, но и начинает работать уже с первого введенного в поле для поиска символа, что значительно ускоряет этот процесс.void Search(string SQL)

{

{dt = new DataTable();da = new OleDbDataAdapter(SQL, con);.Fill(dt);.DataSource = dt;

}

{.Show("Введены некорректные данные", "Поиск", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}

В данный метод передается строка SQL-запроса, которая может принимать различные значения в зависимости от выбранного в элементе ComboBox названия поля, по которому пользователю необходимо произвести поиск.

private void textBox1_TextChanged(object sender, EventArgs e)

{(tabControl1.SelectedTab.Text == "Сотрудники")

{(NameOfField == "ID" && textBox1.Text.Length != 0)("Select* from Сотрудники where CInt(Mid(CStr(Сотрудники.ID),1," + textBox1.Text.Length + "))=" + int.Parse(textBox1.Text));if (NameOfField == "Фамилия" && textBox1.Text.Length != 0)("Select* from Сотрудники where Сотрудники.Фамилия Like " + textBox1.Text + "%");if (textBox1.Text.Length == 0)

{dt = new DataTable("Сотрудники");da = new OleDbDataAdapter("Select* from Сотрудники", con);.Fill(dt);.DataSource = dt;

}

}

Для удаления какой-либо записи из таблицы Сотрудники необходимо в элемент TextBox ввести значение номера лицевого счета соответствующего удаляемой записи и нажать кнопку Удалить.

OleDbCommand insCom = new OleDbCommand("Delete from Сотрудники where ((Сотрудники.ID)=" + int.Parse(textBox2.Text) + ");", con);(insCom.ExecuteNonQuery() == 1).Show("Запись удалена", "Удаление", MessageBoxButtons.OK, MessageBoxIcon.Information);.Show("Запись не удалена", "Удаление", MessageBoxButtons.OK, MessageBoxIcon.Error);dt = new DataTable("Сотрудники");da = new OleDbDataAdapter("Select* from Сотрудники", con);.Fill(dt);.DataSource = dt;

Для редактирования данных в таблице отдельного метода не предусмотрено, но используется алгоритм, который позволяет изменять данные непосредственно в самом элементе dataGridView. Этот метод очень прост и понятен, для его работы необходимо определить позицию выделенной ячейки в таблице, запомнить все данные из этой строки, а после введения изменений и подтверждения пользователем обновить данные в элементе dataGridView.

private void dg1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)

{= dg1.CurrentCell.Value;= (int)dg1.CurrentRow.Cells[0].Value;= dg1.Columns[dg1.CurrentCellAddress.X].HeaderText;void dg1_CellEndEdit(object sender, DataGridViewCellEventArgs e)

{

{(ColumnName == "ID")

{.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;;

}if (ColumnName == "Дата поступления")

{.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;;

}(edit.ToString() != dg1.CurrentCell.Value.ToString() && DialogResult.Yes == MessageBox.Show("Принять изменения?", "Редактирование", MessageBoxButtons.YesNo, MessageBoxIcon.Question))

{com = new OleDbCommand("Update Сотрудники Set [" + ColumnName + "]=" + dg1.CurrentCell.Value + " Where ID=" + ID, con);.ExecuteNonQuery();

}.CurrentCell.Value = edit;

}

{.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;

}

Для таблицы Должности элемента ComboBox заполняются программно из базы данных с помощью следующего алгоритма.InstConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"Организация.mdb";con;rdr1, rdr2, rdr3;cmd1, cmd2, cmd3;Form2()

{();= new OleDbConnection(InstConnectString);.Open();= con.CreateCommand();.CommandText = "Select [Код подразделения] From Подразделения";= cmd1.ExecuteReader();(rdr1.Read())

{tmp = ""; //для каждого нового пункта списка очищаем(tmp != "")// если в массиве данных есть значения+= " ";+= rdr1[0].ToString(); //формируем пункт поля со списком.Items.Add(tmp); //добавляем пункт списка к объекту

}

}

Другой элемента ComboBox, необходимый для добавления записи имеет список фиксированных значений.

В данном приложении алгоритм добавления данных выглядит следующим образом.

int id = SearchID.Start("Сотрудники", "ID", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"Организация.mdb");today = new DateTime();= Convert.ToDateTime(monthCalendar1.TodayDate.Date.ToShortDateString());

{insSQL2 = "Insert into Бухгалтерия values(" + id + ","

+ int.Parse(textBox12.Text) + "," + int.Parse(textBox13.Text) + ")";insCom2 = new OleDbCommand(insSQL2, con);insSQL = "Insert into Сотрудники values(" + id + ","

+ textBox1.Text + "," + textBox2.Text + "," + textBox3.Text + ","

+ textBox4.Text + "," + textBox5.Text + "," + textBox6.Text + ","

+ textBox7.Text + "," + textBox8.Text + "," + textBox9.Text + ","

+ Convert.ToDateTime(today) + ")";insCom = new OleDbCommand(insSQL, con);insSQL3 = "Insert into Должности values(" + id + ","

+ int.Parse(comboBox1.SelectedItem.ToString()) + "," + textBox10.Text + "," + textBox11.Text + ","

+ int.Parse(comboBox1.SelectedItem.ToString()) + ")";insCom3 = new OleDbCommand(insSQL3, con);(insCom2.ExecuteNonQuery() == 1 && insCom.ExecuteNonQuery() == 1 && insCom3.ExecuteNonQuery() == 1).Show("Запись добавлена", "Добавление", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

{.Show("Введены некорректные данные", "Добавление", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

 

 

Заключение

 

Разработанная программа повышает качество работы отдела кадров предприятий. Ве?/p>