Содержание
Введение
. Создание и становление учетно-регистрационной работы в органах внутренних дел
. Организационная структура ИАКЦ МВД ПМР
. Описание аппаратного и программного обеспечения ИАКЦ
. Аналитический и литературный обзор предметной области
. Проектирование базы данных
.1 Инфологическое проектирование модели базы данных
.2 Логическое проектирование модели базы данных
.3 Физическое проектирование модели базы данных
. Описание структуры программы
Заключение
Список литературы
Приложение А. Руководство пользователя
Приложение Б. Листинг программы
Введение
Производственная практика является составной частью основной образовательной программы по специальности «Программное обеспечение вычислительной техники и автоматизированных систем».
Она имеет целью закрепление и углубление знаний, полученных студентами в процессе теоретического обучения, приобретение необходимых умений, навыков и опыта практической работы по изучаемой специальности.
При ее прохождении поставлены следующие цели:
- ознакомление с деятельностью организации;
изучение специфики работы учреждения;
изучение передового опыта работы специалистов учреждения;
изучение структуры организации в данном учреждении;
углубление и закрепление собственных знаний, полученных в процессе обучения;
выработка навыков принятия решений и реализация решений в практической деятельности;
- расширение технического кругозора и подготовка к самостоятельной профессиональной деятельности на основе знаний и умений, полученных на протяжении всего периода обучения;
выполнение индивидуального задания, связанного с конкретной производственной задачей.
1. Создание и становление учетно-регистрационной работы в органах внутренних дел
ИНФОРМАЦИОННО-АНАЛИТИЧЕСКИЙ КОНТРОЛЬНЫЙ ЦЕНТР (ИАКЦ), подразделение Главного Организационно-инспекторского Управления Штаба МВД ПМР. Образован как Информационный центр (ИЦ) МВД в 1993 году с целью улучшения системы сбора, обработки, хранения информации, объединения данных, поступающих из Информационно-аналитических отделений (ИАО) горрайорганов республики и создания единой информационной структуры в системе МВД ПМР.
В 2004 году преобразован в соответствии с Решением Коллегии МВД ПМР в Информационно-аналитический Контрольный центр МВД ПМР.
В системе органов внутренних дел ИАКЦ - головная организация в области обеспечения статистической, оперативно-справочной, розыскной, криминалистической информацией. В каждом городском и районном отделе внутренних дел ПМР работают информационно-аналитические отделения. Они осуществляют сбор и обработку первичной информации о преступлениях и административных правонарушениях в республике, и передают её в электронном виде по специальным каналам связи для дальнейшей обработки, хранения и систематизации в ИАКЦ.
2. Организационная структура ИАКЦ МВД ПМР
В структуру ИАКЦ входят следующие отделы: отдел программного обеспечения (ОПО) и информационно-аналитический отдел (ИАО), который включает в себя группу учета (ГУ), группу спецпроверок, инспектора разрешительной системы, инспектора контроля баз данных.
ОПО осуществляет создание, развитие и организацию эксплуатации автоматизированных информационных систем, интегрированных банков данных (ИБД) оперативно-справочного, розыскного и криминалистического назначения. ИАО осуществляет единый учет совершаемых на территории ПМР преступлений и лиц, их совершивших, межведомственного движения уголовных дел и материалов без возбуждения, результатов их расследования и рассмотрения в судах.
Ведет оперативно-справочные картотеки лиц судимых, привлеченных к уголовной ответственности, находящихся в розыске, состоящих на картотечных учетах, а также потерпевших. Контролирует ведение интегрированного банка данных, накопление, обработку и учет оперативно-справочных и поисковых документов, составляющих их основу.
Осуществляет формирование и представление в МВД ПМР, Прокуратуру ПМР, Госкомстат ПМР статистической отчетности о состоянии преступности и результатах профилактической, оперативно-розыскной и следственной деятельности органов внутренних дел.
Осуществляет сбор, обработку, накопление и выдачу оперативному составу, дежурным подразделениям и другим работникам оперативно-справочной информации о лицах, автомототранспорте, оружии, номерных вещах, находящихся в розыске, и других сведений, необходимых для раскрытия преступлений и установления лиц, их совершивших.
Совместно с ГС ИНиСР Министерства юстиции ПМР осуществляет контроль за местонахождением осужденных лиц с момента их осуждения до освобождения из учреждений ГС ИНиСР.
. Описание аппаратного и программного обеспечения ИАКЦ
На рабочем месте в отделении программного обеспечения предоставлены компьютеры различной конфигурации:
1.Старший инженер-программист:
·Системная память 1014 Мб (DDR2-800 DDR2 SDRAM)
·жесткий диск SAMSUNG HD161GJ (160 Гб, 7200 RPM, SATA-II)
·процессор DualCore Intel Celeron E3300, 2500 MHz (12.5 x 200)
·Операционная система Microsoft Windows XP Professional
·Монитор Samsung SAMTRON 55(M)E (Plus) [15" CRT] (HJAR300226);
2.Инженер-программист:
·жесткий диск SAMSUNG HD503HI (500 Гб, 5400 RPM, SATA-II)
·процессор DualCore Intel Celeron E3400, 2600 MHz (13 x 200)
·Операционнаяя система Microsoft Windows XP Professional
·Системная память 2012 Мб (DDR3-1333 DDR3 SDRAM)
·Монитор Samsung SyncMaster 927DF(I)/927MB(I)/997DF/997MB [19" CRT] (HMBL700999);
3.Начальник ОПО:
·жесткий диск MAXTOR STM3250310AS (250 Гб, 7200 RPM, SATA-II) и SAMSUNG HD253GJ (250 Гб, 7200 RPM, SATA-II)
·процессор DualCore Intel Core 2 Duo E7500, 2933 MHz (11 x 267)
·Операционнаяя система Microsoft Windows XP Professional
·Системная память 2016 Мб (DDR2-800 DDR2 SDRAM)
·Монитор LG W2253 (Analog) [22" LCD] (19081);
Программное обеспечение ИАКЦ основано на базе ICS (интегрированная криминологическая система), которая была разработана в 1994 году на базе MS-DOS.
В настоящее время программное обеспечение разрабатывается программистами ИАКЦ с использование СУБД ORACLE на языках программирования Visual FoxPro, Delphi.
4. Аналитический и литературный обзор предметной области
программа автоматизированное база данные
Во время прохождения практики была поставлена задача разработать программный продукт «Отдел кадров», реализующий ввод, корректировку, хранение информации о сотрудниках, званиях, должностях, окладе и вывод отчетов о сотрудниках.
База данных должна содержать информацию о сотрудниках, званиях, должностях, окладе. База данных должна иметь возможность поиска информации о сотруднике по номеру паспорта, по фамилии.
Программа должна предоставить возможность формирования отчетов:
-личное дело, в котором автоматически высчитывается стаж работы в зависимости от введенных значений: даты поступления на работу и даты вывода отчета;
-отчет, группирующий сотрудников по должностям, с подсчетом количества сотрудников по каждой должности.
Информация, хранящаяся в базах данных ИАКЦ, доступна для просмотра и корректировки (в зависимости от введенного пароля) во всех городских и районных отделах внутренних дел ПМР.
Одним из видов информации, хранящаяся в базах данных ИАКЦ, являются сведения о привлечении граждан (лиц) к административной ответственности в соответствии с Кодексом об Административных Правонарушениях в ПМР (КоАП ПМР). Эти сведения состоят из следующих реквизитов:
.Анкетные данные лица:
фамилия;
имя;
отчество;
дата рождения;
место рождения;
адрес места жительства.
. Сведения о должностном лице, составившем протокол:
фамилия и инициалы;
звание;
должность;
. Сведения о месте и времени составления протокола:
время админнарушения;
место админнарушения;
фабула админнарушения;
статья КоАП;
дата составления протокола;
сведения о понятых, присутствующих при составлении протокола;
объяснения и подпись нарушителя;
описание предметов, изъятых при составлении протокола.
. Сведения о рассмотрении админпротокола:
мера наказания;
кем принято решение;
. Сведения о дате исполнения протокола.
5. Проектирование базы данных
.1 Инфологическое проектирование модели базы данных
Предметная область, подлежащая автоматизации, содержит информацию о сотрудниках, званиях, должностях.
Объекты предметной области: «Сведения о званиях», «Сведения о сотрудниках», «Сведения о должностях».
В предметной области можно выделить следующие процессы: прием на работу, назначение на должность, присвоение званий.
В рассматриваемой предметной области можно выделить следующие сущности: «Сведения о званиях», «Сведения о сотрудниках», «Сведения о должностях».
Анализируя сущности рассматриваемой предметной области, можно выделить следующие атрибуты и идентифицирующие ключи:
Сущность «Сведения о званиях» обладает атрибутами: Звание, Срок. В качестве ключевого атрибута можно принять ID звания, который определяется числовыми значениями.
Сущность «Сведения о сотрудниках» содержит следующие атрибуты: Фамилия, Имя, Отчество, Номер паспорта, Звание, Должность, Дата поступления на работу, Дата присвоения звания, Стаж, Повышение. Идентифицирующим ключом данной сущности является Номер паспорта, так как он определяется числовыми значениями.
Сущность «Сведения о должностях» содержит следующие атрибуты: Должность, Оклад. В качестве ключевого атрибута можно принять ID должности, который определяется числовыми значениями.
Рисунок 5.1 - Связь между сущностями «Сведения о званиях» и «Сведения о сотрудниках»
Между сущностями «Сведения о званиях» и «Сведения о сотрудниках» существует связь один ко многим, так как каждому ID звания сущности со сведениями о званиях соответствует множество ID званий сущности «Сведения о сотрудниках». Первичным ключом сущности «Сведения о званиях» будет атрибут ID города по отношению к сущности «Сведения о сотрудниках» с внешним ключом ID города.
Рисунок 5.2 - Связь между сущностями «Сведения о должностях» и «Сведения о сотрудниках»
Между сущностями «Сведения о должностях» и «Сведения о сотрудниках» существует связь один ко многим, так как каждому ID должности сущности со сведениями о должностях соответствует множество ID должностей сущности «Сведения о сотрудниках». Первичным ключом сущности «Сведения о должностях» будет атрибут ID должности по отношению к сущности «Сведения о сотрудниках» с внешним ключом ID должности.
Проанализировав предметную область, можно построить следующую ER-диаграмму предметной области «Отдел кадров»:
Рисунок 5.3 - ER-диаграмма предметной области «Отдел кадров»
5.2 Логическое проектирование модели базы данных
На логическом этапе проектирования модели базы данных описывается перевод сущностей инфологической модели в отношения.
Отношение «Сведения о сотрудниках» (Фамилия, Имя, Отчество, Номер паспорта, Звание, Должность, Дата присвоения звания, Дата поступления на работу, Стаж, Повышение) находится в первой нормальной форме (1NF), так как на пересечении каждого столбца и строки находятся только элементарные значения атрибутов.
Отношение находится во второй нормальной форме (2NF), так как она находится в первой нормальной форме и не содержит неполных функциональных зависимостей непервичных атрибутов от первичного ключа.
Отношения находится в третьей нормальной форме (3NF), если они находится во второй нормальной форме и не содержат транзитивных зависимостей. В данном случае отношение «Сведения о сотрудниках» находится во второй нормальной форме и транзитивные зависимости отсутствуют. Следовательно, данное отношение находится в третьей нормальной форме.
Следуя из приведенного определения и анализа структуры отношения, определим схему отношения «Сведения о сотрудниках», которая будет реализована в виде таблицы «сотрудники» в системе управления базами данных.
Таблица 1 - Схема отношения «Сведения о сотрудниках»
Имя атрибутаДоменИмя поляУсловие на значение ОписаниеФамилияТекстовыйфамилияФамилияИмяТекстовыйимяИмяОтчествоТекстовыйотчествоОтчествоНомер паспортаЧисловойномер_паспортаНомер паспортаID званияЧисловойID_званияID званияID должностиЧисловойID_должностиID должностиДата присвоения званияДата/времядата_присвоения_ званияДата присвоения званияДата поступления на работуДата/времядата_поступления_на_работуДата поступления на работуСтажТекстовыйстажСтаж (дней.месяцев.лет)ПовышениеТекстовыйповышениеПовышение (да/нет)
Отношение «Сведения о званиях» (ID звания, Звание, Срок) находится в первой нормальной форме, так как на пересечении каждого столбца и строки находятся только элементарные значения атрибутов.
Отношение находится во второй нормальной форме, так как она находится в первой нормальной форме и не содержит неполных функциональных зависимостей непервичных атрибутов от первичного ключа.
Отношение «Сведения о званиях» находится в третьей нормальной форме, так как она находится во второй нормальной форме и транзитивные зависимости отсутствуют.
Таким образом, определим схему отношения «Сведения о званиях», которая будет реализована в виде таблицы «звания» в системе управления базами данных.
Таблица 2 - Схема отношения «Сведения о званиях»
Имя атрибутаДоменИмя поляУсловие на значение ОписаниеID званияЧисловойId_званияID званияЗваниеТекстовыйзваниеЗваниеСрокЧисловойсрокЧерез сколько лет повышение звания
Отношение «Сведения о должностях» (ID должности, Должность, Оклад) находится в первой нормальной форме, так как на пересечении каждого столбца и строки находятся только элементарные значения атрибутов.
Отношение находится во второй нормальной форме, так как она находится в первой нормальной форме и не содержит неполных функциональных зависимостей непервичных атрибутов от первичного ключа.
Отношение «Сведения о должностях» находится в третьей нормальной форме, так как она находится во второй нормальной форме и транзитивные зависимости отсутствуют.
Таким образом, определим схему отношения «Сведения о должностях», которая будет реализована в виде таблицы «оклады» в системе управления базами данных.
Таблица 3 - Схема отношения «Сведения о должностях»
Имя атрибутаДоменИмя поляУсловие на значение ОписаниеID должностиЧисловойid_должностиID должностиДолжностьТекстовыйдолжностьДолжностьОкладЧисловойокладОклад
.3 Физическое проектирование модели базы данных
Для создания базы данных была выбрана система управления базами данных MS Access 2003. Выгодным преимуществом MS Access 2003 является тесная интеграция с Microsoft Visual Studio.
Для разработки приложения используется интегрированная среда разработки Visual Studio 2005, язык C#.
Ниже представлена схема данных предметной области «Отдел кадров» в СУБД MS Access 2003:
Рисунок 5.9 - Схема данных в СУБД MS Access 2003
6. Описание структуры программы
Структурная схема - схема, отражающая состав и взаимодействие по управлению частей разрабатываемого продукта. При объектной декомпозиции такими частями являются объекты (рисунок 6.1).
Рисунок 6.1 - Структурная схема программного продукта (объектная декомпозиция)
Данный программный продукт устанавливается на персональный компьютер, защищенный логином и паролем, должностного лица из управления кадров. Посторонним лицам просмотр информации запрещен.
Программный продукт имеет следующую структурную схему: сначала загружается главная форма Form1.cs, где пользователь может ознакомиться с полным списком информации о сотрудниках, должностях и званиях, а также может сформировать отчеты. Из этой же формы можно перейти в режим поиска конкретного сотрудника по номеру паспорта или по фамилии, а также осуществить ввод данных о новом сотруднике или откорректировать существующую запись, в случае изменения анкетных данных, должности, звания или других реквизитов.Выбор режима работы осуществляется нажатием левой клавиши мыши на соответствующем окне:
-таблицы - доступ к базам сотрудников, должностей, званий;
-отчеты - формирование отчетов;
поиск - режим поиска по заданным реквизитам;
выход - выход из программы.
Заключение
Разработанная программа является автоматизированным рабочим местом сотрудника кадровой службы. Она обеспечивает сбор и обработку данных о сотрудниках, уменьшает бумажный поток, позволяет ускорить процесс поиска личной карточки сотрудника, увеличивает производительность труда работника кадрового аппарата.
В программе были реализованы следующие функции:
добавление данных о вновь принятых сотрудниках
хранение данных о сотрудниках
изменение данных о сотрудниках, званиях, должностях и окладах
автоматический подсчет стажа работы
напоминание о сроке присвоения очередного звания
вывод списка сотрудников с группировкой по должностям
вывод общего списка сотрудников
создание отчётов, возможность их сохранения и печати.
Данная программа может применяться в кадровых подразделениях различных учреждений и силовых структур.
Список литературы
1.Герберт Шилдт «Полный справочник по C#», перевод с англ., издательский дом «Вильямс», Москва, 2004г.-752с.:ил.
2.Данилина Т.Г. Конспект лекций по «Технологии Программирования», РИО ПГУ, 2008 г.
.Джесс Либерти «Создание .NET приложений. Программирование на C#», Издание 2-ое. Издательство «Символ-Плюс». Москва, 2005 г.-684с.
4.Ермолаев. Б. Л Приложение А
Руководство пользователя
Для начала работы запускаем исполнительный файл, его название WindowsApplication1.exe. При запуске появится главное окно, где пользователь может ознакомиться с полным списком информации о сотрудниках:
Рисунок 6.1 - Главное окно программы
Для работы с таблицей «сотрудники» выбираем пункт меню таблицыàсотрудники и действие, которое требуется выполнить. Аналогичные действия необходимо выполнить для работы с таблицей «должности»
Рисунок 6.2 - Основное меню программы
При выборе добавить открывается следующее окно, в котором необходимо заполнить все поля, из выпадающих списков выбрать звание и должность. Для сохранения записи нажать кнопку «добавить».
Рисунок 6.3 - Добавление нового сотрудника
При выборе удалить открывается окно следующего вида, в котором заполняется несколько букв фамилии, после чего нажимаем левой клавишей мыши на метку в конце строки, высвечивается список, состоящий из ФИО и номера паспорта, курсором выбираем запись, подлежащую удалению.
Рисунок 6.4 - Удаление сотрудника
В нижней части окна отображается полная информация о данном лице. После этого нажимаем клавишу удалить или отмена.
Рисунок 6.5 - Удаление сотрудника
При выборе изменить открывается окно изменения данных о сотрудниках. Выбор нужной записи происходит аналогично предыдущему режиму. После чего во вкладках звание, должность и личные данные происходит автоматическое заполнение полей. Далее выбираем нужную вкладку и производим корректировку. Для сохранения данных нажимаем кнопку изменить.
Рисунок 6.6 - Изменения данных о сотрудниках
При выборе повышение программа сканирует каждую запись на наличие индикатора «да» в графе повышение. В случае успеха корректируется текущее звание, дата присвоения звания и индикатор изменяется на «нет».
При каждом запуске программы сравнивается дата присвоения звания с текущей датой. Вычисленная разница (количество лет) сравнивается с полем «срок» из таблицы звания. При совпадении результатов индикатор «повышение» таблицы сотрудники меняется на «да».
При изменении штатного расписания корректируется таблица должности:
.Появление новых должностей. Выбираем пункт меню таблицыàдолжностиàдобавить.
Рисунок 6.7 - Добавление должности
2.Сокращение должностей. Выбираем пункт меню
таблицыàдолжностиàудалить далее из выпадающего списка выбираем должность для удаления.
Рисунок 6.8 - Удаление должности
3.Изменение оклада. Выбираем пункт меню
таблицыàдолжностиàизменить далее из выпадающего списка выбираем должность для изменения оклада. В следующей графе отображается нынешний оклад. В пустую графу вводим новое значение оклада. Нажимаем изменить оклад.
Рисунок 6.8 - Удаление должности
Таблица звания отображает наименование звания и количество лет выслуги, по истечении которого присваивается очередное звание в соответствии с занимаемой должностью. Для просмотра этой таблицы выбираем пункт меню таблицыàзвания.
Для организации поиска выбираем пункт меню «поиск» и определяем режим поиска - по номеру паспорта или по фамилии. В зависимости от выбранного режима заполняем пустую графу, после чего нажимаем кнопку искать. При совпадении указанных реквизитов на экране отображаются сведения о сотрудниках.
Рисунок 6.9 - Режим поиска
Для вызова необходимого отчета выбираем пункт меню «отчеты».
Рисунок 6.10 - Отчет «личные карточки»
Рисунок 6.11 - Общий отчет
Приложение Б
Листинг программы
.cs
using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Text;System.Windows.Forms;System.Data.OleDb;WindowsApplication1
{partial class Form1 : Form
{datAdap;I = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con;Form1()
{();= new OleDbConnection(I);.Open();
}void сотрудникиToolStripMenuItem_Click(object sender, EventArgs e)
{DT = new DataTable("[сотрудники]");= new OleDbDataAdapter("Select* From [сотрудники]", con);.Fill(DT);.DataSource = DT;
}void должностиToolStripMenuItem_Click(object sender, EventArgse)
{DT = new DataTable("[оклады]");= new OleDbDataAdapter("Select* From [оклады]", con);.Fill(DT);.DataSource = DT;
}void званияToolStripMenuItem_Click(object sender, EventArgs e)
{DT = new DataTable("[звания]");= new OleDbDataAdapter("Select* From [звания]", con);.Fill(DT);.DataSource = DT;
}void изменениеToolStripMenuItem_Click(object sender, EventArgse)
{f2 = new Form2();.ShowDialog();
}void удалитьToolStripMenuItem_Click(object sender, EventArgs e)
{f3 = new Form3();.ShowDialog();
}void выходToolStripMenuItem_Click(object sender, EventArgs e)
{.Close();
}void измененToolStripMenuItem_Click(object sender, EventArgs e)
{f4 = new Form4();.ShowDialog();
}void изменитьToolStripMenuItem_Click(object sender, EventArgse)
{f5 = new Form5();.ShowDialog();
}void Form1_Activated(object sender, EventArgs e)
{Com = new OleDbCommand("SELECT сотрудники.дата_поступления_на_работу FROM сотрудники;", con);(OleDbDataReader dr = Com.ExecuteReader())
{(dr.Read())
{a = DateTime.Now;b = Convert.ToDateTime(dr.GetValue(0).ToString());y1 = a.Year;m1 = a.Month;d1 = a.Day;y2 = b.Year;m2 = b.Month;d2 = b.Day;r = d1 - d2, rm, ry;(d1 - d2
{(m1)
{5:7:8:10:12:= d1 - d2 + 30;--;;3:(d1 - d2
}
}(m1 - m2
{--;= m1 - m2 + 12;
}rm = m1 - m2;= y1 - y2;staj = r.ToString() + '.' + rm.ToString() + '.' + ry.ToString();u = "UPDATE сотрудники SET сотрудники.стаж = '" + staj + "' WHERE сотрудники.дата_поступления_на_работу= '" + b.ToShortDateString() + "' ;";insCom = new OleDbCommand(u, con);.ExecuteNonQuery();
}
}Com1 = new OleDbCommand("SELECT сотрудники.номер_паспотрта, сотрудники.звание, сотрудники.дата_присвоения_звания FROM сотрудники;", con);(OleDbDataReader dr1 = Com1.ExecuteReader())
{(dr1.Read())
{a = DateTime.Now;zv = dr1.GetValue(1).ToString();nomer = dr1.GetValue(0).ToString(); ;b = Convert.ToDateTime(dr1.GetValue(2).ToString());y1 = a.Year;m1 = a.Month;d1 = a.Day;y2 = b.Year;m2 = b.Month;d2 = b.Day;r = d1 - d2, rm, ry;(d1 - d2
{(m1)
{5:7:8:10:12:= d1 - d2 + 30;--;;3:(d1 - d2
}
}(m1 - m2
{--;= m1 - m2 + 12;
}rm = m1 - m2;= y1 - y2;(zv)
{"рядовой":"младший сержант":"сержант":"старший сержант":"старшина":"прапорщик":"старший прапорщик":"младший лейтенант":"лейтенант":(ry >= 1)
{u1 = "UPDATE сотрудники SET сотрудники.повышение = 'да' WHERE (((сотрудники.номер_паспотрта)=" + nomer + "));";insCom1 = new OleDbCommand(u1, con);.ExecuteNonQuery();
};"старший лейтенант":(ry >= 3)
{u1 = "UPDATE сотрудники SET сотрудники.повышение = 'да' WHERE (((сотрудники.номер_паспотрта)=" + nomer + "));";insCom1 = new OleDbCommand(u1, con);.ExecuteNonQuery();
};"капитан":(ry >= 4)
{u1 = "UPDATE сотрудники SET сотрудники.повышение = 'да' WHERE (((сотрудники.номер_паспотрта)=" + nomer + "));";insCom1 = new OleDbCommand(u1, con);.ExecuteNonQuery();
};"майор":(ry >= 4)
{u1 = "UPDATE сотрудники SET сотрудники.повышение = 'да' WHERE (((сотрудники.номер_паспотрта)=" + nomer + "));";insCom1 = new OleDbCommand(u1, con);.ExecuteNonQuery();
};"подполковник":(ry >= 5)
{u1 = "UPDATE сотрудники SET сотрудники.повышение = 'да' WHERE (((сотрудники.номер_паспотрта)=" + nomer + "));";insCom1 = new OleDbCommand(u1, con);.ExecuteNonQuery();
};: break;
}
}
}I1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con1 = new OleDbConnection(I1);.Open();.ClearSelection();dt = new DataTable("[сотрудники]");dA1 = new OleDbDataAdapter("Select* From [сотрудники]", con1);.Fill(dt);.DataSource = dt;.Close();
}void удалитьToolStripMenuItem1_Click(object sender, EventArgse)
{f6 = new Form6();.ShowDialog();
}void изменитьToolStripMenuItem1_Click(object sender, EventArgse)
{f7 = new Form7();.ShowDialog();
}void aToolStripMenuItem_Click(object sender, EventArgs e)
{f10 = new Form10();.ShowDialog();
}void сотрудникиToolStripMenuItem1_Click(object sender, EventArgs e)
{f9 = new Form9();.ShowDialog();
}void повышениеToolStripMenuItem_Click(object sender, EventArgs e)
{DR;=MessageBox.Show("Всем сотрудникам, которым необходимо присвоить звание будет присвоено очередное звание. Дата присвоения звания будет сегоднешней. Продолжить?", "повышение", MessageBoxButtons.YesNo, MessageBoxIcon.Question);(DR == DialogResult.Yes)
{Com1 = new OleDbCommand("SELECT сотрудники.номер_паспотрта, сотрудники.звание, сотрудники.повышение FROM сотрудники WHERE (((сотрудники.повышение)='да'));", con);(OleDbDataReader dr1 = Com1.ExecuteReader())
{(dr1.Read())
{zv = dr1.GetValue(1).ToString();nomer = dr1.GetValue(0).ToString();Com2 = new OleDbCommand("SELECT звания.ID_звания FROM звания WHERE (((звания.звание)='" + zv + "'));", con);(OleDbDataReader dr2 = Com2.ExecuteReader())
{(dr2.Read())
{Nz = Convert.ToInt32(dr2.GetValue(0).ToString());++;Com3 = new OleDbCommand("SELECT звания.звание FROM звания WHERE (((звания.ID_звания)=" + Nz + "));", con);(OleDbDataReader dr3 = Com3.ExecuteReader())
{(dr3.Read())
{zvanie = dr3.GetValue(0).ToString();u = "UPDATE сотрудники SET сотрудники.повышение = 'нет', сотрудники.дата_присвоения_звания = '" + DateTime.Now.ToShortDateString() + "', сотрудники.звание = '" + zvanie + "'WHERE (((сотрудники.номер_паспотрта)=" + nomer + "));";cmd = new OleDbCommand(u, con);.ExecuteNonQuery();
}
}
}
}
}
}
}
}void поНомеруПаспортаToolStripMenuItem_Click(object sender, EventArgs e)
{.Visible = true;.Text = "введите номер паспорта";.Visible = true;.Visible = true;
}void button1_Click(object sender, EventArgs e)
{(label1.Text == "введите номер паспорта")
{(textBox1.Text != "")
{
{DT = new DataTable("[сотрудники]");= new OleDbDataAdapter("SELECT сотрудники.* FROM сотрудники WHERE (((сотрудники.номер_паспотрта)=" + textBox1.Text + "));", con);.Fill(DT);.DataSource = DT;
}(Exception ex)
{.Show("поле 'номер паспорта' не может содержать букв", "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}MessageBox.Show("введите номер паспорта", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
}(textBox1.Text != "")
{
{DT = new DataTable("[сотрудники]");= new OleDbDataAdapter("SELECT сотрудники.* FROM сотрудники WHERE (((сотрудники.фамилия)='" + textBox1.Text + "'));", con);.Fill(DT);.DataSource = DT;
}(Exception ex)
{.Show("поле 'фамилия' не может содержать цифр", "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}MessageBox.Show("введите номер паспорта", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
void поФамилииToolStripMenuItem_Click(object sender, EventArgs e)
{.Visible = true;.Text = "введите фамилию сотрудника";.Visible = true;.Visible = true;
}void таблицыToolStripMenuItem_Click(object sender, EventArgs e)
{.Visible = false;.Visible = false;.Visible = false;.ClearSelection();
}
}
}.csSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Data.OleDb;System.Drawing;System.Text;System.Windows.Forms;WindowsApplication1
{partial class Form2 : Form
{I = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con;Form2()
{();= new OleDbConnection(I);.Open();Com = new OleDbCommand("SELECT [звания].звание FROM [звания];", con);(OleDbDataReader dr = Com.ExecuteReader())
{(dr.Read())
{.Items.Add(dr.GetValue(0).ToString());
}
}Com1 = new OleDbCommand("SELECT [оклады].должность FROM [оклады];", con);(OleDbDataReader dr1 = Com1.ExecuteReader())
{(dr1.Read())
{.Items.Add(dr1.GetValue(0).ToString());
}
}
}void button1_Click(object sender, EventArgs e)
{datAdap;
{(textBox1.Text != "" && textBox2.Text != "" && textBox3.Text != "" && textBox4.Text != "" && comboBox1.Text != "" && comboBox2.Text != "")
{data = dateTimePicker1.Value.ToShortDateString();data2 = dateTimePicker2.Value.ToShortDateString();t1 = textBox1.Text, t2 = textBox2.Text, t3 = textBox3.Text;t11 = "", t22 = "", t33 = "";+= t1[0]; t22 += t2[0]; t33 += t3[0];= t11.ToUpperInvariant(); t22 = t22.ToUpperInvariant(); t33 = t33.ToUpperInvariant();= t11 + t1.Substring(1); t2 = t22 + t2.Substring(1); t3 = t33 + t3.Substring(1);q = "INSERT INTO [сотрудники] VALUES('" + t1 + "','" + t2 + "','" + t3 + "'," + textBox4.Text + ",'" + comboBox1.SelectedItem.ToString() + "','" + comboBox2.SelectedItem.ToString() + "','" + data + "','" + data2 + "',' ','нет');";i = new OleDbCommand(q, con);(i.ExecuteNonQuery() == 1).Show("добавлен новый сотрудник", "Изменение", MessageBoxButtons.OK,MessageBoxIcon.Information);.Show("ошибка", "Изменение", MessageBoxButtons.OK, MessageBoxIcon.Error);dt = new DataTable("[сотрудники]");= new OleDbDataAdapter("Select* From [сотрудники]", con);.Fill(dt);.Close();
}MessageBox.Show("не заполены поля", "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}(Exception ex)
{.Show(ex.ToString(),"ошибка",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}void button2_Click(object sender, EventArgs e)
{.Close();
}
}
}
Form3.cs
using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Data.OleDb;System.Drawing;System.Text;System.Windows.Forms;WindowsApplication1
{partial class Form3 : Form
{string t = "";I = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con;Form3()
{();= new OleDbConnection(I);.Open();Com3 = new OleDbCommand("SELECT сотрудники.фамилия, сотрудники.имя, сотрудники.отчество, сотрудники.номер_паспотрта FROM сотрудники;", con);(OleDbDataReader dr3 = Com3.ExecuteReader())
{(dr3.Read())
{.Items.Add(dr3.GetValue(0).ToString() + ' ' + dr3.GetValue(1).ToString() + ' ' + dr3.GetValue(2).ToString() + ' ' + dr3.GetValue(3).ToString());
}
}
}
void button2_Click(object sender, EventArgs e)
{.Close();
}void button1_Click(object sender, EventArgs e)
{
{del = "DELETE сотрудники.номер_паспотрта, сотрудники.фамилия, сотрудники.имя, сотрудники.отчество, сотрудники.ID_звания, сотрудники.дата_поступления_на_работу, сотрудники.ID_должности FROM сотрудники WHERE (((сотрудники.номер_паспотрта)=" + t + "));";insCom = new OleDbCommand(del, con);(insCom.ExecuteNonQuery() == 1)
{.Show("сотрудник удален", "удаление", MessageBoxButtons.OK);.Close();
}.Show("ошибка", "удаление", MessageBoxButtons.OK);
}(Exception e3)
{.Show(e3.ToString(), "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}void comboBox3_SelectedIndexChanged(object sender, EventArgse)
{d = "";= comboBox3.Text;fam = t.Substring(0, t.IndexOf(' '));= t.Substring(t.IndexOf(' ') + 1);im = t.Substring(0, t.IndexOf(' '));= t.Substring(t.IndexOf(' ') + 1);ot = t.Substring(0, t.IndexOf(' '));= t.Substring(t.IndexOf(' ') + 1);n = Convert.ToInt32(t);q = "select * from [сотрудники] where (((сотрудники.имя)='" + im + "') AND ((сотрудники.фамилия)='" + fam + "') AND ((сотрудники.отчество)='" + ot + "') AND ((сотрудники.номер_паспотрта)=" + n + ")) ;";C = new OleDbCommand(q, con);(OleDbDataReader dr = C.ExecuteReader())
{(dr.Read())
{(int i = 0; i
}
}.Visible = true;.Text = d;
}
}
}
Form4.cs
using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Data.OleDb;System.Drawing;System.Text;System.Windows.Forms;WindowsApplication1
{partial class Form4 : Form
{I = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con;Form4()
{();= new OleDbConnection(I);.Open();
}void button2_Click(object sender, EventArgs e)
{.Close();
}void button1_Click(object sender, EventArgs e)
{datAdap;[] a = new int[100];k = 0;Com = new OleDbCommand("SELECT [оклады].ID_должности FROM [оклады];", con);(OleDbDataReader dr = Com.ExecuteReader())
{(dr.Read())
{[k] = Convert.ToInt32(dr.GetValue(0));++;
}
}++;
{(textBox1.Text != "" && textBox2.Text != "")
{cifr = "0123456789";flag = 0;(int p = 0; p
{= 1;
}(flag == 1).Show("поле должность не должно содержать цифр", "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
{q = "INSERT INTO [оклады] VALUES(" + k + ",'" + textBox1.Text + "',"
+ textBox2.Text + ");";i = new OleDbCommand(q, con);(i.ExecuteNonQuery() == 1).Show("добавлена новая должность", "Изменение", MessageBoxButtons.OK, MessageBoxIcon.Information);.Show("ошибка", "Изменение", MessageBoxButtons.OK, MessageBoxIcon.Error);dt = new DataTable("[оклады]");= new OleDbDataAdapter("Select* From [оклады]", con);.Fill(dt);.Close();
}
}MessageBox.Show("не заполены поля", "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}(Exception ex)
{(ex.ToString().Contains("Отсутствует значение")).Show("поле оклад может содержать только численное значение", "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);.Show(ex.ToString(), "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}.csSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Data.OleDb;System.Drawing;System.Text;System.Windows.Forms;WindowsApplication1
{partial class Form5 : Form
{string t = "";I = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con;Form5()
{();= new OleDbConnection(I);.Open();Com1 = new OleDbCommand("SELECT [звания].звание FROM [звания];", con);(OleDbDataReader dr1 = Com1.ExecuteReader())
{(dr1.Read())
{.Items.Add(dr1.GetValue(0).ToString());
}
}Com2 = new OleDbCommand("SELECT [оклады].должность FROM [оклады];", con);(OleDbDataReader dr2 = Com2.ExecuteReader())
{(dr2.Read())
{.Items.Add(dr2.GetValue(0).ToString());
}
}Com3 = new OleDbCommand("SELECT сотрудники.фамилия, сотрудники.имя, сотрудники.отчество, сотрудники.номер_паспотрта FROM сотрудники;", con);(OleDbDataReader dr3 = Com3.ExecuteReader())
{(dr3.Read())
{.Items.Add(dr3.GetValue(0).ToString() + ' ' + dr3.GetValue(1).ToString() + ' ' + dr3.GetValue(2).ToString() + ' ' + dr3.GetValue(3).ToString());
}
}
}void button1_Click(object sender, EventArgs e)
{
{insCom = new OleDbCommand("UPDATE сотрудники SET сотрудники.звание = '" + comboBox2.Text + "', сотрудники.дата_присвоения_звания='"+dateTimePicker1.Value.ToShortDateString()+"' WHERE сотрудники.номер_паспотрта=" + textBox4.Text + ";", con);(insCom.ExecuteNonQuery() == 1)
{.Show("звание изменено", "изменение", MessageBoxButtons.OK);.Close();
}.Show("ошибка", "изменение", MessageBoxButtons.OK);
}(Exception e4)
{.Show(e4.ToString());
}
}void button3_Click(object sender, EventArgs e)
{.Close();
}void button2_Click(object sender, EventArgs e)
{u = "UPDATE [сотрудники] SET [сотрудники].должность = '" + comboBox4.Text + "' WHERE ((([сотрудники].номер_паспотрта)=" + textBox4.Text + "));";insCom = new OleDbCommand(u, con);(insCom.ExecuteNonQuery() == 1)
{.Show("должность изменена", "изменение", MessageBoxButtons.OK);.Close();
}.Show("ошибка", "изменение", MessageBoxButtons.OK);
}void comboBox3_SelectedIndexChanged(object sender, EventArgse)
{d = "";= comboBox3.Text;fam = t.Substring(0, t.IndexOf(' '));= t.Substring(t.IndexOf(' ')+1);im = t.Substring(0,t.IndexOf(' '));= t.Substring(t.IndexOf(' ') + 1);ot = t.Substring(0, t.IndexOf(' '));= t.Substring(t.IndexOf(' ') + 1);n = Convert.ToInt32(t);q = "select * from [сотрудники] where (((сотрудники.имя)='" + im + "') AND ((сотрудники.фамилия)='" + fam + "') AND ((сотрудники.отчество)='" + ot + "') AND ((сотрудники.номер_паспотрта)=" + n + ")) ;";C = new OleDbCommand(q, con);(OleDbDataReader dr = C.ExecuteReader())
{(dr.Read())
{(int i = 0; i
}
}.Visible = true;.Text = d;.Text = fam;.Text = im;.Text = ot;.Text = n.ToString();
}void button4_Click(object sender, EventArgs e)
{u = "UPDATE [сотрудники] SET [сотрудники].имя = '" + textBox2.Text + "', [сотрудники].фамилия = '" + textBox1.Text + "' , [сотрудники].отчество = '" + textBox3.Text + "', [сотрудники].номер_паспотрта = " + textBox4.Text + " WHERE (([сотрудники].номер_паспотрта)=" + t + ");";insCom = new OleDbCommand(u, con);(insCom.ExecuteNonQuery() == 1)
{.Show("личные данные сотрудника успешно изменены", "изменение", MessageBoxButtons.OK);.Close();
}.Show("ошибка", "изменение", MessageBoxButtons.OK);
}void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{.Value = DateTime.Now;
}
}
}
Form6.cs
using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Data.OleDb;System.Drawing;System.Text;System.Windows.Forms;WindowsApplication1
{partial class Form6 : Form
{I = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con;Form6()
{();= new OleDbConnection(I);.Open();Com = new OleDbCommand("SELECT [оклады].должность FROM [оклады];", con);(OleDbDataReader dr = Com.ExecuteReader())
{(dr.Read())
{.Items.Add(dr.GetValue(0).ToString());
}
}
}void button3_Click(object sender, EventArgs e)
{
{del = "DELETE * FROM оклады WHERE (((оклады.должность)='" + comboBox1.SelectedItem + "'));";insCom = new OleDbCommand(del, con);(insCom.ExecuteNonQuery() == 1)
{.Show("должность удалена", "удаление", MessageBoxButtons.OK);q = "Update сотрудники Set сотрудники.должность=' ' Where сотрудники.должность='" + comboBox1.Text + "';";cmd = new OleDbCommand(q, con);.ExecuteNonQuery();.Close();
}.Show("ошибка", "удаление", MessageBoxButtons.OK);
}(Exception e2)
{.Show(e2.ToString());
}
}void button1_Click(object sender, EventArgs e)
{.Close();
}
}
}
Form7.cs
using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Data.OleDb;System.Drawing;System.Text;System.Windows.Forms;WindowsApplication1
{partial class Form7 : Form
{I = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con;Form7()
{();= new OleDbConnection(I);.Open();Com = new OleDbCommand("SELECT [оклады].должность FROM [оклады];", con);(OleDbDataReader dr = Com.ExecuteReader())
{(dr.Read())
{.Items.Add(dr.GetValue(0).ToString());
}
}
}
void button4_Click(object sender, EventArgs e)
{
{insCom = new OleDbCommand("UPDATE оклады SET оклады.оклад = " + textBox3.Text + " WHERE оклады.должность='" + comboBox1.Text + "';", con);(insCom.ExecuteNonQuery() == 1)
{.Show("оклад изменен", "изменение", MessageBoxButtons.OK);.Close();
}.Show("ошибка", "изменение", MessageBoxButtons.OK);
}(Exception e1)
{.Show(e1.ToString(), "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}void comboBox1_SelectedIndexChanged(object sender, EventArgse)
{Com = new OleDbCommand("SELECT [оклады].оклад FROM [оклады] WHERE [оклады].должность='" + comboBox1.Text + "';", con);(OleDbDataReader dr = Com.ExecuteReader())
{(dr.Read())
{.Text = (dr.GetValue(0).ToString());
}
}
}void button1_Click(object sender, EventArgs e)
{.Close();
}
}
}
Form9.cs
using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Text;System.Windows.Forms;System.Data.SqlClient;System.Data.OleDb;System.Text.RegularExpressions;WindowsApplication1
{partial class Form9 : Form
{Form9()
{();
}void crystalReportViewer1_Load(object sender, EventArgs e)
{
}
}
}
Form10.cs
using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Text;System.Windows.Forms;CrystalDecisions.Shared;CrystalDecisions.CrystalReports.Engine;CrystalDecisions.Windows.Forms;System.Web.UI.WebControls;System.Data.OleDb;System.IO;System.Diagnostics;WindowsApplication1
{partial class Form10 : Form
{string id;static string Start = Application.StartupPath;Form10()
{();
}void crystalReportViewer1_Load(object sender, EventArgs e)
{I = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con = new OleDbConnection(I);.Open();da = new OleDbDataAdapter();dt = new DataTable();= new OleDbDataAdapter("SELECT сотрудники.фамилия, сотрудники.имя, сотрудники.отчество, сотрудники.звание, сотрудники.должность, сотрудники.дата_поступления_на_работу, сотрудники.стаж FROM сотрудники ", con);.Fill(dt);.Close();cr = new CrystalReport3();.SetDataSource(dt);.ReportSource = cr;
}
}
}