Студопедия

КАТЕГОРИИ:


Архитектура-(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 – Международный стандарт железнодорожной промышленности

ЦД Департамент управления перевозками
НСИ Нормативно-справочная информация
АСОУП-2 Автоматизированная система оперативного управления перевозками
ОКДБ Подсистема АСОУП «Оперативный контроль дислокации бригад»
ГИД Урал - ВНИИЖТ Автоматизированная система ведения и анализа графика исполненного движения (ГИД Урал – ВНИИЖТ)
ПТК Программно-технический комплекс
АРМ Автоматизированное рабочее место
АС Автоматизированная система
АСУ Автоматизированная система управления
ЦУП Центр управления перевозками ОАО «РЖД»
ДЦУП Дорожный центр управления перевозками
АСУТ Автоматизированная система управления локомотивным хозяйством
АРМ ТЧБ АРМ нарядчика локомотивного депо АСУТ
АРМ ТЧД АРМ диспетчера АСУТ
АСУТ-Т Информационно-сигнальная система контроля работы локомотивов и локомотивных бригад (подсистема АСУТ дорожно-регионального уровня)
ПЛАН-ЛБ Автоматизированная система суточного планирования локомотивных бригад
СПРБ Сменно-суточный план регулирования локомотивными бригадами грузового движения
ТПРБ Текущий план регулирования локомотивными бригадами грузового движения
ТНЦ Локомотивный диспетчер ДЦУП
ТНЦО Оператор при ТНЦ
ТЧД Дежурный по локомотивному депо
ЛБ Локомотивная бригада
ФИО Фамилия, имя, отчество
СОИ Система оперативного информирования

 

Сообщение код 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; Просмотров: 1102; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.