КАТЕГОРИИ: Архитектура-(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) |
Файл grafik.aspx.cs
A I Э Ц Ф У Т КР КЛУБ – кассеты регистрации параметров движения локомотивов системы Сход локомотива с кольца - смена локомотива, участвующего в тяге, внутри участка обращения локомотивов. СФТО – система фирменного транспортного обслуживания. На основе бизнес-прогнозов по объемам и видам перевозок и принятых от клиентов заявок на перевозку грузов, СФТО формирует сводный план перевозок. СРС – специализированная рабочая станция. Компьютер в компактном корпусе для работников ОАО РЖД.
ТН – табельный номер ТТС – транзакционные терминалы самообслуживания ТЧЭ – Тяговая часть эксплуатационная (эксплуатационное локомотивное депо) ТЧР – Тяговая часть ремонтная (ремонтное локомотивное депо) ТУ-28 – Журнал ремонта формы ТУ-28 ТУ-124 – Акт о постановке ТПС на консервацию, резерв железной дороги ТУ-152 – Журнал технического состояния локомотива формы ТУ-152 ТУ-173 – Акт явки локомотивной бригады формы ТУ-173 ТУ-174 – Акт предрейсового медосмотра локомотивной бригады формы ТУ-174 ТУ-184 – Акт о постановке локомотива инвентарного парка ОАО РЖД в резерв Дирекции управления движение (РД) ТУ-185 - Акт о выдаче локомотива инвентарного парка ОАО РЖД из резерва Дирекции управления движение (РД) ТЧ – начальник ТЧ ТЧГ – главный инженер ТЧ ТЧПУ – производственный участок ТЧЗЭ – зам.начальника ТЧ по эксплуатации ТЧЗБ – зам.начальника ТЧ по безопасности ТПС – тяговый подвижной состав ТПЕ – тяговая подвижная единица ТСКБМ – Телемеханическая система контроля бодрствования машиниста ТОР – текущий отцепочный ремонт вагона. ТПУ – транспортно-пересадочный узел.
УСАВП-Г - Система автоведения грузовых электровозов постоянного тока УСАВП-ГПТ - Система автоведения грузовых электровозов переменного тока Участок обращения локомотивов - часть железнодорожной сети, ограниченная пунктами оборота локомотивов, выезд локомотива за которые запрещен соответствующими технологическими инструкциями.
ФПК – Федеральная пассажирская компания
ЦОММ – система централизованной обработки маршрута машиниста. ЦУСИ – центры управления содержанием инфраструктуры. ЦЕКОН - Автоматизированная система централизованной подготовки ограничений и нормативов по использованию вагонного и локомотивного парков и организации контроля за их соблюдением. ЦУТР – центр управления тяговыми ресурсами ЦУСИ – центр управления содержанием инфраструктуры
ЭД – электронный документ ЭК – Электронный киоск ЭММ – электронный маршрут машиниста ЭОД – электронный обмен документами. ЭП – электронная подпись ЭТСО – Электронный терминал самообслуживания АС ЭТРАН - Автоматизированная система централизованной подготовки и оформления перевозочных документов. Электронная транспортная накладная.АС централизованной подготовки и оформления перевозочных документов. Основана на принципах использования электронного документооборота при взаимодействии с пользователями услуг железнодорожного транспорта для организации перевозок грузов. Система впервые включает клиента (грузоотправителя, экспедитора) технологический цикл приема заявок и оформления перевозок, обеспечивая ему возможность: оформить заявку на перевозку, подготовть электронную накладную, получить итоговые документы, увидеть результаты расчетов провозной платы по перевозкам, в определенной степени отследить ход перевозок его грузов со своего рабочего места, также клиенту предоставляется возможность получения информации обо всех грузах, отправленных в его адрес. ЭкОЗ – Экспертное определение состояния здоровья машиниста. Программа разработчик ЗАО Нейроком. Электронный паспорт локомотива – автоматизированная система ведения и учета технических паспортов локомотива – их электронных копий. ЭСУП ТПС - ИНФОРМАЦИОННая СИСТЕМа УЧЕТА ПРОСТОЕВ ТЯГОВОГО ПОДВИЖНОГО СОСТАВА. ЭЦ – пост ЭЦ. Пост электрической централизации.
IRIS – Международный стандарт железнодорожной промышленности
Сообщение код 90 - о маневрах локомотивов в депо и на станции. Сообщение 235 – об изменении справочных данных локомотива. Перечень сокращений и терминов АСОУП - автоматизированной системой оперативного управления перевозками АРМ ТЧЗЭ –АРМ Заместителя начальника депо по эксплуатации АСУТ. КИП – Контрольно-инструкторская поездка ОКДБ, ОКДЛ - блок ОКДБ (оперативный контроль дислокации бригад) и ОКДЛ (оперативный контроль дислокации локомотивов) входят в состав АСОУП КПЗ - код пункта зарождения информации. Включает в себя КОС и КСО. КОС - код отправителя сообщения КСО - код пункта совершения операции Сообщения ОКДБ Сообщение 265 – Нарушение режима работы Сообщение 267 – об операциях с бригадой Сообщение 268 – паспортные данные машиниста Сообщение 269 – Данные приказов Сообщение 270 - Журнал нарядов локомотивных бригад Сообщение 333 -? Сообщения ОКДЛ 230 сообщения “Об изменении состояния локомотива” 231 сообщения “Об объединении и разъединении локомотива” 233 сообщения “Об изменении контролируемого парка” 234 сообщения “Корректировка пробегов” 235 сообщения “Об изменении депо приписки локомотива” Сообщения ИОММ 1750 "Сведения о постановке\ выпуске локовотивов в НЭП\из НЭПа" 1751 "Сведения о простое локомотивов в ЭП" ГЭД —готовность к экстренному действию (в условиях интенсивного движения) ПВ —переключение внимания ПУ —помехоустойчивость СТР —стрессоустойчивость ОБМЭ —оценка бдительности машиниста электропоезда (в условиях интенсивного движения) СДР —сложная двигательная реакция ОВ —объём внимания
ABAP/4 (Advanced Buisness application programming 4GL) – язык программирования в SAP R/3.
ПРИЛОЖЕНИЕ 2 ТЕХНИЧЕСКОЕ ЗАДАНИЕ на разработку модуля «Учет графиков труда и отдыха локомотивных бригад эксплуатационного депо» 1 Общие сведения 1.1. Наименование системы Модуль информационной системы «Учет графиков труда и отдыха локомотивных бригад локомотивного депо». 1.2 Наименования Разработчика и Заказчика работ и их реквизиты Разработчик: Кашеварова Анастасия Викторовна Заказчик: БИФ КемГУ(полное название) 1.3 Основание для проведения работ Основанием для проведения работ по созданию модуля ИС "Учета труда и отдыха локомотивных бригад" являются следующие документы: - задание на ВКР (дипломный проект) БИФ КемГУ 1.4 Сроки начала и окончания работ Дата начала работ: 01.04.2015 Дата окончания работ: 15.05.2015 1.5 Порядок оформления и предъявления Заказчику результатов работ Работы по созданию модуля ИС производятся и принимаются поэтапно. 2 Назначение и цели создания системы 2.1. Назначение системы ИС "Учет труда и отдыха локомотивных бригад эксплуатационного локомотивного депо" предназначена для: - автоматизации работ при составлении графиков труда и отдыха локомотивных бригад; - планирования работ по составлению графиков; - ведения учета и контроля выполнения работ; - оперативное планирование графиков, в связи с отсутствием работников локомотивного эксплуатационного депо; - учет рабочего времени на выполнение заданий; - сбор статистической информации по работам и исполнителям; 2.2. Цели создания системы Система «Учет графиков труда и отдыха локомотивных бригад эксплуатационного депо» предназначена для расширения функционала ИС АРМ «Нарядчик». 3 Характеристика объектов информатизации 3.1. Краткое описание работы нарядчика К основным направлениям работы нарядчика относятся: - обеспечивать планирование прибывающих локомотивных бригад по графику; - своевременно вызов локомотивных бригад на явку; - введение отчетной документации в бумажном виде; - осуществлять контроль продолжительности рабочего времени по участкам обслуживания выполнения норм отдыха в пунктах оборота и домашнего отдыха; - планировать и организовывать именные графики. 3.2. Работа с отчетами В модуле ИС "учет графиков труда и отдыха локомотивных бригад эксплуатационного локомотивного депо" предусмотрена возможность построения различных отчетов. Производит отчеты по регулировки часов, производит постановку в наряд следующие сутки. Пользователь имеет возможность вывести отчет на печать или сохранить отчет на диске. 4 Требования к информационной системе 4.1. Базовые принципы разработки модуля При разработке модуля ИС должны использоваться следующие базовые принципы: - исключение дублирования ввода информации и повышение ее достоверности, за счет отождествления ранее введенной информации; ИС должна удовлетворять следующим требованиям: - пользовательский интерфейс системы должен быть сформирован в соответствии с навыками и профилем пользователей; ИС должна содержать: - Средства поиска информации; Выбор прикладного программного обеспечения системы должен удовлетворять следующим критериям: - Интеграция с базами данных, поддерживающих Web-технологии; 4.2. Требования к архитектуре системы. Архитектура системы «Система» является трехзвенной. В качестве клиентского приложения выступает стандартный веб-браузер. 4.3. Требования к способам и средствам связи для информационного обмена между компонентами(модулями) ИС Подсистемы должны взаимодействовать в пределах единой компьютерной сети (Интернет), в которой происходит весь обмен информацией. 4.4. Требования к характеристикам взаимосвязей системы со смежными системами Смежными системами для информационной системы «Учет графиков труда и отдыха» является: «АРМ Нарядчик». 4.5. Требования к режимам функционирования подсистемы Разрабатываемая система должна функционировать 24 часа в сутки, 365 дней в году. 4.6. Требования к пользователям Нарядчик – имеет доступ к просмотру общих данных, а также к просмотру и редактированию личных данных работников локомотивных бригад. 4.7. Требования по эргономике и технической эстетике Основными требованиями по эргономике и технической эстетике является адекватность времени реакции модулей системы на сложность запроса пользователя к базам данных: - При выполнении стандартных запросов пользователь должен работать с системой в реальном режиме времени. 4.8. Требования к численности и квалификации персонала системы и режиму его работы Для эксплуатации модуля ИС «Учет труда и отдыха» определены следующие роли: - Системный администратор; - Администратор баз данных; - Администратор информационной безопасности; - Пользователь (нарядчик). Основными обязанностями системного администратора являются: - Модернизация, настройка и мониторинг работоспособности комплекса технических средств (серверов, рабочих станций); - Установка, модернизация, настройка и мониторинг работоспособности системного и базового программного обеспечения; - Установка, настройка и мониторинг прикладного программного обеспечения; - Ведение учетных записей пользователей системы. Системный администратор должен обладать высоким уровнем квалификации и практическим опытом выполнения работ по установке, настройке и администрированию программных и технических средств, применяемых в системе. Основными обязанностями администратора баз данных являются: - Установка, модернизация, настройка параметров программного обеспечения СУБД; - Оптимизация прикладных баз данных по времени отклика, скорости доступа к данным; - Разработка, управление и реализация эффективной политики доступа к информации, хранящейся в прикладных базах данных. Администратор баз данных должен обладать высоким уровнем квалификации и практическим опытом выполнения работ по установке, настройке и администрированию используемых в ИС СУБД. Основными обязанностями администратора информационной безопасности являются: - Разработка, управление и реализация эффективной политики информационной безопасности системы; - Управление правами доступа пользователей к функциям системы; - Осуществление мониторинга информационной безопасности. Администратор информационной безопасности данных должен обладать высоким уровнем квалификации и практическим опытом выполнения работ по обеспечению информационной безопасности. Пользователи (нарядчики) системы должны иметь опыт работы с персональным компьютером на базе операционных систем Microsoft Windows на уровне квалифицированного пользователя и свободно осуществлять базовые операции в стандартных Windows. Роли системного администратора, администратора баз данных и администратора информационной безопасности могут быть совмещены в роль. Рекомендуемая численность для эксплуатации модуля ИС «Учет труда и отдыха»: - Администратор - 1 штатная единица; - Пользователь (нарядчик) - число штатных единиц определяется структурой предприятия. 4.9. Требования к защите информации от несанкционированного доступа Разрабатываемый модуль ИС должен обладать специализированной подсистемой разграничения доступа к информационным ресурсам, функционирующей на основе системы пользователей и пользовательских групп. 4.10. Требования к обмену данными Обмен данными должен происходить по сети в среде Internet с поддержкой протокола TCP/IP; Все компоненты модуля ИС должны функционировать в пределах единого логического пространства, обеспеченного интегрированными средствами серверов данных и серверов приложений. 4.11. Требования к внешней среде системы Сервер баз данных или сервер приложений должен обеспечивать: возможность доступа к модулю ИС с любого клиентского места. 4.12. Требования к хранению данных База данных «Графики» должна содержать следующие данные: - Данные о локомотивных бригадах (ФИО, табельный номер, номер колонны); - Данные о смене (день/ночь). 4.13. Требования к отдельным подсистемам В состав модуля ИС “Учет труда и отдыха” должны входить следующие подсистемы: - Подсистема хранения данных; - Подсистема управления нормативно-справочной информацией; - Подсистема анализа; - Подсистема интеграции; - Подсистема формирования отчетности; Подсистема хранения данных предназначена для хранения оперативных данных системы, данных для формирования графиков, документов системы, сформированных в процессе работы с графиками. Подсистема приложений операционного управления предназначена для учета работ с работниками локомотивных бригад, ввода информация о локомотивах, входящих в состав локомотивного эксплуатационного депо, их организационном делении и штатном расписании, автоматизации процедур управления графиком локомотивных бригад (ведение полной информации о бригадах, процедуры оценки работников, обучения и т.п.), обеспечение всего спектра работ нарядчиков, автоматическое формирование графиков, справок, учет рабочего времени. Подсистема управления нормативно-справочной информацией предназначена для централизованного ведения классификаторов и справочников, используемых для обеспечения информационной совместимости подсистем. Подсистема интеграции должна обеспечивать следующие основные виды взаимодействия со смежными системами: прием запросов от смежных систем, обработку полученных запросов и предоставление ответов на запросы; передачу запросов в смежные системы и обработку полученных ответов. В ходе выполнения проекта должны быть разработаны форматы данных, протоколы и регламенты взаимодействия Системы со смежными системами. Подсистема должна обеспечивать ведение журналов учета поступивших и обработанных запросов, посланных запросов и полученных ответов смежных систем. Подсистема формирования отчетности предназначена для создания и формирования отчетов в виде удобном для вывода на печатающие устройства на основе данных ИС АРМ «Нарядчик», проектирования и разработки форм регламентированной отчетности, настройки планового формирования и доставки регламентированных отчетов, формирования и предоставления по запросам пользователей аналитических и статистических отчетов, отображения регламентированных отчетов с помощью веб-интерфейса, вывода подготовленных отчетных форм на печать. Также модуль ИС «Учет труда и отдыха» должна обеспечивать доступ пользователей к операционным данным БД ИС (путем предоставления сервисов, позволяющих формировать запросы на получение информации ограниченного доступа, в соответствии с уровнем компетентности пользователя Состав и содержание работ по созданию модуля Разработать модель БД, позволяющую хранить и обрабатывать все необходимые данные. Приемо-сдаточные испытания модуля После завершения всех работ по разработке компонентов, настройке подсистем, модуль ИС должен подвергнутся испытаниям, которые осуществляются в локомотивном эксплуатационном депо г. Белово. Внесение корректировок в программный продукт, связанных с ошибками в Системе Все ошибки, которые будут выявлены в работе Системы в течении 2 недель устраняются разработчиком. Тестирование Перед сдачей Модулей и Компонент Заказчику для выявления возможных сбоев в работе модуль подвергается тестированию со стороны нарядчиков в течении 1 недели. Порядок контроля и приемки Системы Для проверки выполнения заданных функций Системы, определения и проверки соответствия требованиям ТЗ количественных и (или) качественных характеристик Системы, выявления и устранения недостатков в действиях Системы и в разработанной документации, поэтапного контроля над ходом разработки должны быть проведены следующие виды испытаний: Испытание на рабочем месте нарядчика. Процедуры тестирования и контроля качества При проведении испытаний должны использоваться следующие типы процедур тестирования и контроля качества: ·функциональное тестирование - тестирование модуля ИС на соответствие функциональным спецификациям; Общие требования к приемке работ Сроки и место приемки, порядок приемки работ определяются в соответствии с настоящим ТЗ. Требования к документированию 12.1. Требования к проектной документации Состав и комплектность проектной документации должна соответствовать требованиям ГОСТ 34.201-89. ПРИЛОЖЕНИЕ 3 Листинг программы using System.Web.UI; using System.Web.UI.WebControls;
using System.Drawing; //для выбора цвета
using System.Web.Configuration; //для чтения из файла Web.Config
using System.Data; //Содержит объект DataSet using MySql.Data; //Для работы с БД MySQL using MySql.Data.MySqlClient; using System; //для ссылки на цвета Color.Red к примеру
namespace WebApplication3 { public partial class WebForm1: System.Web.UI.Page { MySqlDataAdapter GrafikDA; DataSet GrafikDS; MySqlConnection conn; string sql, sql2; String CurIDGr; //текущее значение IDGr графика int NormaHours; //норма часов для текущего месяца и года float curHoursSum, curPrazdHours;
protected void Page_Load(object sender, EventArgs e) { int id = -1; //Чтение строки подключения ServiceDBCon из файла Web.Config SqlDataSource1.ConnectionString = WebConfigurationManager.ConnectionStrings["GrafikiDBCon"].ConnectionString;
//Пытаемся считать значения IDGr из параметров URL веб-страницы if (GridView1.Rows.Count > 0) { if (!IsPostBack) { if (Request.QueryString["id"] == null) GridView1.SelectedIndex = 0; else { //Request.QueryString["id"] задан, поэтому выбираем строку if (GridView1.SelectedIndex < 0) //если строка не выбрана { if (this.Request.QueryString["id"]!= null) { id = Convert.ToInt32(this.Request.QueryString["id"]); //считываем номер IDGr для из параметра URL } //выбираем строку по id из параметра for (int j = 0; j < GridView1.Rows.Count; j++) { if (GridView1.DataKeys[j].Value.Equals(id)) { GridView1.SelectRow(j); } } } } } LoadGrafik(); } }
protected void btn_Click(object sender, EventArgs e) { //Переход на страницу редактирования строки графика. Передаем параметр - идентификатор IDGrRow строки графика //(sender as Button).Text - название кнопки созданной дианически для редактирования строки графика //определяем IDGrRow по IDGr и GrafPos (берем из названия кнопки) //Создаем соединение с БД conn = new MySqlConnection(WebConfigurationManager.ConnectionStrings["GrafikiDBCon"].ConnectionString); conn.Open(); GrafikDS = new DataSet(); try { //Читаем строки графика sql = "SELECT IDGrRow FROM grafikrows WHERE IDGraf=" + GridView1.SelectedDataKey.Value.ToString() + " AND GrafPos=" + (sender as Button).Text; GrafikDA = new MySqlDataAdapter(sql, conn); GrafikDA.Fill(GrafikDS, "grafikrows"); } catch (Exception ex) { Label1.Text = "Не удалось определить номер строки в графике. " + ex.ToString(); Label1.Visible = true; conn.Close(); return; } Response.Redirect("editrow.aspx?idgr=" + GrafikDS.Tables["grafikrows"].Rows[0]["IDGrRow"]); }
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { //Загружаем выделенный график LoadGrafik(); }
protected void LoadGrafik() { //Загрузка таблицы графика TableRow rowNew; TableCell celNew; int[] PrazdDays; //массив с праздничными днями выбранного года, месяца float Value;
//предварительно очищаем таблицу Table1.Rows.Clear();
//если строка не выбрана в GridView, то график не отрисовываем if (GridView1.SelectedIndex < 0) return;
//если строка не выбрана, выходим из функции if (GridView1.SelectedDataKey == null) return; else CurIDGr = GridView1.SelectedDataKey.Values["IDGr"].ToString();
GrafikDS = new DataSet();
//Создаем соединение с БД conn = new MySqlConnection(WebConfigurationManager.ConnectionStrings["GrafikiDBCon"].ConnectionString); conn.Open(); try { //Читаем строки графика sql = "SELECT grafikrows.*, person.* FROM grafikrows LEFT OUTER JOIN person " + "ON grafikrows.IDPerson = person.IDPerson WHERE grafikrows.IDGraf = " + CurIDGr + " ORDER BY grafikrows.GrafPos"; GrafikDA = new MySqlDataAdapter(sql, conn); GrafikDA.Fill(GrafikDS, "grafikrows"); } catch (Exception ex) { Label1.Text = ex.ToString(); Label1.Visible = true; conn.Close(); return; }
//Читаем норму часов для выбранного года и месяца sql2 = "SELECT * FROM monthnorma WHERE NormYear = " + GridView1.SelectedRow.Cells[2].Text + " AND NormMonth = " + GridView1.SelectedRow.Cells[3].Text + " AND VidNormy=2"; GrafikDA = new MySqlDataAdapter(sql2, conn); GrafikDA.Fill(GrafikDS, "monthnorma"); if (GrafikDS.Tables["monthnorma"].Rows.Count == 1) { NormaHours = Convert.ToInt32(GrafikDS.Tables["monthnorma"].Rows[0]["NormValue"].ToString()); } else { NormaHours = 0; }
//Определяем количество дней в выбранном месяце Int32 m = Convert.ToInt32(GridView1.SelectedRow.Cells[3].Text); //месяц Int32 y = 0; try { y = Convert.ToInt32(GridView1.SelectedRow.Cells[2].Text); //год } catch { Label1.Text = "Введите число в поле Год"; return; } Int32 n = DateTime.DaysInMonth(y, m); //количество дней в выбранном месяце
//Читаем праздничные дни из БД для данного года и месяца. Помещаем их в массив //Читаем норму часов для выбранного года и месяца с 1 по последнее число месяца sql2 = "SELECT * FROM praznddays WHERE PrDate >='" + GridView1.SelectedRow.Cells[2].Text + "-" + GridView1.SelectedRow.Cells[3].Text + "-01' AND PrDate <='" + GridView1.SelectedRow.Cells[2].Text + "-" + GridView1.SelectedRow.Cells[3].Text + "-" + Convert.ToString(n) + "'"; GrafikDA = new MySqlDataAdapter(sql2, conn); GrafikDA.Fill(GrafikDS, "praznddays"); if (GrafikDS.Tables["praznddays"].Rows.Count > 0) { //формируем массив с числами праздничных дней PrazdDays = new int[GrafikDS.Tables["praznddays"].Rows.Count]; for (int i = 0; i < GrafikDS.Tables["praznddays"].Rows.Count; i++) { PrazdDays[i] = Convert.ToDateTime(GrafikDS.Tables["praznddays"].Rows[i]["PrDate"].ToString()).Day; } } else { PrazdDays = null; }
//Создаем Заголовок таблицы--------------------------------------------------------------------------- rowNew = new TableRow(); // 1. Кнопка celNew = new TableCell(); celNew.Text = "Ред."; celNew.HorizontalAlign = HorizontalAlign.Center; rowNew.Cells.Add(celNew); // 2. Номер смены celNew = new TableCell(); celNew.Text = "Смена"; celNew.HorizontalAlign = HorizontalAlign.Center; rowNew.Cells.Add(celNew); //3. Должность celNew = new TableCell(); celNew.Text = "Должность"; celNew.HorizontalAlign = HorizontalAlign.Center; rowNew.Cells.Add(celNew); //4. ФИО celNew = new TableCell(); celNew.Text = "ФИО"; rowNew.Cells.Add(celNew); celNew.HorizontalAlign = HorizontalAlign.Center; //5. часы для каждого дня месяца for (int j = 0; j < n; j++) { // создать новую ячейку celNew = new TableCell(); celNew.Text = Convert.ToString(j + 1); celNew.HorizontalAlign = HorizontalAlign.Center; if (PrazdDays!= null) { for (int k = 0; k < PrazdDays.Length; k++) { if (PrazdDays[k] == j + 1) celNew.BackColor = Color.Red; } } // добавить ячейку к строке таблицы rowNew.Cells.Add(celNew); } //6. Факт.часов celNew = new TableCell(); celNew.Text = "Факт"; celNew.HorizontalAlign = HorizontalAlign.Center; rowNew.Cells.Add(celNew); //7. Празд.часов celNew = new TableCell(); celNew.Text = "Празд"; celNew.HorizontalAlign = HorizontalAlign.Center; rowNew.Cells.Add(celNew); //8. Факт-Празд.часов celNew = new TableCell(); celNew.Text = "Факт-Празд"; celNew.HorizontalAlign = HorizontalAlign.Center; rowNew.Cells.Add(celNew); //9. Факт-Празд.часов celNew = new TableCell(); celNew.Text = "Норма"; celNew.HorizontalAlign = HorizontalAlign.Center; rowNew.Cells.Add(celNew);
Table1.Rows.Add(rowNew);
// Заполняем основную таблицу--------------------------------------------------------------------------- for (int i = 0; i < 8; i++) { curHoursSum = 0; //текущая сумма фактических часов работы сотрудника curPrazdHours = 0; //текущая сумма праздничных часов // создать новую строку таблицы rowNew = new TableRow(); //1. Кнопка для редактирования celNew = new TableCell(); celNew.HorizontalAlign = HorizontalAlign.Center; //Программно создаем кнопку в ячейке Button btn = new Button(); btn.Text = Convert.ToString(i + 1); btn.Click += new System.EventHandler(this.btn_Click); //Динамическая привязка метода Click кнопки к методу btn_Click
celNew.Controls.Add(btn); //Назначаем кнопке метод rowNew.Cells.Add(celNew); //2. Номер смены celNew = new TableCell(); if (Convert.ToInt32(GrafikDS.Tables["grafikrows"].Rows[i]["GrafPos"].ToString()) % 2 == 1) celNew.Text = GrafikDS.Tables["grafikrows"].Rows[i]["Smena"].ToString(); else celNew.Text = ""; rowNew.Cells.Add(celNew); //3. Должность celNew = new TableCell(); if (Convert.ToInt32(GrafikDS.Tables["grafikrows"].Rows[i]["GrafPos"].ToString()) % 2 == 1) celNew.Text = "маш-ст"; else celNew.Text = "п/м"; rowNew.Cells.Add(celNew); //4. ФИО celNew = new TableCell(); if (GrafikDS.Tables["grafikrows"].Rows[i]["IDPerson"].ToString()!= "") { celNew.Text = GrafikDS.Tables["grafikrows"].Rows[i]["Lastname"].ToString() + " " + GrafikDS.Tables["grafikrows"].Rows[i]["Firstname"].ToString().Substring(0, 1) + "." + GrafikDS.Tables["grafikrows"].Rows[i]["FatherName"].ToString().Substring(0, 1) + ". (" + GrafikDS.Tables["grafikrows"].Rows[i]["Tabnom"].ToString() + ")"; } rowNew.Cells.Add(celNew); //читаем данные по часам по сотруднику в набор данных //Читаем строки графика sql2 = "SELECT * FROM grafikhours WHERE IDGrRow = " + GrafikDS.Tables["grafikrows"].Rows[i]["IDGrRow"].ToString() + " ORDER BY DayOfMonth"; GrafikDA = new MySqlDataAdapter(sql2, conn); GrafikDA.Fill(GrafikDS, "grafikhours");
//5. часы для каждого дня месяца int k = 0; for (int j = 1; j <= n; j++) { // создать новую ячейку celNew = new TableCell(); if (GrafikDS.Tables["grafikhours"].Rows.Count == 0) { // в БД для данной сторки графика данных нет, потому ставим там пробел celNew.Text = " "; } else { if (j!= Convert.ToInt32(GrafikDS.Tables["grafikhours"].Rows[k]["DayOfMonth"].ToString())) { //в БД нет данных по этому дню celNew.Text = " "; } else { //в БД есть данные по дням. Пытаемся найти в таблице БД значение для j-го дня celNew.Text = GrafikDS.Tables["grafikhours"].Rows[k]["GrVal"].ToString(); //добавляем значение часов к фактической сумме if (GrafikDS.Tables["grafikhours"].Rows[k]["GrVal"].ToString()!= "X") { if (float.TryParse(GrafikDS.Tables["grafikhours"].Rows[k]["GrVal"].ToString().Replace("/н", ""), out Value)) { Label1.Visible = false; curHoursSum += Value; //также вычисляем праздничные часы по сотруднику if (PrazdDays!= null) { for (int t = 0; t < PrazdDays.Length; t++) { if (PrazdDays[t] == j) curPrazdHours += Value; } } } else //Присутствует буква. { Label1.Text = "В таблице графика есть значение часов не соотвествующее формату"; Label1.Visible = true; }
}
if (k < GrafikDS.Tables["grafikhours"].Rows.Count - 1) k++; } } // добавить ячейку к строке таблицы rowNew.Cells.Add(celNew); }
//очищаем таблицу GrafikDS.Tables["grafikhours"].Clear();
//6. Факт.часов celNew = new TableCell(); celNew.Text = Convert.ToString(curHoursSum); rowNew.Cells.Add(celNew);
//7. Празд.часов celNew = new TableCell(); celNew.Text = Convert.ToString(curPrazdHours); rowNew.Cells.Add(celNew); //8. Факт-Празд.часов celNew = new TableCell(); celNew.Text = Convert.ToString(curHoursSum - curPrazdHours); rowNew.Cells.Add(celNew); //9. Факт-Празд.часов celNew = new TableCell(); if (NormaHours > 0) celNew.Text = Convert.ToString(NormaHours); rowNew.Cells.Add(celNew);
// добавить строку к таблице Table1.Rows.Add(rowNew); } }
protected void Button1_Click(object sender, EventArgs e) { ViewState["SeltdID"] = GridView1.SelectedIndex; //Переход на страницу добавления графика Response.Redirect("graf_add.aspx"); }
protected void Button3_Click(object sender, EventArgs e) { //Вызываем метод удаления графика SqlDataSource1.Delete(); }
protected void Button2_Click(object sender, EventArgs e) { ViewState["SeltdID"] = GridView1.SelectedIndex; //Переход на страницу редактирования графика. Передаем один параметр - идентификатор IDGr графика Response.Redirect("graf_edt.aspx?id=" + GridView1.SelectedDataKey.Value.ToString()); }
protected void GridView1_Sorted(object sender, EventArgs e) { //предварительно очищаем таблицу Table1.Rows.Clear(); Label1.Text = "Выберите график в списке"; Label1.Visible = true; }
protected void GridView1_PageIndexChanged(object sender, EventArgs e) { //предварительно очищаем таблицу Table1.Rows.Clear(); Label1.Text = "Выберите график в списке"; Label1.Visible = true; } } }
Дата добавления: 2015-08-31; Просмотров: 1202; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |