private void btnAdd_Click(object sender, EventArgs e) { //Создаём новый объект класса "Дисциплина" clsSubject Sub = new clsSubject(); //Код назначаем на единицу больше, чем количество //элементов в коллекции Sub.Code = mdlData.colSubject.Count + 1; //Формируем задел названия для новой дисциплины Sub.Subject = "Новая дисциплина"; //Формируем задел короткого названия для новой дисциплины Sub.SubjectShort = "Нов.дис."; //Формируем задел пожелания Sub.Preferences = "Аудитории "; //Добавляем объект в коллекцию mdlData.colSubject.Add(Sub); //Заносим объект в список cmbSubjectList.Items.Add(mdlData.colSubject[mdlData.colSubject.Count - 1].Code + ". " + mdlData.colSubject[mdlData.colSubject.Count - 1].Subject); //Переходим к новому элементу списка cmbSubjectList.SelectedIndex = cmbSubjectList.Items.Count - 1; }
/// <summary> /// Процедура инициализации текущего элемента класса "Расписание_преподавателей" /// </summary> /// <param name="Tab">Образ таблицы базы данных</param> /// <param name="id">Идентификатор текущего элемента</param> public void Initialize(DataTable Tab, int id) { int GetCode; string CurrentString; bool Detected; //Код //this.Code = Convert.ToInt32(Tab.Rows[id]["ID"].ToString()); this.Code = id + 1; //Преподаватель GetCode = 0; Detected = false; CurrentString = Tab.Rows[id]["Преподаватель"].ToString(); for (int i = 0; i <= mdlData.colLecturer.Count - 1; i++) { if (mdlData.colLecturer[i].FIO == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Lecturer = mdlData.colLecturer[GetCode]; } else { this.Lecturer = null; MessageBox.Show("Не удалось определить преподавателя у элемента с кодом " + this.Code, "Оповещение"); } //Неделя GetCode = 0; Detected = false; CurrentString = Tab.Rows[id]["Неделя"].ToString(); for (int i = 0; i <= mdlData.colWeek.Count - 1; i++) { if (mdlData.colWeek[i].NumberWeek == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Week = mdlData.colWeek[GetCode]; } else { this.Week = null; MessageBox.Show("Не удалось определить неделю у элемента с кодом " + this.Code, "Оповещение"); } //День недели GetCode = 0; Detected = false; CurrentString = Tab.Rows[id]["День недели"].ToString(); for (int i = 0; i <= mdlData.colWeekDays.Count - 1; i++) { if (mdlData.colWeekDays[i].WeekDay == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.WeekDay = mdlData.colWeekDays[GetCode]; } else { this.WeekDay = null; MessageBox.Show("Не удалось определить день недели у элемента с кодом " + this.Code, "Оповещение"); } //Время занятий GetCode = 0; Detected = false; CurrentString = Tab.Rows[id]["Время занятия"].ToString(); for (int i = 0; i <= mdlData.colPairTime.Count - 1; i++) { if (mdlData.colPairTime[i].Time == CurrentString) { GetCode = i; Detected = true; } } //Заглушка потом можно будет убрать if (!Detected) { switch (CurrentString) { case "8.00-9.30": { GetCode = 0; Detected = true; break; } case "9.40-11.10": { GetCode = 1; Detected = true; break; } case "11.20-12.50": { GetCode = 2; Detected = true; break; } case "13.20-14.50": { GetCode = 3; Detected = true; break; } case "15.00-16.30": { GetCode = 4; Detected = true; break; } case "16.40-18.10": { GetCode = 5; Detected = true; break; } case "18.20-19.50": { GetCode = 6; Detected = true; break; } case "20.00-21.30": { GetCode = 7; Detected = true; break; } } } if (Detected) { this.Time = mdlData.colPairTime[GetCode]; } else { this.Time = null; MessageBox.Show("Не удалось определить время занятия у элемента с кодом " + this.Code, "Оповещение"); } //Занят? this.Subj = Convert.ToBoolean(Tab.Rows[id]["Занят"].ToString()); //Аудитория this.Auditory = Tab.Rows[id]["Аудитория"].ToString(); //Дисциплина GetCode = 0; Detected = false; CurrentString = Tab.Rows[id]["Дисциплина"].ToString(); for (int i = 0; i <= mdlData.colSubject.Count - 1; i++) { if (mdlData.colSubject[i].Subject == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Subject = mdlData.colSubject[GetCode]; } else { this.Subject = null; } //Тип занятия GetCode = 0; Detected = false; CurrentString = Tab.Rows[id]["Тип_Занятия"].ToString(); for (int i = 0; i <= mdlData.colSubjectType.Count - 1; i++) { if (mdlData.colSubjectType[i].Type == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.SubjectType = mdlData.colSubjectType[GetCode]; } else { this.SubjectType = null; } //Специальность GetCode = 0; Detected = false; CurrentString = Tab.Rows[id]["Специальность"].ToString(); for (int i = 0; i <= mdlData.colSpecialisation.Count - 1; i++) { if (mdlData.colSpecialisation[i].ShortDop == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Spec = mdlData.colSpecialisation[GetCode]; } else { this.Spec = null; } //Номер курса GetCode = 0; Detected = false; CurrentString = Tab.Rows[id]["Курс"].ToString(); for (int i = 0; i <= mdlData.colKursNum.Count - 1; i++) { if (mdlData.colKursNum[i].Kurs.ToString() == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.KursNum = mdlData.colKursNum[GetCode]; } else { this.KursNum = null; } //Семестр GetCode = 0; Detected = false; CurrentString = Tab.Rows[id]["Семестр"].ToString(); for (int i = 0; i <= mdlData.colSemestr.Count - 1; i++) { if (mdlData.colSemestr[i].SemNum.ToString() == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Semestr = mdlData.colSemestr[GetCode]; } else { this.Semestr = null; } //Группа this.Group = Tab.Rows[id]["Группа"].ToString(); //Поток this.Stream = Tab.Rows[id]["Поток"].ToString(); }
/// <summary> /// Процедура инициализации текущего элемента класса "Распределение нагрузки" /// </summary> /// <param name="Tab">Образ таблицы базы данных</param> /// <param name="id">Идентификатор текущего элемента</param> public void Initialize(DataTable Tab, int id) { int GetCode; string CurrentString; bool Detected; bool Even; //Код this.Code = Convert.ToInt32(Tab.Rows[id]["Код"].ToString()); //Семестр GetCode = 0; Detected = false; for (int i = 0; i <= mdlData.colSemestr.Count - 1; i++) { CurrentString = Tab.Rows[id]["Семестр"].ToString(); if (mdlData.colSemestr[i].SemNum == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Semestr = mdlData.colSemestr[GetCode]; } else { this.Semestr = null; //MessageBox.Show("Не удалось определить семестр у элемента с кодом " + this.Code, "Оповещение"); } //Специальность GetCode = 0; Detected = false; Even = false; for (int i = 0; i <= mdlData.colSpecialisation.Count - 1; i++) { CurrentString = Tab.Rows[id]["Специальность"].ToString(); if (!mdlData.flgOldDB) { if (CurrentString.StartsWith("В-")) { CurrentString = CurrentString.Substring(2); Even = true; } if (mdlData.colSpecialisation[i].ShortDop == CurrentString) { //Если с вечернего факультета if (Even) { if (mdlData.colSpecialisation[i].Faculty != null) { if (mdlData.colSpecialisation[i].Faculty.Short.Equals("ВФ")) { GetCode = i; Detected = true; break; } } } //Если с дневного else { GetCode = i; Detected = true; break; } } } else { if (mdlData.colSpecialisation[i].ShortUpravlenie == CurrentString) { GetCode = i; Detected = true; break; } } } if (Detected) { this.Speciality = mdlData.colSpecialisation[GetCode]; } else { this.Speciality = null; } //Курс GetCode = 0; Detected = false; for (int i = 0; i <= mdlData.colKursNum.Count - 1; i++) { CurrentString = Tab.Rows[id]["Курс"].ToString(); if (mdlData.colKursNum[i].Kurs.ToString() == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.KursNum = mdlData.colKursNum[GetCode]; } else { this.KursNum = null; } //Название учебной дисциплины GetCode = 0; Detected = false; for (int i = 0; i <= mdlData.colSubject.Count - 1; i++) { CurrentString = Tab.Rows[id]["Название_дисциплины"].ToString(); if (mdlData.colSubject[i].Subject == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Subject = mdlData.colSubject[GetCode]; } else { this.Subject = null; } //Преподаватель GetCode = 0; Detected = false; for (int i = 0; i <= mdlData.colLecturer.Count - 1; i++) { CurrentString = Tab.Rows[id]["Преподаватель"].ToString(); if (mdlData.colLecturer[i].FIO == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Lecturer = mdlData.colLecturer[GetCode]; } else { this.Lecturer = null; } //Преподаватель2 GetCode = 0; Detected = false; for (int i = 0; i <= mdlData.colLecturer.Count - 1; i++) { CurrentString = Tab.Rows[id]["Преподаватель2"].ToString(); if (mdlData.colLecturer[i].FIO == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Lecturer2 = mdlData.colLecturer[GetCode]; } else { this.Lecturer2 = null; } //Преподаватель3 GetCode = 0; Detected = false; for (int i = 0; i <= mdlData.colLecturer.Count - 1; i++) { CurrentString = Tab.Rows[id]["Преподаватель3"].ToString(); if (mdlData.colLecturer[i].FIO == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Lecturer3 = mdlData.colLecturer[GetCode]; } else { this.Lecturer3 = null; } //Дублёр GetCode = 0; Detected = false; for (int i = 0; i <= mdlData.colLecturer.Count - 1; i++) { CurrentString = Tab.Rows[id]["Дублёр"].ToString(); if (mdlData.colLecturer[i].FIO == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Doubler = mdlData.colLecturer[GetCode]; } else { this.Doubler = null; } this.Text = Tab.Rows[id]["Для_диспетчерской"].ToString(); //Необходимость подачи нагрузки в диспетчерскую if (Tab.Rows[id]["В_ведом_дисп"].ToString() == "False") { this.flgDispatch = false; } else { this.flgDispatch = true; } //Равномерная распределяемость if (Tab.Rows[id]["Распределяемая"].ToString() == "False") { this.flgDistrib = false; } else { this.flgDistrib = true; } //Вес единицы if (!(Tab.Rows[id]["Вес_единицы"] is DBNull)) { this.Weight = Convert.ToInt32(Tab.Rows[id]["Вес_единицы"].ToString()); } else { this.Weight = 0; } //Признак исключения из расчёта нагрузки if (Tab.Rows[id]["Исключить"].ToString() == "False") { this.flgExclude = false; } else { this.flgExclude = true; } }
/// <summary> /// Метод копирования в рассматриваемый элемент информации от внешнего элемента /// </summary> /// <param name="Input">Внешний элемент</param> /// <param name="flgHours">Флаг сохранения часов нагрузки true - сохранить, false - стереть</param> public void CopyFrom(clsDistribution Input, bool flgHours) { Code = Input.Code; Semestr = Input.Semestr; Speciality = Input.Speciality; KursNum = Input.KursNum; Subject = Input.Subject; Lecturer = Input.Lecturer; Lecturer2 = Input.Lecturer2; Lecturer3 = Input.Lecturer3; Doubler = Input.Doubler; if (flgHours) { Lecture = Input.Lecture; Exam = Input.Exam; Credit = Input.Credit; RefHomeWork = Input.RefHomeWork; Tutorial = Input.Tutorial; LabWork = Input.LabWork; Practice = Input.Practice; IndividualWork = Input.IndividualWork; KRAPK = Input.KRAPK; KursProject = Input.KursProject; PreDiplomaPractice = Input.PreDiplomaPractice; DiplomaPaper = Input.DiplomaPaper; TutorialPractice = Input.TutorialPractice; ProducingPractice = Input.ProducingPractice; PostGrad = Input.PostGrad; GAK = Input.GAK; Hours = Input.Hours; HoursZ = Input.HoursZ; EnteredHours = Input.EnteredHours; EnteredHoursZ = Input.EnteredHoursZ; Visiting = Input.Visiting; Magistry = Input.Magistry; } else { Lecture = 0; Exam = 0; Credit = 0; RefHomeWork = 0; Tutorial = 0; LabWork = 0; Practice = 0; IndividualWork = 0; KRAPK = 0; KursProject = 0; PreDiplomaPractice = 0; DiplomaPaper = 0; TutorialPractice = 0; ProducingPractice = 0; PostGrad = 0; GAK = 0; Hours = 0; HoursZ = 0; EnteredHours = 0; EnteredHoursZ = 0; Visiting = 0; Magistry = 0; } Text = Input.Text; flgDispatch = Input.flgDispatch; LabWorkConnect = Input.LabWorkConnect; flgDistrib = Input.flgDistrib; Weight = Input.Weight; flgExclude = Input.flgExclude; DocCode = Input.DocCode; HouredConnect = Input.HouredConnect; }
/// <summary> /// Процедура инициализации текущего элемента класса "Распределение нагрузки" /// </summary> /// <param name="Tab">Образ таблицы базы данных</param> /// <param name="id">Идентификатор текущего элемента</param> public void Initialize(DataTable Tab, int id) { int GetCode; string CurrentString; bool Detected; bool Even; //Код this.Code = Convert.ToInt32(Tab.Rows[id]["Код"].ToString()); //Семестр GetCode = 0; Detected = false; for (int i = 0; i <= mdlData.colSemestr.Count - 1; i++) { CurrentString = Tab.Rows[id]["Семестр"].ToString(); if (mdlData.colSemestr[i].SemNum == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Semestr = mdlData.colSemestr[GetCode]; } else { this.Semestr = null; //MessageBox.Show("Не удалось определить семестр у элемента с кодом " + this.Code, "Оповещение"); } //Специальность GetCode = 0; Detected = false; Even = false; for (int i = 0; i <= mdlData.colSpecialisation.Count - 1; i++) { CurrentString = Tab.Rows[id]["Специальность"].ToString(); if (!mdlData.flgOldDB) { if (CurrentString.StartsWith("В-")) { CurrentString = CurrentString.Substring(2); Even = true; } if (mdlData.colSpecialisation[i].ShortDop == CurrentString) { //Если с вечернего факультета if (Even) { if (mdlData.colSpecialisation[i].Faculty != null) { if (mdlData.colSpecialisation[i].Faculty.Short.Equals("ВФ")) { GetCode = i; Detected = true; break; } } } //Если с дневного else { GetCode = i; Detected = true; break; } } } else { if (mdlData.colSpecialisation[i].ShortUpravlenie == CurrentString) { GetCode = i; Detected = true; break; } } } if (Detected) { this.Speciality = mdlData.colSpecialisation[GetCode]; } else { this.Speciality = null; } //Курс GetCode = 0; Detected = false; for (int i = 0; i <= mdlData.colKursNum.Count - 1; i++) { CurrentString = Tab.Rows[id]["Курс"].ToString(); if (mdlData.colKursNum[i].Kurs.ToString() == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.KursNum = mdlData.colKursNum[GetCode]; } else { this.KursNum = null; } //Название учебной дисциплины GetCode = 0; Detected = false; for (int i = 0; i <= mdlData.colSubject.Count - 1; i++) { CurrentString = Tab.Rows[id]["Название_дисциплины"].ToString(); if (mdlData.colSubject[i].Subject == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Subject = mdlData.colSubject[GetCode]; } else { this.Subject = null; } //Преподаватель GetCode = 0; Detected = false; for (int i = 0; i <= mdlData.colLecturer.Count - 1; i++) { CurrentString = Tab.Rows[id]["Преподаватель"].ToString(); if (mdlData.colLecturer[i].FIO == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Lecturer = mdlData.colLecturer[GetCode]; } else { this.Lecturer = null; } //Преподаватель2 GetCode = 0; Detected = false; for (int i = 0; i <= mdlData.colLecturer.Count - 1; i++) { CurrentString = Tab.Rows[id]["Преподаватель2"].ToString(); if (mdlData.colLecturer[i].FIO == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Lecturer2 = mdlData.colLecturer[GetCode]; } else { this.Lecturer2 = null; } //Преподаватель3 GetCode = 0; Detected = false; for (int i = 0; i <= mdlData.colLecturer.Count - 1; i++) { CurrentString = Tab.Rows[id]["Преподаватель3"].ToString(); if (mdlData.colLecturer[i].FIO == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Lecturer3 = mdlData.colLecturer[GetCode]; } else { this.Lecturer3 = null; } //Дублёр GetCode = 0; Detected = false; for (int i = 0; i <= mdlData.colLecturer.Count - 1; i++) { CurrentString = Tab.Rows[id]["Дублёр"].ToString(); if (mdlData.colLecturer[i].FIO == CurrentString) { GetCode = i; Detected = true; } } if (Detected) { this.Doubler = mdlData.colLecturer[GetCode]; } else { this.Doubler = null; } //Лекции в часах if (!(Tab.Rows[id]["Лекция"] is DBNull)) { this.Lecture = Convert.ToInt32(Tab.Rows[id]["Лекция"].ToString()); } else { this.Lecture = 0; } //Экзамен в часах if (!(Tab.Rows[id]["Экзамен"] is DBNull)) { this.Exam = Convert.ToInt32(Tab.Rows[id]["Экзамен"].ToString()); } else { this.Exam = 0; } //Зачёт в часах if (!(Tab.Rows[id]["Зачёт"] is DBNull)) { this.Credit = Convert.ToInt32(Tab.Rows[id]["Зачёт"].ToString()); } else { this.Credit = 0; } //Рефераты и домашние задания в часах if (!(Tab.Rows[id]["Рефераты, домашние задания"] is DBNull)) { this.RefHomeWork = Convert.ToInt32(Tab.Rows[id]["Рефераты, домашние задания"].ToString()); } else { this.RefHomeWork = 0; } //Консультация в часах if (!(Tab.Rows[id]["Консультация"] is DBNull)) { this.Tutorial = Convert.ToInt32(Tab.Rows[id]["Консультация"].ToString()); } else { this.Tutorial = 0; } //Лабораторные работы в часах if (!(Tab.Rows[id]["Лаб_раб"] is DBNull)) { this.LabWork = Convert.ToInt32(Tab.Rows[id]["Лаб_раб"].ToString()); } else { this.LabWork = 0; } //Практические занятия в часах if (!(Tab.Rows[id]["Практ_зан"] is DBNull)) { this.Practice = Convert.ToInt32(Tab.Rows[id]["Практ_зан"].ToString()); } else { this.Practice = 0; } //Индивидуальное занятие в часах if (!(Tab.Rows[id]["Индив_зан"] is DBNull)) { this.IndividualWork = Convert.ToInt32(Tab.Rows[id]["Индив_зан"].ToString()); } else { this.IndividualWork = 0; } //КРАПК в часах if (!(Tab.Rows[id]["КРАПК"] is DBNull)) { this.KRAPK = Convert.ToInt32(Tab.Rows[id]["КРАПК"].ToString()); } else { this.KRAPK = 0; } //Курсовой проект в часах if (!(Tab.Rows[id]["Курс_пр"] is DBNull)) { this.KursProject = Convert.ToInt32(Tab.Rows[id]["Курс_пр"].ToString()); } else { this.KursProject = 0; } //Преддипломная практика в часах if (!(Tab.Rows[id]["Предд_пр"] is DBNull)) { this.PreDiplomaPractice = Convert.ToInt32(Tab.Rows[id]["Предд_пр"].ToString()); } else { this.PreDiplomaPractice = 0; } //Дипломный проект в часах if (!(Tab.Rows[id]["Дипл_пр"] is DBNull)) { this.DiplomaPaper = Convert.ToInt32(Tab.Rows[id]["Дипл_пр"].ToString()); } else { this.DiplomaPaper = 0; } //Учебная практика в часах if (!(Tab.Rows[id]["Учебн_пр"] is DBNull)) { this.TutorialPractice = Convert.ToInt32(Tab.Rows[id]["Учебн_пр"].ToString()); } else { this.TutorialPractice = 0; } //Производственная практика в часах if (!(Tab.Rows[id]["Произв_пр"] is DBNull)) { this.ProducingPractice = Convert.ToInt32(Tab.Rows[id]["Произв_пр"].ToString()); } else { this.ProducingPractice = 0; } //Аспирантура в часах if (!(Tab.Rows[id]["Аспирантура"] is DBNull)) { this.PostGrad = Convert.ToInt32(Tab.Rows[id]["Аспирантура"].ToString()); } else { this.PostGrad = 0; } //ГАК в часах if (!(Tab.Rows[id]["ГАК"] is DBNull)) { this.GAK = Convert.ToInt32(Tab.Rows[id]["ГАК"].ToString()); } else { this.GAK = 0; } //Часы if (!(Tab.Rows[id]["Часы"] is DBNull)) { this.Hours = Convert.ToInt32(Tab.Rows[id]["Часы"].ToString()); } else { this.Hours = 0; } //Часы по ЗЕТ if (!(Tab.Rows[id]["Часы_ЗЕТ"] is DBNull)) { this.HoursZ = Convert.ToSingle(Tab.Rows[id]["Часы_ЗЕТ"].ToString()); } else { this.HoursZ = 0; } //Часы дано if (!(Tab.Rows[id]["Часы_Дано"] is DBNull)) { this.EnteredHours = Convert.ToInt32(Tab.Rows[id]["Часы_Дано"].ToString()); } else { this.EnteredHours = 0; } //Часы дано по ЗЕТ if (!(Tab.Rows[id]["Часы_Дано_ЗЕТ"] is DBNull)) { this.EnteredHoursZ = Convert.ToSingle(Tab.Rows[id]["Часы_Дано_ЗЕТ"].ToString()); } else { this.EnteredHoursZ = 0; } //Часы на посещение занятий if (!(Tab.Rows[id]["Посещ_зан"] is DBNull)) { this.Visiting = Convert.ToInt32(Tab.Rows[id]["Посещ_зан"].ToString()); } else { this.Visiting = 0; } this.Text = Tab.Rows[id]["Для_диспетчерской"].ToString(); //Часы на руководство магистрами if (!(Tab.Rows[id]["Магистратура"] is DBNull)) { this.Magistry = Convert.ToInt32(Tab.Rows[id]["Магистратура"].ToString()); } else { this.Magistry = 0; } //Необходимость подачи нагрузки в диспетчерскую if (Tab.Rows[id]["В_ведом_дисп"].ToString() == "False") { this.flgDispatch = false; } else { this.flgDispatch = true; } //Равномерная распределяемость if (Tab.Rows[id]["Распределяемая"].ToString() == "False") { this.flgDistrib = false; } else { this.flgDistrib = true; } //Вес единицы if (!(Tab.Rows[id]["Вес_единицы"] is DBNull)) { this.Weight = Convert.ToInt32(Tab.Rows[id]["Вес_единицы"].ToString()); } else { this.Weight = 0; } //Признак исключения из расчёта нагрузки if (Tab.Rows[id]["Исключить"].ToString() == "False") { this.flgExclude = false; } else { this.flgExclude = true; } //Код дисциплины по документу if (!(Tab.Rows[id]["КодДок"] is DBNull)) { this.DocCode = Convert.ToInt32(Tab.Rows[id]["КодДок"].ToString()); } else { this.DocCode = 9999; } }