КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Файл editrow.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.Configuration; //для чтения из файла Web.Config using System.Data; //Содержит объект DataSet using MySql.Data; //Для работы с БД MySQL using MySql.Data.MySqlClient; using System.Drawing;
namespace WebApplication3 { public partial class WebForm2: System.Web.UI.Page { String CurIDGr; String CurIDGrRow; String CurIDGRH; int CurDay; String CurVal; MySqlDataAdapter GrafikDA, GrafikDA2; DataSet GrafikDS; MySqlConnection conn;
protected void Page_Load(object sender, EventArgs e) { Label1.Visible = false; SqlDataSource1.ConnectionString = WebConfigurationManager.ConnectionStrings["GrafikiDBCon"].ConnectionString;
//считываем значения IDGr и IDGrRow из параметров URL веб-страницы CurIDGrRow = Request.QueryString["idgr"]; //Из БД считываем значения графика conn = new MySqlConnection(WebConfigurationManager.ConnectionStrings["GrafikiDBCon"].ConnectionString); conn.Open(); GrafikDS = new DataSet(); //считываем данные ряда графика String sql = "SELECT grafikrows.IDGrRow, grafikrows.IDGraf, grafikrows.GrafPos, grafikrows.Smena, grafikrows.IDPerson," + " person.LastName, person.FirstName, person.FatherName, person.Tabnom FROM grafikrows LEFT OUTER JOIN person" + " ON grafikrows.IDPerson = person.IDPerson WHERE grafikrows.IDGrRow=" + CurIDGrRow; GrafikDA2 = new MySqlDataAdapter(sql, conn); GrafikDA2.Fill(GrafikDS, "grafikrows"); if (GrafikDS.Tables["grafikrows"].Rows.Count > 0) { CurIDGr = GrafikDS.Tables["grafikrows"].Rows[0]["IDGraf"].ToString(); //№ строки в графике Table2.Rows[0].Cells[1].Text = GrafikDS.Tables["grafikrows"].Rows[0]["GrafPos"].ToString(); //смена Table2.Rows[1].Cells[1].Text = GrafikDS.Tables["grafikrows"].Rows[0]["Smena"].ToString(); //должность if (Convert.ToInt32(GrafikDS.Tables["grafikrows"].Rows[0]["GrafPos"]) % 2 == 1) Table2.Rows[2].Cells[1].Text = "маш-ст"; else Table2.Rows[2].Cells[1].Text = "п/м";
if (GrafikDS.Tables["grafikrows"].Rows[0]["IDPerson"].ToString()!="") { //ФИО (таб. №) Table2.Rows[3].Cells[1].Text = GrafikDS.Tables["grafikrows"].Rows[0]["Lastname"].ToString() + " " + GrafikDS.Tables["grafikrows"].Rows[0]["Firstname"].ToString().Substring(0, 1) + "." + GrafikDS.Tables["grafikrows"].Rows[0]["FatherName"].ToString().Substring(0, 1) + ". (" + GrafikDS.Tables["grafikrows"].Rows[0]["Tabnom"].ToString() + ")"; } }
//считываем данные графика sql = "SELECT * FROM grafik LEFT OUTER JOIN vidwork ON grafik.IDVidWork = vidwork.IDVidWork" + " LEFT OUTER JOIN months ON grafik.GrMonth = months.MonthNum LEFT OUTER JOIN lokomotiv" + " ON grafik.IDLokomotiv = lokomotiv.LokID WHERE grafik.IDGr=" + CurIDGr; GrafikDA = new MySqlDataAdapter(sql, conn); GrafikDA.Fill(GrafikDS, "grafik"); if (GrafikDS.Tables["grafik"].Rows.Count > 0) { //ID Table1.Rows[0].Cells[1].Text = CurIDGr; //год Table1.Rows[1].Cells[1].Text = GrafikDS.Tables["grafik"].Rows[0]["GrYear"].ToString(); //месяц Table1.Rows[2].Cells[1].Text = GrafikDS.Tables["grafik"].Rows[0]["MonthNameRu"].ToString(); //вид работ Table1.Rows[3].Cells[1].Text = GrafikDS.Tables["grafik"].Rows[0]["NameVidWork"].ToString(); //локомотив Table1.Rows[4].Cells[1].Text = GrafikDS.Tables["grafik"].Rows[0]["FullName"].ToString(); //начало работы Table1.Rows[5].Cells[1].Text = GrafikDS.Tables["grafik"].Rows[0]["BeginWork"].ToString(); }
//Определяем количество дней в выбранном месяце Int32 n = 0; try { n = DateTime.DaysInMonth(Convert.ToInt32(GrafikDS.Tables["grafik"].Rows[0]["GrYear"]), Convert.ToInt32(GrafikDS.Tables["grafik"].Rows[0]["GrMonth"])); //количество дней в выбранном месяце } catch { Label1.Text = "Ошибка при вычислении количества дней в месяце"; Label1.Visible = false; //return; }
//Заполняем таблицу Table3 с данными за месяц Table3.Rows.Clear(); //считываем часовые данные ряда графика sql = "SELECT * FROM grafikhours WHERE IDGrRow=" + GrafikDS.Tables["grafikrows"].Rows[0]["IDGrRow"].ToString() + " ORDER BY DayOfMonth"; GrafikDA = new MySqlDataAdapter(sql, conn); GrafikDA.Fill(GrafikDS, "grafikhours"); TableRow rowNew1, rowNew2; TableCell celNew; TextBox txtBox; String str1; float Value; int k = 0;
//Два ряда создаем rowNew1 = new TableRow(); //для номеров дней rowNew2 = new TableRow(); //для значений часов работы
for (int i = 0; i < n; i++) //для каждого числа месяца { // верхний ряд - день месяца celNew = new TableCell(); celNew.Text = Convert.ToString(i + 1); celNew.HorizontalAlign = HorizontalAlign.Center; rowNew1.Cells.Add(celNew);
// нижний ряд - значение celNew = new TableCell(); if (GrafikDS.Tables["grafikhours"].Rows.Count == 0) { // в БД для данной строки графика данных нет, потому ставим пустую строку str1 = ""; } else { //в БД есть значение для этого дня if ((i+1)!= Convert.ToInt32(GrafikDS.Tables["grafikhours"].Rows[k]["DayOfMonth"].ToString())) { //в БД нет данных по этому дню str1 = ""; } else { //в БД есть данные по дням. Пытаемся найти в таблице БД значение для j-го дня str1 = GrafikDS.Tables["grafikhours"].Rows[k]["GrVal"].ToString(); //проверка введенного значения на соответсвие формату if (str1!= "Х") { if (float.TryParse(GrafikDS.Tables["grafikhours"].Rows[k]["GrVal"].ToString().Replace("/н", ""), out Value)) { Label1.Visible = false; } else //Присутствует буква. { str1 = ""; Label1.Text = "Значение часов работы не соотвествует формату"; Label1.Visible = true; } } if (k < GrafikDS.Tables["grafikhours"].Rows.Count - 1) k++; } } //добавляем текстовое поле в ячейку со значением отработанных часов txtBox = new TextBox(); txtBox.Text = str1; txtBox.Width = 30; txtBox.BackColor = Color.Cyan; txtBox.ID = "txtBox" + (i+1); txtBox.AutoPostBack = true; txtBox.TextChanged += new System.EventHandler(this.txtBox_TextChanged); //определяем обработчик события celNew.Controls.Add(txtBox); celNew.HorizontalAlign = HorizontalAlign.Center; rowNew2.Cells.Add(celNew); } //добавляем сформированные ряды в таблицу Table3.Rows.Add(rowNew1); Table3.Rows.Add(rowNew2); }
protected void Button3_Click(object sender, EventArgs e) { //Переход на страницу выбора сотрудника Response.Redirect("persget.aspx?idgr=" + CurIDGrRow); }
protected void Button1_Click(object sender, EventArgs e) { //Нажатие кнопки Применить. Сохраняем изменения. Возвращаемся к графику c IDGr=CurIDGr Response.Redirect("grafik.aspx?id=" + CurIDGr); }
protected void txtBox_TextChanged(object sender, EventArgs e) { String sql; //Обработчик изменения значения часов в таблице if ((sender as TextBox).ID.Substring(0, 6) == "txtBox") { //Извлекаем из ID TextBox-а, число, а также берем его значение CurDay = Convert.ToInt32(((sender as TextBox).ID.Substring(6))); CurVal = (sender as TextBox).Text.Trim().ToUpper(); //приводим обозначения к единому формату CurVal = CurVal.Replace("X", "Х"); //замена английской буквы на русскую CurVal = CurVal.Replace("/Н", "/н"); //меняем большую Н на маленькую (sender as TextBox).Text = CurVal; //Проверяем наличие записи в БД try { conn = new MySqlConnection(WebConfigurationManager.ConnectionStrings["GrafikiDBCon"].ConnectionString); conn.Open(); GrafikDS = new DataSet(); //Читаем значение из БД sql = "SELECT * FROM grafikhours WHERE IDGrRow=" + CurIDGrRow + " AND DayOfMonth=" + CurDay; GrafikDA = new MySqlDataAdapter(sql, conn); GrafikDA.Fill(GrafikDS, "grafikhours"); } catch (Exception ex) { Label1.Text = "Ошибка при записи данных в БД. " + ex.ToString(); Label1.Visible = true; conn.Close(); return; }
if (GrafikDS.Tables["grafikhours"].Rows.Count == 0) { //И значение часов не пустое if (CurVal!= "") { //Записи нет, поэтому добавляем ее в БД SqlDataSource1.Insert(); } } else { //Запись есть //новое значение пустое. поэтому удаляем его в БД if (CurVal == "") { CurIDGRH = GrafikDS.Tables["grafikhours"].Rows[0]["IDGRH"].ToString(); SqlDataSource1.Delete(); } else { //новое значение не пустое, поэтому обновляем её в БД CurIDGRH = GrafikDS.Tables["grafikhours"].Rows[0]["IDGRH"].ToString(); SqlDataSource1.Update(); } } } }
protected void SqlDataSource1_Inserting(object sender, SqlDataSourceCommandEventArgs e) { //Перед вызовом запроса на вставку программно меняем значение параметра e.Command.Parameters["IDGrRow"].Value = CurIDGrRow; e.Command.Parameters["DayOfMonth"].Value = CurDay; e.Command.Parameters["GrVal"].Value = CurVal; }
protected void SqlDataSource1_Updating(object sender, SqlDataSourceCommandEventArgs e) { e.Command.Parameters["IDGRH"].Value = CurIDGRH; e.Command.Parameters["GrVal"].Value = CurVal; } } }
Дата добавления: 2015-08-31; Просмотров: 414; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |