Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Технико-экономическая характеристика предметной области и предприятия

Содержание:

Введение

На современных предприятиях всего мира находится в наличии огромное количество разного вида оборудования (линии производства, принтера, компьютеры и т.д). Важным моментом функционирования любого такого предприятия является оперативный ремонт всего оборудования. Данную проблему решает служба технической поддержки предприятия. Услугами таких отделов пользуются довольно много людей. Для ежедневного и оперативного ведения информации о необходимости ремонта, заявках, клиентах и операторах службы, проста необходима современная автоматизированная информационная система, основанная на функциональном моделировании, моделировании данных. Использование такой информационной системы для работы с базой данных службы технической поддержки существенно уменьшит время обработки и обслуживания клиентов, что приведет к очевидной экономической выгоде внедрения ИС.

В такого рода отделах необходимо добавлять, удалять, обновлять и осуществлять поиск разнообразной информации о заявках на ремонт. Необходимо учесть клиентов отдела, операторов, другие отделы предприятия, дату, причину заявки и т.д.

Информация о заявках на обслуживание в такой базе данных должна быть полной, доступной и достаточной. Для определения факта появления заявки на обслуживания достаточно данных о клиенте, данных об операторе, отделе предприятия, причине обращения, даты обращения. Необходимо учесть, что среди элементов базы данных могут быть заявки с одинаковой причиной, поэтому у каждой заявки должен быть уникальный идентификационный шифр, в данном случае в качестве шифра используется идентификационный номер (ID номер) заявки.

Целью курсового проекта является проектирование и разработка информационной системы по автоматизация обработки обращений в службу технической поддержки. Внедрение данной информационный системы значительно облегчает, улучшает и совершенствует возможности по оказанию помощи службы технической поддержки.

Задачами курсового проекта являются:

  • Описание предметной области;
  • Рассмотрение этапов проектирования;
  • Создание проекта ИС;
  • Тестирование;
  • Создание инструкции по эксплуатации и т.д.

Объектом исследования данной курсовой работы является функционал современного отдела по оказанию технической поддержки. Предметом исследования является отдел, осуществляющий на предприятии функции технической поддержки.

1. Технико-экономическая характеристика предметной области и предприятия

1.1 Характеристика отдела и его деятельности

Проектирование АИС начнем с подробного рассмотрения и описания предметной области и определения основных объектов автоматизации.

В данном курсовом проекте в качестве объекта автоматизации, представляющего предметную область, является отдел технической помощи предприятия по производству продуктов питания «Лакамка».

Работа с клиентами отдела организована по такому правилу: у каждого клиента, пришедшего или позвонившего в отдел и желающего получить необходимую помощь, собираются некоторые личные данные – фамилия клиента, имя клиента, отчество клиента , адрес и телефон клиента, отдел который он представляет. После получения такого рода информации, оператор отдела выясняет у клиента, что случилась с его оборудованием, далее производится выяснение причины жалобы на предварительном уровне, далее оформляют заявка путем записи необходимых данных на бумажный носитель.

В случае если клиент и оператор достигли полного понимания проблемы, регистрируется факт заявки и фиксируется дата и причина заявки.

Заявки регистрируются в любом количестве.

Исходными источниками информации для решения поставленной задачи являются:

- общая информация о структуре предприятия;

- описание деятельности предприятия и его отделов;

- информация об деятельности и возможностях отдела технической поддержки предприятия.

Основными технико-экономическими показателями предприятия, на которые повлияет введение новой информационной системы отдела технической поддержки, являются, смотрите таблицу 1.

Таблица 1.1 - Характеристики предприятия

Характеристики

Значения показателя на определенную дату или период.

1

Время простоя оборудования

24ч

2

Время ремонта

24ч

3

Количество выпускаемой продукции

100шт

4

Затраты на ремонт оборудования

1000000 руб

5

Среднее количество рабочих чесов

6.7 часа

1.2 Организационная структура

Организационную структуру отдела технической поддержки предприятия представим на рисунке 1.

Рисунок 1.1 - Организационную структуру отдела технической поддержки

Возглавляет отдел начальник отдела, который руководит отделам и получает распоряжения от директора предприятия. У него в подчинении находятся операторы отдела - профессионалы которые осуществляют техническую помощь и секретари, которые осуществляют бумажную работу.

1.3 Выбор комплекса задач автоматизации и характеристика существующих бизнес процессов.

В качестве дополнения и на основании выше сказанного представим диаграмму действий, которая демонстрирует как происходило функционирование отдела технической поддержки до внедрения ИС.( См. рисунок 2.)

Рисунок 1.2 - Диаграмма действий "Как было"

В дополнении представим функциональную диаграмму IDEF0. (См. рисунок 3. ).

Рисунок 1.3 - Декомпозиция 1 уровня диаграммы IDEF0

Проведем декомпозицию второго и третьего уровня. (См. рисунки 4,5, 6 и 7. ).

Рисунок 1.4 - Декомпозиция 2 уровня диаграммы IDEF0

Рисунок 1.5 - Декомпозиция 3 уровня диаграммы IDEF0

Рисунок 1.6 - Декомпозиция 3 уровня диаграммы IDEF0

Рисунок 1.7 - Декомпозиция 3 уровня диаграммы IDEF0

Для грамотного выполнения курсовой работы, очень важно грамотно поставить цели и задачи.

Цель:

Целью текущей курсовой работы является проектирование и разработка информационной системы отдела технической поддержки. Внедрение данной информационный системы значительно облегчает, улучшает и совершенствует ведение данных об заявках, клиентах и операторах.

В рамках курсовой работы необходимо создать программный продукт, который будет реализовывать функционал современного отдела технической поддержки. Данное приложение очень актуально, так как позволяет систематизировать и собрать в себе всю информацию по данной теме, и далее, что очень важно, выдать эту информацию пользователю в нужном формате. Программный продукт новый, не имеет аналогов, эффективный, вполне подвержен модернизации, что увеличивает его привлекательность. Приложение простое и имеет интуитивно понятный интерфейс.

Построенная модель ИС «"Отдел технической поддержки"» должна отражать существенные стороны деятельности отдела. ИС должна содержать компьютерное приложение, реализующее следующие процессы:

  • Добавление, удаление, обновление и поиск информации о операторах
  • Добавление, удаление, обновление информации об отделах предприятия;
  • Добавление, удаление, обновление и поиск информации об клиентах;
  • Добавление, удаление, обновление и поиск информации об заявках;
  • Получение информации о заявках, поиск информации по клиенту;
  • Получение информации о заявках, поиск информации по оператору;
  • Получение информации о заявках, поиск информации по отделу;
  • Получение информации о заявках, поиск информации по дате;

Ожидаемый результат:

  • Спроектированная и реализованная база данных;
  • Программа реализующая основной функционал отдела.

2. Программное обеспечение задачи

2.1 Структура и состав комплекса

В данном разделе приведем иерархию функций управления и обработки данных, которые призваны автоматизировать разрабатываемый программный продукт. При этом можно выделить и детализировать два подмножества функций: реализующие служебные функции и реализующие основные функции управления и обработки данных: ввода первичной информации, обработки, ведения справочников, ответов на запросы и т.д. Смотрите рисунок 8.

Рисунок 2.1 - Иерархию функций управления и обработки данных

2.2 Характеристика базы данных

Очевидно, для решения поставленных задач, а также для осуществления функционирования будущего программного комплекса необходима хранилище данных в виде базы данных.

Основными целями проектирования базы данных являются:

- Представление данных и связей между ними, необходимых для всех основных областей применения данного приложения и любых существующих групп его пользователей;

- Создание модели данных, способной поддерживать выполнение любых требуемых транзакций обработки данных;

- Разработка предварительного варианта проекта, структура которого позволяет удовлетворить все основные требования, предъявляемые к производительности системы - например, ко времени реакции системы. При проектировании базы данных создаются два уровня модели - логический и физический. Логический уровень - это абстрактный взгляд на данные, на нем данные представляются так, как выглядят в реальном мире, и могут называться так, как они называются в реальном мире. Объекты модели, представляемые на логическом уровне, называются сущностями. Логический уровень модели данных может быть построен на основе другой модели, например, концептуальной модели данных.

На концептуальном уровне определяются основные сущности, сохраняемые в виде таблиц реляционной базы данных. В нашем случае к таким сущностям относятся сущности: Заявки, клиенты, операторы, отделы.

Для конфигурации базы данных компьютерного приложения по технической поддержке использовалось СУБД ACCESS. В рамках данной СУБД и на основании поставленной задачи была разработана БД "BD.mdb".

Рассмотрим ее структуру. Структуру таблиц смотрите в таблицах 2, 3, 4 и 5.

Таблица 2.1 - Структура записей таблицы "Клиенты"

Наименования поля

Идентификатор поля

Тип поля

Длина поля

Прочие

Код клиента

Id

Число

-

Ключевое поле

Имя клиента

Name

Строка

25

Адрес клиента

Adres

Строка

25

Телефон клиента

Tel

Строка

25

Таблица 2.2 - Структура записей таблицы "Операторы"

Наименования поля

Идентификатор поля

Тип поля

Длина поля

Прочие

Код оператора

Id

Число

-

Ключевое поле

Имя оператора

Name

Строка

25

Адрес оператора

Adres

Строка

25

Телефон оператора

Tel

Строка

25

Таблица 2.3 - Структура записей таблицы "Записи"

Наименования поля

Идентификатор поля

Тип поля

Длина поля

Прочие

Код записи

Id

Число

-

Ключевое поле

Код оператора

Id_admin

Число

-

Код клиента

Id_klient

Число

-

Код отдела

Id_otdela

Число

-

Дата

Data

Строка

25

Причина

Prichina

Строка

250

Таблица 2.4 - Структура записей таблицы "Отделы"

Наименования поля

Идентификатор поля

Тип поля

Длина поля

Прочие

Код отдела

Id

Число

-

Ключевое поле

Названия отдела

Name

Строка

25

Физическую модель БД представим на рисунке 9.

Рисунок 2.2 - Физическая модель БД

2.3 Описание программных модулей

В программном комплексе будут разработаны следующие модули, смотрите таблицу 6.

Таблица 2.5 - Программные модули системы

Наименование модуля

Функции модуля

1

Program.cs

Класс запуска

2

Model.cs

Класс моделей данных

3

BD.cs

Класс доступа к БД

4

Form_admin.cs

Класс для работы с данными об операторах

5

Form_klient.cs

Класс для работы с данными об клиентах

6

Form_otdel.cs

Класс для работы с данными об отделах

7

Form_zaavka.cs

Класс для работы с данными об заявках

8

Form1.cs

Класс стартового окна

9

Form_ot1.cs

Класс отчета по клиентам

10

Form_ot2.cs

Класс отчета по операторам

11

Form_ot3.cs

Класс отчета по отделам

12

Form_ot5.cs

Класс отчета по дате

Общую структурную схему программного комплекса представим на рисунке 10.

Рисунок 2.3 - Структурная схема ПО

После создания БД и выбора структур данных нужно предать динамичность проекту курсовой работы . В основу динамичности данного проекта лежат выполняемые в данном приложении функции. Функции могут быть простыми или сложными.

Приведем название и описание процедур и функций проекта:

  • Добавление, удаление, обновление и поиск информации о операторах
  • Добавление, удаление, обновление информации об отделах предприятия;
  • Добавление, удаление, обновление и поиск информации об клиентах;
  • Добавление, удаление, обновление и поиск информации об заявках;
  • Получение информации о заявках, поиск информации по клиенту;
  • Получение информации о заявках, поиск информации по оператору;
  • Получение информации о заявках, поиск информации по отделу;
  • Получение информации о заявках, поиск информации по дате;
  • и др.

Как упоминалось ранее алгоритмы могут быть простыми, а могут быть сложными, содержать в себе более простые процедуры и функции данного списка. В качестве примеров приведем диаграммы активностей и блок-схемы некоторых выше указанных алгоритмов.

Алгоритм обновления различных моделей рисунок 2.4.

Рисунок 2.4 - Алгоритм обновления

Алгоритм добавления модели рисунок 2.5.

Рисунок 2.5 - Алгоритм добавление модели

Удаление модели из БД рисунок 2.6.

Рисунок 2.6 - Алгоритм удаления модели

3 Контрольный пример реализации

При запуске программного комплекса запускается стартовое окно приложения, смотрите рисунок 3.1.

Рисунок 3.1 - Стартовое окно программы

С этого окна пользователь может перейти в окна для редактирование информации об клиентах(меню "Клиенты"), об операторах( меню "Оператор"), об отделах (меню "Отделы"), о заявках на обслуживания (кнопка "Заявки") и ознакомится с возможностями справочной службы(меню "Отчет"). В справочную службу входит заявки по клиентам, по операторам, по отделам, по дате и т.д.

Итак меню "Клиенты". Попадаем в окно вида, смотрите рисунок 3.2.

Рисунок 3.2 - Клиенты отдела

Здесь пользователь может добавить, удалить, обновить и найти информацию о клиентах отдела.

Итак меню "Операторы". Попадаем в окно вида, смотрите рисунок 3.3.

Рисунок 3.3 - Информация об операторах отдела

Здесь пользователь может добавить, удалить, обновить и найти информацию об операторах отдела.

Итак меню "Отделы". Попадаем в окно вида, смотрите рисунок 3.4.

Рисунок 3.4 - Отделы предприятия

Здесь пользователь может добавить, удалить, обновить и найти информацию об отделах предприятия.

Итак меню "Отчет" далее "По клиентам". Попадаем в окно вида, смотрите рисунок 3.5.

Рисунок 3.5 - Информация о заявках по клиентам

Здесь пользователь может посмотреть необходимую информацию.

Итак меню "Отчет" далее "По оператору". Попадаем в окно вида, смотрите рисунок 3.6.

Рисунок 3.6 - Информация о заявках по оператору

Здесь пользователь может посмотреть необходимую информацию.

Итак меню "Отчет" далее "По отделу". Попадаем в окно вида, смотрите рисунок 3.7.

Рисунок 3.7 - Информация о заявках по отделу

Здесь пользователь может посмотреть необходимую информацию.

Итак меню "Отчет" далее "По дате". Попадаем в окно вида, смотрите рисунок 3.8.

Рисунок 3.8 - Информация о заявках по дате

Здесь пользователь может посмотреть необходимую информацию.

Итак кнопка "Заявки". Попадаем в окно вида, смотрите рисунок 3.9.

Рисунок 3.9 - Заявки на обслуживание

Здесь пользователь может добавить, удалить, обновить и найти информацию о заявках на обслуживание техники.

Заключение

В результате выполнения курсовой работы был достаточно подробно изучен язык программирования C#, находящийся на платформе Visio Studio. Конкретно платформа Windows Form С#.

В качестве хранилища данных использовалась БД и СУБД ACCESS.

В процессе разработки коды программы распределялись по файлам. Данный подход закрепил умения и навыки автора по модульному программированию.

В результате оформления ПЗ курсовой работы были закреплены навыки построения алгоритмов в виде блок-схем и диаграмм активностей.

В результате выполнения данной курсовой работы был разработан программный комплекс «Служба технической поддержки». Данное программное обеспечение выполняет следующие функции:

  • Добавление, удаление, обновление и поиск информации о операторах
  • Добавление, удаление, обновление информации об отделах предприятия;
  • Добавление, удаление, обновление и поиск информации об клиентах;
  • Добавление, удаление, обновление и поиск информации об заявках;
  • Получение информации о заявках, поиск информации по клиенту;
  • Получение информации о заявках, поиск информации по оператору;
  • Получение информации о заявках, поиск информации по отделу;
  • Получение информации о заявках, поиск информации по дате;
  • и др.

Программа проста для установки и имеет интуитивно понятный графический интерфейс. Программный комплекс актуален и может устанавливаться на всех ПК.

Список литературы

1. Агуров П.А. С#. Разработка компонентов в MS Visual Studio 2008/2010.СПб.: БХВ –Петербург, 2008. 480с.

2. Марченко А.Л. C#. Введение в программирование. Учебное пособие. М.: МГУ им. М.В. Ломоносова ,2005. 317с.  

3. Биллиг В.А. Основы программирования на C#//Учебное пособие. 2005. URL:http://www.intuit.ru/department/pl/csharp

Приложение А

Структура данных

using System;

using System.Collections.Generic;

using System.Linq;

using System.Security.Cryptography.X509Certificates;

using System.Text;

using System.Threading.Tasks;

namespace Nag

{

class zaavka //1 model

{

int id;

public int Id

{

get { return id; }

set { id = value; }

}

int id_admin;

public int Id_admin

{

get { return id_admin; }

set { id_admin = value; }

}

int id_klient;

public int Id_klient

{

get { return id_klient; }

set { id_klient = value; }

}

int id_otdel;

public int Id_otdel

{

get { return id_otdel; }

set { id_otdel = value; }

}

string data;

public string Data

{

get { return data; }

set { data = value; }

}

string prichina;

public string Prichina

{

get { return prichina; }

set { prichina = value; }

}

}

class admin //2 model

{

private int id;

public int Id

{

get { return id; }

set { id = value; }

}

string name;

public string Name

{

get { return name; }

set { name = value; }

}

string tel;

public string Tel

{

get { return tel; }

set { tel = value; }

}

string adres;

public string Adres

{

get { return adres; }

set { adres = value; }

}

}

class klient //3 model

{

private int id;

public int Id

{

get { return id; }

set { id = value; }

}

string name;

public string Name

{

get { return name; }

set { name = value; }

}

string tel;

public string Tel

{

get { return tel; }

set { tel = value; }

}

string adres;

public string Adres

{

get { return adres; }

set { adres = value; }

}

}

class otdel //5 model

{

int id;

public int Id

{

get { return id; }

set { id = value; }

}

string name;

public string Name

{

get { return name; }

set { name = value; }

}

}

class inf

{

int id;

public int Id

{

get { return id; }

set { id = value; }

}

string name_klient;

public string Name_klient

{

get { return name_klient; }

set { name_klient = value; }

}

string tel_klient;

public string Tel_klient

{

get { return tel_klient; }

set {tel_klient = value; }

}

string name_admin;

public string Name_admin

{

get { return name_admin; }

set { name_admin = value; }

}

string name_otdel;

public string Name_otdel

{

get { return name_otdel; }

set { name_otdel = value; }

}

string data;

public string Data

{

get { return data; }

set { data = value; }

}

string prichina;

public string Prichina

{

get { return prichina; }

set { prichina = value; }

}

}

}

Приложение Б

Доступ к БД

using System;

using System.Collections.Generic;

using System.Data;

using System.Data.OleDb;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Nag

{

internal class BD

{

private OleDbConnection connection;

private OleDbCommand command;

private void ConnectTo()

{

connection = new OleDbConnection(@"provider=Microsoft.Jet.OLEDB.4.0; data source=BD.mdb");

command = connection.CreateCommand();

}

public BD()

{

ConnectTo();

}

//otdel

public void Inser_otdel(otdel zad)

{

try

{

command.CommandText = "INSERT INTO otdel (Name) VALUES('" + zad.Name + "')";

command.CommandType = CommandType.Text;

connection.Open();

command.ExecuteNonQuery();

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public void Update_otdel(otdel st, otdel now)

{

try

{

command.CommandText = "UPDATE otdel SET Name = '" + now.Name + "' WHERE ID =" + st.Id;

command.CommandType = CommandType.Text;

connection.Open();

command.ExecuteNonQuery();

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public List<otdel> Fill_otdel()

{

List<otdel> spisok = new List<otdel>();

try

{

command.CommandText = "SELECT * FROM otdel";

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

otdel zad = new otdel();

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Name = reader["Name"].ToString();

spisok.Add(zad);

}

return spisok;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null)

{

connection.Close();

}

}

}

public void Delete(string Id, string tab) //Удаление!!!!!!!!!!!!!!!!!!!!

{

try

{

command.CommandText = "DELETE FROM " + tab + " WHERE ID= " + Id;

command.CommandType = CommandType.Text;

connection.Open();

command.ExecuteNonQuery();

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public List<otdel> Fill_otdel_Id(String tab)

{

List<otdel> spisok = new List<otdel>();

try

{

command.CommandText = "SELECT * FROM otdel WHERE Id = " + tab;

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

otdel zad = new otdel();

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Name = reader["Name"].ToString();

spisok.Add(zad);

}

return spisok;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public List<otdel> Fill_otdel_Name(String tab)

{

List<otdel> spisok = new List<otdel>();

try

{

command.CommandText = "SELECT * FROM otdel WHERE Name = " + tab;

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

otdel zad = new otdel();

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Name = reader["Name"].ToString();

spisok.Add(zad);

}

return spisok;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public otdel Get_otdel_Id(String tab)

{

otdel zad = new otdel();

try

{

command.CommandText = "SELECT * FROM otdel WHERE Id = " + tab;

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Name = reader["Name"].ToString();

}

return zad;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public otdel Get_otdel_Name(String tab)

{

otdel zad = new otdel();

try

{

command.CommandText = "SELECT * FROM otdel WHERE Name = '" + tab + "'";

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Name = reader["Name"].ToString();

}

return zad;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

// admin

public void Inser_admin(admin zad)

{

try

{

command.CommandText = "INSERT INTO admin (Name,Tel,Adres) VALUES('" + zad.Name + "', '" + zad.Tel + "', '" + zad.Adres + "')";

command.CommandType = CommandType.Text;

connection.Open();

command.ExecuteNonQuery();

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public List<admin> Fill_admin()

{

List<admin> spisok = new List<admin>();

try

{

command.CommandText = "SELECT * FROM admin";

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

admin zad = new admin();

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Name = reader["Name"].ToString();

zad.Tel =reader["Tel"].ToString();

zad.Adres = reader["Adres"].ToString();

spisok.Add(zad);

}

return spisok;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null)

{

connection.Close();

}

}

}

public admin Get_admin_name(String id)

{

admin zad = new admin();

try

{

command.CommandText = "SELECT * FROM admin WHERE Name = '" + id + "'";

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Name = reader["Name"].ToString();

zad.Tel = reader["Tel"].ToString();

zad.Adres = reader["Adres"].ToString();

}

return zad;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public List<admin> Fill_admin_name(String tab)

{

List<admin> spisok = new List<admin>();

try

{

command.CommandText = "SELECT * FROM admin WHERE Name = '" + tab + " '";

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

admin zad = new admin();

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Name = reader["Name"].ToString();

zad.Tel = reader["Tel"].ToString();

zad.Adres = reader["Adres"].ToString();

spisok.Add(zad);

}

return spisok;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public void Update_admin(admin st, admin now)

{

try

{

command.CommandText = "UPDATE admin SET Name = '" + now.Name + "',Tel ='" + now.Tel + "',Adres ='" + now.Adres + "' WHERE ID =" + st.Id;

command.CommandType = CommandType.Text;

connection.Open();

command.ExecuteNonQuery();

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public admin Get_admin_id(String id)

{

admin zad = new admin();

try

{

command.CommandText = "SELECT * FROM admin WHERE Id = " + id;

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Name = reader["Name"].ToString();

zad.Tel = reader["Tel"].ToString();

zad.Adres = reader["Adres"].ToString();

}

return zad;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

//Klient

public void Inser_klient(klient zad)

{

try

{

command.CommandText = "INSERT INTO Klient (Name,Tel,Adres) VALUES('" + zad.Name + "', '" + zad.Tel + "', '" + zad.Adres + "')";

command.CommandType = CommandType.Text;

connection.Open();

command.ExecuteNonQuery();

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public List<klient> Fill_klient()

{

List<klient> spisok = new List<klient>();

try

{

command.CommandText = "SELECT * FROM Klient";

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

klient zad = new klient();

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Name = reader["Name"].ToString();

zad.Tel = reader["Tel"].ToString();

zad.Adres = reader["Adres"].ToString();

spisok.Add(zad);

}

return spisok;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null)

{

connection.Close();

}

}

}

public klient Get_klient_name(String id)

{

klient zad = new klient();

try

{

command.CommandText = "SELECT * FROM Klient WHERE Name = '" + id + "'";

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Name = reader["Name"].ToString();

zad.Tel = reader["Tel"].ToString();

zad.Adres = reader["Adres"].ToString();

}

return zad;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public List<klient> Fill_klient_name(String tab)

{

List<klient> spisok = new List<klient>();

try

{

command.CommandText = "SELECT * FROM Klient WHERE Name = '" + tab + " '";

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

klient zad = new klient();

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Name = reader["Name"].ToString();

zad.Tel = reader["Tel"].ToString();

zad.Adres = reader["Adres"].ToString();

spisok.Add(zad);

}

return spisok;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public void Update_klient(klient st, klient now)

{

try

{

command.CommandText = "UPDATE Klient SET Name = '" + now.Name + "',Tel ='" + now.Tel + "',Adres ='" + now.Adres + "' WHERE ID =" + st.Id;

command.CommandType = CommandType.Text;

connection.Open();

command.ExecuteNonQuery();

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public klient Get_klient_id(String id)

{

klient zad = new klient();

try

{

command.CommandText = "SELECT * FROM Klient WHERE Id = " + id;

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Name = reader["Name"].ToString();

zad.Tel = reader["Tel"].ToString();

zad.Adres = reader["Adres"].ToString();

}

return zad;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

//zaavka

public void Inser_zaavka(zaavka zad)

{

try

{

command.CommandText = "INSERT INTO zaavka (Id_admin,Id_klient,Id_otdel,Data,Prichina) VALUES('" + zad.Id_admin + "', '" + zad.Id_klient + "', '" + zad.Id_otdel + "', '" + zad.Data + "', '" + zad.Prichina + "')";

command.CommandType = CommandType.Text;

connection.Open();

command.ExecuteNonQuery();

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public void Update_zaavka(zaavka st,zaavka now)

{

try

{

command.CommandText = "UPDATE zaavka SET Id_admin = '" + now.Id_admin + "',Id_klient ='" + now.Id_klient + "',Id_otdel ='" + now.Id_otdel + "',Data ='" + now.Data + "',Prichina ='" + now.Prichina+"' WHERE ID =" + st.Id;

command.CommandType = CommandType.Text;

connection.Open();

command.ExecuteNonQuery();

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public List<zaavka> Fill_zaavka()

{

List<zaavka> spisok = new List<zaavka>();

try

{

command.CommandText = "SELECT * FROM zaavka";

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

zaavka zad = new zaavka();

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Id_admin = Convert.ToInt32(reader["Id_admin"].ToString());

zad.Id_klient = Convert.ToInt32(reader["Id_klient"].ToString());

zad.Id_otdel = Convert.ToInt32(reader["Id_otdel"].ToString());

zad.Data= reader["Data"].ToString();

zad.Prichina= reader["Prichina"].ToString();

spisok.Add(zad);

}

return spisok;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null)

{

connection.Close();

}

}

}

public List<zaavka> Fill_zaavka_idadmin(String tab)

{

List<zaavka> spisok = new List<zaavka>();

try

{

command.CommandText = "SELECT * FROM zaavka WHERE Id_admin = " + tab;

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

zaavka zad = new zaavka();

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Id_admin = Convert.ToInt32(reader["Id_admin"].ToString());

zad.Id_klient = Convert.ToInt32(reader["Id_klient"].ToString());

zad.Id_otdel = Convert.ToInt32(reader["Id_otdel"].ToString());

zad.Data = reader["Data"].ToString();

zad.Prichina = reader["Prichina"].ToString();

spisok.Add(zad);

}

return spisok;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public List<zaavka> Fill_zaavka_idklient(String tab)

{

List<zaavka> spisok = new List<zaavka>();

try

{

command.CommandText = "SELECT * FROM zaavka WHERE Id_klient = " + tab;

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

zaavka zad = new zaavka();

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Id_admin = Convert.ToInt32(reader["Id_admin"].ToString());

zad.Id_klient = Convert.ToInt32(reader["Id_klient"].ToString());

zad.Id_otdel = Convert.ToInt32(reader["Id_otdel"].ToString());

zad.Data = reader["Data"].ToString();

zad.Prichina = reader["Prichina"].ToString();

spisok.Add(zad);

}

return spisok;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public List<zaavka> Fill_zaavka_id_otdel(String tab)

{

List<zaavka> spisok = new List<zaavka>();

try

{

command.CommandText = "SELECT * FROM zaavka WHERE Id_otdel = " + tab;

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

zaavka zad = new zaavka();

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Id_admin = Convert.ToInt32(reader["Id_admin"].ToString());

zad.Id_klient = Convert.ToInt32(reader["Id_klient"].ToString());

zad.Id_otdel = Convert.ToInt32(reader["Id_otdel"].ToString());

zad.Data = reader["Data"].ToString();

zad.Prichina = reader["Prichina"].ToString();

spisok.Add(zad);

}

return spisok;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public zaavka Get_zaavka_idadmin(String tab)

{

zaavka zad = new zaavka();

try

{

command.CommandText = "SELECT * FROM zaavka WHERE Id_admin = " + tab;

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Id_admin = Convert.ToInt32(reader["Id_admin"].ToString());

zad.Id_klient = Convert.ToInt32(reader["Id_klient"].ToString());

zad.Id_otdel = Convert.ToInt32(reader["Id_otdel"].ToString());

zad.Data = reader["Data"].ToString();

zad.Prichina = reader["Prichina"].ToString();

}

return zad;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public zaavka Get_zaavka_idklient(String tab)

{

zaavka zad = new zaavka();

try

{

command.CommandText = "SELECT * FROM zaavka WHERE Id_klient = " + tab;

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Id_admin = Convert.ToInt32(reader["Id_admin"].ToString());

zad.Id_klient = Convert.ToInt32(reader["Id_klient"].ToString());

zad.Id_otdel = Convert.ToInt32(reader["Id_otdel"].ToString());

zad.Data = reader["Data"].ToString();

zad.Prichina = reader["Prichina"].ToString();

}

return zad;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public zaavka Get_zaavka_id_otdel(String tab)

{

zaavka zad = new zaavka();

try

{

command.CommandText = "SELECT * FROM zaavka WHERE Id_otdel = " + tab;

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Id_admin = Convert.ToInt32(reader["Id_admin"].ToString());

zad.Id_klient = Convert.ToInt32(reader["Id_klient"].ToString());

zad.Id_otdel = Convert.ToInt32(reader["Id_otdel"].ToString());

zad.Data = reader["Data"].ToString();

zad.Prichina = reader["Prichina"].ToString();

}

return zad;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); }

}

}

public List<zaavka> Fill_zaavka_data(String tab)

{

List<zaavka> spisok = new List<zaavka>();

try

{

command.CommandText = "SELECT * FROM zaavka WHERE Data = '" + tab+"'";

command.CommandType = CommandType.Text;

connection.Open();

OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())

{

zaavka zad = new zaavka();

zad.Id = Convert.ToInt32(reader["Id"].ToString());

zad.Id_admin = Convert.ToInt32(reader["Id_admin"].ToString());

zad.Id_klient = Convert.ToInt32(reader["Id_klient"].ToString());

zad.Id_otdel = Convert.ToInt32(reader["Id_otdel"].ToString());

zad.Data = reader["Data"].ToString();

zad.Prichina = reader["Prichina"].ToString();

spisok.Add(zad);

}

return spisok;

}

catch (Exception)

{

throw;

}

finally

{

if (connection != null) { connection.Close(); } } } }}

Приложение В

Форма заявки на обслуживание

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Drawing.Drawing2D;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Nag

{

public partial class Form_zaavka : Form

{

public Form_zaavka()

{

InitializeComponent();

}

private void выходToolStripMenuItem_Click(object sender, EventArgs e)

{

this.Close();

}

private void Form_nag_Load(object sender, EventArgs e)

{

GraphicsPath gPath = new GraphicsPath();

Rectangle rect = new Rectangle(0, 0, 900, 600);

gPath.AddRectangle(rect);

this.Region = new Region(gPath);

textBox_dataa.Text = DateTime.Now.ToString("dd/MM");

//extBox_nn.Text = DateTime.Now.ToString("dd/MM");

textBox_dataaa.Text = DateTime.Now.ToString("dd/MM");

// textBox_dataa_ocon.Text = DateTime.Now.ToString("dd/MM");

next();

klient_sp();

admin_sp();

ot_sp();

}

private void next()

{

BD bd = new BD();

List<zaavka> spisok = new List<zaavka>();

spisok = bd.Fill_zaavka();

spisok.Sort(delegate(zaavka us1, zaavka us2) { return us1.Data.CompareTo(us2.Data); });

dataGridView1.DataSource = spisok;

dataGridView1.Columns[0].HeaderText = "Номер";

dataGridView1.Columns[1].HeaderText = "Оператор";

dataGridView1.Columns[2].HeaderText = "Клиент";

dataGridView1.Columns[3].HeaderText = "Отдел";

dataGridView1.Columns[4].HeaderText = "Дата";

dataGridView1.Columns[5].HeaderText = "Причина";

}

private void admin_sp()

{

BD bd = new BD();

List<admin> spisok = new List<admin>();

spisok = bd.Fill_admin();

foreach (admin kot in spisok)

{

comboBox_op.Items.Add(kot.Name);

comboBox_opp.Items.Add(kot.Name);

}

}

private void klient_sp()

{

BD bd = new BD();

List<klient> spisok = new List<klient>();

spisok = bd.Fill_klient();

foreach (klient kot in spisok)

{

comboBox_klient.Items.Add(kot.Name);

comboBox_klientt.Items.Add(kot.Name);

}

}

private void ot_sp()

{

BD bd = new BD();

List<otdel> spisok = new List<otdel>();

spisok = bd.Fill_otdel();

foreach (otdel kot in spisok)

{

comboBox_ot.Items.Add(kot.Name);

comboBox_ott.Items.Add(kot.Name);

}

}

private void button2_Click(object sender, EventArgs e)

{

Form_admin inf = new Form_admin();

this.Hide();

inf.ShowDialog();

this.Show();

comboBox_op.Items.Clear();

comboBox_opp.Items.Clear();

admin_sp();

}

private void button5_Click(object sender, EventArgs e)

{

Form_klient inf = new Form_klient();

this.Hide();

inf.ShowDialog();

this.Show();

comboBox_klient.Items.Clear();

comboBox_klientt.Items.Clear();

klient_sp();

}

private void button3_Click(object sender, EventArgs e)

{

Form_otdel inf = new Form_otdel();

this.Hide();

inf.ShowDialog();

this.Show();

comboBox_ot.Items.Clear();

comboBox_ott.Items.Clear();

ot_sp();

}

private void button4_Click(object sender, EventArgs e)

{

if (comboBox_op.Text == "" || comboBox_klient.Text == "" || comboBox_ot.Text == "" || textBox_dataa.Text == "" || textBox_prr.Text == "")

{

MessageBox.Show("Заполните поля данных!!!");

}

else

{

BD bd = new BD();

zaavka z = new zaavka();

z.Id_admin = bd.Get_admin_name(comboBox_op.Text).Id;

z.Id_klient = bd.Get_klient_name(comboBox_klient.Text).Id;

z.Id_otdel = bd.Get_otdel_Name(comboBox_ot.Text).Id;

z.Data = textBox_dataa.Text;

z.Prichina = textBox_prr.Text;

try

{

bd.Inser_zaavka(z);

textBox_prr.Text = "";

next();

MessageBox.Show("Успешно!!!");

}

catch (FormatException)

{ MessageBox.Show("Ошибка!"); }

}

}

private void button_delete_Click(object sender, EventArgs e)

{

if (textBox_id.Text == "")

{

MessageBox.Show("Заполните поля!!!");

}

else

{

BD bd = new BD();

bd.Delete(textBox_id.Text, "zaavka");

next();

}

}

private void button10_Click(object sender, EventArgs e)

{

Form_admin inf = new Form_admin();

this.Hide();

inf.ShowDialog();

this.Show();

comboBox_op.Items.Clear();

comboBox_opp.Items.Clear();

admin_sp();

}

private void button8_Click(object sender, EventArgs e)

{

Form_klient inf = new Form_klient();

this.Hide();

inf.ShowDialog();

this.Show();

comboBox_klient.Items.Clear();

comboBox_klientt.Items.Clear();

klient_sp();

}

private void button9_Click(object sender, EventArgs e)

{

Form_otdel inf = new Form_otdel();

this.Hide();

inf.ShowDialog();

this.Show();

comboBox_ot.Items.Clear();

comboBox_ott.Items.Clear();

ot_sp();

}

private void button1_Click(object sender, EventArgs e)

{

if (textBox_FIO.Text == "")

{

MessageBox.Show("Заполните поля поиска!!!");

}

else

{

if (radioButton1.Checked == true)

{

BD bd = new BD();

admin spisok= new admin();

spisok = bd.Get_admin_name(textBox_FIO.Text);

List<zaavka> sp = new List<zaavka>();

sp = bd.Fill_zaavka_idadmin(spisok.Id.ToString());

dataGridView1.DataSource = sp;

}

if (radioButton2.Checked == true)

{

BD bd = new BD();

klient spisok = new klient();

spisok = bd.Get_klient_name(textBox_FIO.Text);

List<zaavka> sp = new List<zaavka>();

sp = bd.Fill_zaavka_idklient(spisok.Id.ToString());

dataGridView1.DataSource = sp;

}

if (radioButton3.Checked == true)

{

BD bd = new BD();

otdel spisok = new otdel();

spisok = bd.Get_otdel_Name(textBox_FIO.Text);

List<zaavka> sp = new List<zaavka>();

sp = bd.Fill_zaavka_id_otdel(spisok.Id.ToString());

dataGridView1.DataSource = sp;

}

if (radioButton4.Checked == true)

{

BD bd = new BD();

List<zaavka> sp = new List<zaavka>();

sp = bd.Fill_zaavka_data(textBox_FIO.Text);

dataGridView1.DataSource = sp;

}

}

}

private void dataGridView1_SelectionChanged(object sender, EventArgs e)

{

textBox_id.Text = dataGridView1[0, dataGridView1.CurrentRow.Index].Value.ToString();

textBox_idd.Text = dataGridView1[0, dataGridView1.CurrentRow.Index].Value.ToString();

BD bd = new BD();

textBox_op.Text = bd.Get_admin_id(dataGridView1[1, dataGridView1.CurrentRow.Index].Value.ToString()).Name;

textBox_klient.Text = bd.Get_klient_id(dataGridView1[2, dataGridView1.CurrentRow.Index].Value.ToString()).Name;

textBox_ot.Text = bd.Get_otdel_Id(dataGridView1[3, dataGridView1.CurrentRow.Index].Value.ToString()).Name.ToString();

textBox_data.Text = (dataGridView1[4, dataGridView1.CurrentRow.Index]).Value.ToString();

textBox_pr.Text = (dataGridView1[5, dataGridView1.CurrentRow.Index]).Value.ToString();

textBox_prrr.Text = (dataGridView1[5, dataGridView1.CurrentRow.Index]).Value.ToString();

textBox_dataaa.Text = (dataGridView1[4, dataGridView1.CurrentRow.Index]).Value.ToString();

comboBox_opp.Text = bd.Get_admin_id(dataGridView1[1, dataGridView1.CurrentRow.Index].Value.ToString()).Name;

comboBox_klientt.Text = bd.Get_klient_id(dataGridView1[2, dataGridView1.CurrentRow.Index].Value.ToString()).Name;

comboBox_ott.Text = bd.Get_otdel_Id(dataGridView1[3, dataGridView1.CurrentRow.Index].Value.ToString()).Name.ToString();

}

private void button_update_Click(object sender, EventArgs e)

{

if (textBox_idd.Text == "" || comboBox_ott.Text == "" || comboBox_klientt.Text == "" || comboBox_opp.Text == "" || textBox_dataaa.Text == "" || textBox_prrr.Text == "" )

{

MessageBox.Show("Заполните поля данных!!!");

}

else

{

BD bd = new BD();

zaavka z = new zaavka();

zaavka tek = new zaavka();

z.Id_admin = bd.Get_admin_name(comboBox_opp.Text).Id;

z.Id_klient = bd.Get_klient_name(comboBox_klientt.Text).Id;

z.Id_otdel = bd.Get_otdel_Name(comboBox_ott.Text).Id;

z.Data = textBox_dataaa.Text;

z.Prichina = textBox_prrr.Text;

tek.Id = Convert.ToInt32(textBox_idd.Text);

try

{

bd.Update_zaavka(tek, z);

next();

}

catch (FormatException)

{ MessageBox.Show("Ошибка!"); }

}

}

private void tabPage2_Click(object sender, EventArgs e)

{

}

private void бДToolStripMenuItem_Click(object sender, EventArgs e)

{

next();

}

}

}