ДИПЛОМ (1206322), страница 5
Текст из файла (страница 5)
Программный код, осуществляющий событие Button_Click,представлен в листинге 3.protected void Button5_Click(object sender, EventArgs e){if (fio.Text.Length != 0){SqlDataAdapter dad = new SqlDataAdapter("select Работники.FIO AS ФИО, Работники.NFIO AS\'Табельный номер\', Профессии.Proff AS Должность, Работники.Pol AS Пол, Работники.Height ASРост,Работники.SCloseAS'Размеродежды',Работники.SShoesAS'Размеробуви',Работники.SHead AS 'Размер головы', Работники.SPr AS 'Размер противогаза', Работники.SHandAS 'Размер руки'from Работники INNER JOIN Профессии on Работники.ID_proff =Профессии.ID_proff Where FIO='" + fio.Text + "'", c);DataSet ds = new DataSet();dad.Fill(ds);GridView1.DataSource = ds;GridView1.DataBind();fio.Text = string.Empty;}else{SqlDataAdapter dad = new SqlDataAdapter("select Работники.FIO AS ФИО, Работники.NFIO AS\'Табельный номер\', Профессии.Proff AS Должность from Работники INNER JOIN Профессии onРаботники.ID_proff = Профессии.ID_proff ", c);DataSet ds = new DataSet();dad.Fill(ds);GridView1.DataSource = ds;GridView1.DataBind();fio.Text = string.Empty;}}Листинг 3 – Вывод данных о работниках3.1.2 Просмотр сведений об остатках СИЗ на складе ЭЧ-9Следующим пунктом реализации функционала разрабатываемого вебприложения является, непосредственно, просмотр остатков СИЗ на складе ЭЧ9.
При переходе на веб-страницу SKK.aspx (рисунок 3.4), для пользователя открывается окно с элементами управления: asp:textbox, asp:button.31Рисунок 3.4 – Веб-страница «Склад ЭЧ-9»При нажатии на кнопку «Просмотр остатков», в зависимости от того,ввел ли пользователь номенклатурный номер СИЗ, или нет, выводится либотаблица, содержащая данные об одном средстве индивидуальной защиты (рисунок 3.4), либо сводная таблица со всеми хранящимися СИЗ на складе ЭЧ-9(рисунок 3.5).
В листинге 4 отражен код осуществления этой функции:protected void Button7_Click(object sender, EventArgs e){if (numb.Text.Length != 0){SqlDataAdapter dad = new SqlDataAdapter("select СИЗ.Siz AS Наименование,СИЗ.NumbSiz AS \'Номенклатурный номер\', СИЗ.EI AS 'Единицы измерения', Склад.NumbOst AS'Кол-во на складе'from СИЗ INNER JOIN Склад on СИЗ.ID_siz = Склад.ID_siz Where NumbSiz='"+ numb.Text + "'", c);DataSet ds = new DataSet();dad.Fill(ds);GridView1.DataSource = ds;GridView1.DataBind();numb.Text = string.Empty;}else{SqlDataAdapter dad = new SqlDataAdapter("select СИЗ.Siz AS Наименование,СИЗ.NumbSiz AS \'Номенклатурный номер\', СИЗ.EI AS 'Единицы измерения', Склад.NumbOst AS'Кол-во на складе'from СИЗ INNER JOIN Склад on СИЗ.ID_siz = Склад.ID_siz ", c);DataSet ds = new DataSet();dad.Fill(ds);GridView1.DataSource = ds;GridView1.DataBind();numb.Text = string.Empty;}}Листинг 4 – Вывод остаков СИЗ на складе32Рисунок 3.5 – Просмотр остатков СИЗ на складе3.1.3 Просмотр заявок-спецификаций на СИЗ по ЭЧ-9Для пользователя «Начальник технического отдела» организованафункция рассмотрения и одобрения заявок-спецификаций на СИЗ (рисунок 3.6).Рисунок 3.6 – Просмотр и одобрение заявок-спецификацийПри нажатии на кнопку «Одобрить заявки», происходит событие, которое отображает на данной веб-странице таблицу данных с имеющимися неодобренными заявками (листинг 5).SqlDataAdapter dad = new SqlDataAdapter("select СИЗ.Siz AS Наименование, Заявка.Kolvo AS'Количество' , СИЗ.EI AS 'Единицы измерения', Заявка.DataZ AS 'Дата заявки' , Заявка.Author33AS 'Автор заявки' from СИЗ inner join Заявка on СИЗ.ID_siz=Заявка.ID_siz WHERE Заявка.Acc='Не одобрено' ", c);DataSet ds = new DataSet();dad.Fill(ds);GridView1.DataSource = ds;GridView1.DataBind();Листинг 5 – Вывод неодобренных заявокПользователь может одобрить заявку и нажать кнопку «Подтвердить»,далее происходит событие exp_Click, при котором, в соответствие с тем, какуюзаявку пользователь одобрил, обновляется данные в таблице «Заявки» базыданных «DBase» с помощью sql-оператора update (листинг 6).foreach (GridViewRow row in GridView1.Rows){if (((CheckBox)row.Cells[0].FindControl("CheckBox1")).Checked){int a = Convert.ToInt32(row.Cells[2].Text);String s = row.Cells[1].Text;SqlDataAdapter up = new SqlDataAdapter("update Заявка Set Acc='Одобрено' where ID_siz='"+ gr.Rows[0]["ID_siz"].ToString() + "' and Author='" + row.Cells[5].Text + "' and DataZ='" +Convert.ToDateTime(row.Cells[4].Text) + "' ", c);DataSet upd = new DataSet();up.Fill(upd);}}Листинг 6 – Обновление записей в базе данных3.2 Добавление данныхВставка новой записи в таблицы баз данных сводится к форматированию SQL-оператора Insert (в зависимости от введенных пользователем данных)и вызову метода ExecuteNonQuery() с помощью объекта команды.3.2.1 Создание личной карточки сотрудникаДалее реализовалась функция добавления работников дистанции энергоснабжения (рисунок 3.7)34Рисунок 3.7 – Создание личной карточкиСодержимое данной веб-страницы состоит из следующих элементовуправления: asp:textbox, asp:button, asp:RadioButton, asp:DropDownList.
Они используются для введения пользователем необходимой информации о работнике. Элемент asp:DropDownList предоставляет пользователю список профессий,определенных в базе данных DBase (листинг 7). <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"DataSourceID="SqlDataSource1"DataTextField = "Proff"DataValueField = "ID_proff"onselectedindexchanged="DropDownList1_SelectedIndexChanged" ></asp:DropDownList><asp:SqlDataSource ID="SqlDataSource1" runat="server"ConnectionString="<%$ ConnectionStrings:DBaseConnectionString1 %>"SelectCommand="SELECT * FROM [Профессии]"></asp:SqlDataSource><br />Листинг 7 – Заполнение выпадающего списка из базы данныхПри нажатии на кнопку «Добавить», программа проверяет наполненность элементов страницы информацией, в противном случае, подсвечиваетсятекст напротив пустого поля, и выполнение программы не продолжится до тогомомента, пока пользователь не введет нужную информацию (листинг 8).bool flag = true;if (TextBoxFIO.Text == ""){Label1.ForeColor = Color.Red;flag = false;}elseLabel1.ForeColor = Color.Black;Листинг 8 – Проверка на отсутствие пустых полей35После заполнения всех необходимых полей, начинается та часть программы, которая добавляет запись в нужную таблицу базы данных (листинг 9).if (flag)try{{c.Open();SqlCommandcm=newSqlCommand(@"insertintoРаботники(FIO, NFIO, ID_proff, Pol, Height, SClose, SShoes, SHead, SPr, SHand) Values (@FIO, @NFIO,@ID_proff, @Pol, @Height, @SClose, @SShoes, @SHead, @SPr, @SHand)", c);cm.Parameters.AddWithValue("@FIO", TextBoxFIO.Text);cm.Parameters.AddWithValue("@NFIO", NFIO.Text);cm.Parameters.AddWithValue("@ID_proff",Convert.ToInt32(DropDownList1.SelectedValue));if (option1.Checked == true){cm.Parameters.AddWithValue("@Pol", option1.Text);}else{cm.Parameters.AddWithValue("@Pol", option2.Text);}cm.Parameters.AddWithValue("@Height", Convert.ToInt16(TextBoxHe.Text));cm.Parameters.AddWithValue("@SClose", Convert.ToInt16(TextBoxClo.Text));сm.Parameters.AddWithValue("@SShoes", Convert.ToInt16(TextBoxSho.Text));cm.Parameters.AddWithValue("@SHead", Convert.ToInt16(TextBoxHea.Text));сm.Parameters.AddWithValue("@SPr", Convert.ToInt16(TextBoxSPr.Text));cm.Parameters.AddWithValue("@SHand", Convert.ToInt16(TextBoxHan.Text));сm.ExecuteNonQuery();c.Close();LblDobav.Text = "Успешно добавлено";}catch{LblDobav.Text = "Возникла ошибка";}}Листинг 9 – Добавление записей в базу данных3.2.2 Поступление СИЗ на складПри переходе на веб-страницу SKK.aspx (рисунок 3.8), для пользователяоткрывается окно с элементами управления: asp:textbox, asp:button.Рисунок 3.8 – Веб-страница «Склад ЭЧ-9»36При нажатии на кнопку «Добавление СИЗ» открывается страницаDobSK.aspx (рисунок 3.9).Рисунок 3.9 – Поступление СИЗ на складЛогика данного процесса выполняется с помощью SQL-запроса, отраженного в листинге 10.c.Open();SqlCommandcm=newSqlCommand(@"insertintoСклад(ID_siz,NumbOst,DateP)Values(@ID_siz, @NumbOst, @DateP)", c);cm.Parameters.AddWithValue("@ID_siz", Convert.ToInt32(DropDownList1.SelectedValue));cm.Parameters.AddWithValue("@NumbOst", NOst.Text);cm.Parameters.AddWithValue("@DateP", Convert.ToDateTime(Calendar1.SelectedDate));Листинг 10 – Вставка записей в базу данных3.3 Списание средствSqlDataSource предоставляет возможность изменения данных, содержащихся в источниках данных.
Для того чтобы воспользоваться этой возможностью, необходимо определить соответствующие запросы, выполняющие операции вставки, обновления или удаления записей. Все они создаются по аналогиис запросом Select на основе параметризованного запроса [3].373.3.1 Списание СИЗ со склада ЭЧ-9При нажатии на кнопку «Списание СИЗ» открывается веб-страницаSpSKK.aspx (рисунок 3.10).