Диплом: Автоматизация приема и обработки заявок отделом техподдержки ООО "НТЦ ФСК ЕЭС"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
18. Майоров А.А. Проектирование информационных систем /А.А.Майоров. М.:
Бином, 2013. – 400 с.
19. Мельников В.В. Бизнес-архитектура компании /В.В. Мельников М.:
Академия, 2013. – 366 с.
20. Мучной Ж.П. Основы разработки автоматизированных информационных
систем. М.: Знание, 2015. – 145 с.
21. Мухин К.А. Проектирование баз данных, М.: Горячая линия – Телеком, 2013.
– 240 с.
22. Титоренко Г.А. Расчет экономической эффективности. М.: ЮНИТИ, 2010. –
400 с.
23. Чердаков Л.А. Использование IDEF-технологий при проектировании ИС. —
М.: Финансы и статистика, 2014. — 188 с.
24. Шаульский Н.М. Расчет экономической эффективности. – М.: Высшее
образование, 2014. – 274 с.
25. PostgreeSQL [Электронный ресурс]. – Электрон. дан. – Режим доступа:
http://www.postgreesql.com
26. My Sql [Электронный ресурс]. – Электрон. дан. – Режим доступа:
http://www.mysql.com
27. MS SQL Server [Электронный ресурс]. – Электрон. дан. – Режим доступа:
http://www.mssqlserver.com
28. Embarcadero RAD Studio [Электронный ресурс]. – Электрон. дан. – Режим
доступа: http://www.embarcadero.com.
29. Visual Studio [Электронный ресурс]. – Электрон. дан. – Режим доступа:
http://www.microsoft.com
Приложение А. Фрагменты исходного кода
Модуль авторизации
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HDesk
{
public partial class FormAuth : Form
{
public FormAuth()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form1 f = new Form1();
f.StartPosition = FormStartPosition.CenterScreen;
f.LoadUser();
f.Show();
this.Hide();
}
private void button2_Click(object sender, EventArgs e)
{
LoadData();
this.пользовательTableAdapter.Fill(this.deskDataSet.Пользователь);
DataRow[] dr = deskDataSet.Пользователь.Select("Логин='" + textBox1.Text
+ "' and Пароль='" + textBox2.Text + "' and Оператор=true");
if (dr!=null && dr.Length>0)
{
Form1 f = new Form1();
f.StartPosition = FormStartPosition.CenterScreen;
f.LoadOperator();
f.Show();
this.Hide();
}
else
{
MessageBox.Show("Неверный логин или пароль");
}
}
public void LoadData()
{
if (File.Exists("settings.ini"))
{
//получаем данные из файла settings.ini в массив строк
string[] strok = File.ReadAllLines("settings.ini");
//если файл есть и не пустой, значит массив будет не пустой и
считываем данные
if (strok != null)
{
//переменная неопределеннного типа для доступа к файлу app.config,
который содржит все настройки проекта
var config =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// ищем секцию connectionStrings, которая содержит инфоормацию о
подключенияъх к БД, их может быть много
var connectionStringsSection =
(ConnectionStringsSection)config.GetSection("connectionStrings");
//получаем нашу строку подключения с именем
Propusk.Properties.Settings.propuskConnectionString и присватваем ей значение из
переменной, полученной из файла
//чтобы подключить бд
string[] ss = strok[0].Split(';');
string cc = "Data Source = " + ss[0] + "; Initial Catalog = " + ss[1] + ";
Integrated Security = True";
connectionStringsSection.ConnectionStrings["HDesk.Properties.Settings.deskConnectionStri
ng"].ConnectionString = cc;
config.Save();// сохранение файла app.config
ConfigurationManager.RefreshSection("connectionStrings");//обновление секции
connectionStrings, чтобы изменения вступили в силу
}
else
{
MessageBox.Show("Настройте подключение к БД", "",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
private void FormAuth_Load(object sender, EventArgs e)
{
}
private void button4_Click(object sender, EventArgs e)
{
LoadData();
this.пользовательTableAdapter.Fill(this.deskDataSet.Пользователь);
DataRow[] dr = deskDataSet.Пользователь.Select("Логин='" + textBox1.Text
+ "' and Пароль='" + textBox2.Text + "' and Исполнитель=true");
if (dr != null && dr.Length > 0)
{
deskDataSet.ПользовательRow r = (deskDataSet.ПользовательRow) dr[0];
if (r.IsИсполнительNull() || r.Исполнитель==false)
{
MessageBox.Show("Неверный логин или пароль");
}
Form1 f = new Form1();
f.StartPosition = FormStartPosition.CenterScreen;
f.id_isp = r.Код_пользователя;
f.LoadIsp();
f.Show();
this.Hide();
}
else
{
MessageBox.Show("Неверный логин или пароль");
}
}
private void button3_Click(object sender, EventArgs e)
{
if (textBox3.Text!="admin")
{
MessageBox.Show("Неверный пароль");
return;
}
FormAdmin f = new FormAdmin();
f.StartPosition = FormStartPosition.CenterScreen;
f.ShowDialog();
}
}
}
Главная форма
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HDesk
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public bool user = false;
public bool isp = false;
public bool op = false;
public int id_isp=-1;
/// <summary>
/// загрузить как пользователя
/// </summary>
public void LoadUser()
{
user = true;
LoadData();
this.пользовательTableAdapter.Fill(this.deskDataSet.Пользователь);
// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Исполнитель". При необходимости она может быть перемещена или
удалена.
// this.исполнительTableAdapter.Fill(this.deskDataSet.Исполнитель);
// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Статус". При необходимости она может быть перемещена или удалена.
this.статусTableAdapter.Fill(this.deskDataSet.Статус);
// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Заявка". При необходимости она может быть перемещена или удалена.
this.заявкаTableAdapter.Fill(this.deskDataSet.Заявка);
// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Инцидент". При необходимости она может быть перемещена или удалена.
this.инцидентTableAdapter.Fill(this.deskDataSet.Инцидент);
// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Приоритет". При необходимости она может быть перемещена или
удалена.
this.приоритетTableAdapter.Fill(this.deskDataSet.Приоритет);
заявкаBindingSource.Filter = "[ФИО заявителя]='" +
Environment.UserName + "'";
tabPage2.Parent = null;//убираем лишние закладки
tabPage3.Parent = null;
Text = "Заявки-Пользователь";
//пишем имя пк и юзера
textBox1.Text = Environment.UserName;
textBox3.Text = Environment.MachineName;
comboBox1.BindingContext = new BindingContext();
comboBox1.SelectedIndex = -1;
comboBox2.BindingContext = new BindingContext();
comboBox2.SelectedIndex = -1;
}
/// <summary>
/// загрузить как Оператора
/// </summary>
public void LoadOperator()
{
LoadData();
op = true;
this.пользовательTableAdapter.Fill(this.deskDataSet.Пользователь);
// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Исполнитель". При необходимости она может быть перемещена или
удалена.
//this.исполнительTableAdapter.Fill(this.deskDataSet.Исполнитель);
// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Статус". При необходимости она может быть перемещена или удалена.
this.статусTableAdapter.Fill(this.deskDataSet.Статус);
// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Заявка". При необходимости она может быть перемещена или удалена.
this.заявкаTableAdapter.Fill(this.deskDataSet.Заявка);
// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Инцидент". При необходимости она может быть перемещена или удалена.
this.инцидентTableAdapter.Fill(this.deskDataSet.Инцидент);
// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Приоритет". При необходимости она может быть перемещена или
удалена.
this.приоритетTableAdapter.Fill(this.deskDataSet.Приоритет);
//определяем количество поступивших заявок
DataRow[] dr1 = this.deskDataSet.Заявка.Select("[Код статуса] <>3 and
[Код статуса] <>4 ");
tabPage4.Text = "Поступившие (" + (dr1 == null || dr1.Length == 0 ? "0" :
dr1.Length.ToString()) + ")";
//определяем количество поступивших заявок
dr1 = this.deskDataSet.Заявка.Select("[Код статуса] =3 or [Код статуса] =4
");
tabPage5.Text = "Закрытые (" + (dr1 == null || dr1.Length == 0 ? "0" :
dr1.Length.ToString()) + ")";
tabPage1.Parent = null;//убираем лишние закладки
tabPage3.Parent = null;
Text = "Заявки-Оператор";
timer2.Interval = ClassConst.timeProverit * 1000;//ставим интервал таймеру
на обновление сведений о заявках
timer2.Start();
comboBox1.BindingContext = new BindingContext();
comboBox1.SelectedIndex = -1;
comboBox2.BindingContext = new BindingContext();
comboBox2.SelectedIndex = -1;
заявкаBindingSource1.Filter = "[Код статуса] <>3 and [Код статуса] <>4 ";
заявкаBindingSource2.Filter = "[Код статуса] =3 or [Код статуса] =4 ";
}
/// <summary>
/// загрузить как Оператора
/// </summary>
public void LoadIsp()
{
isp = true;
LoadData();
this.пользовательTableAdapter.Fill(this.deskDataSet.Пользователь);
// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Исполнитель". При необходимости она может быть перемещена или
удалена.
// this.исполнительTableAdapter.Fill(this.deskDataSet.Исполнитель);
// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Статус". При необходимости она может быть перемещена или удалена.
this.статусTableAdapter.Fill(this.deskDataSet.Статус);
// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Заявка". При необходимости она может быть перемещена или удалена.
this.заявкаTableAdapter.Fill(this.deskDataSet.Заявка);
// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Инцидент". При необходимости она может быть перемещена или удалена.
this.инцидентTableAdapter.Fill(this.deskDataSet.Инцидент);
// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Приоритет". При необходимости она может быть перемещена или
удалена.
this.приоритетTableAdapter.Fill(this.deskDataSet.Приоритет);
SetFilterIsp();
tabPage1.Parent = null;//убираем лишние закладки
tabPage2.Parent = null;
Text = "Заявки-Исполнитель";
timer2.Interval = ClassConst.timeProverit * 1000;//ставим интервал таймеру
на обновление сведений о заявках
timer2.Start();
comboBox1.BindingContext = new BindingContext();
comboBox1.SelectedIndex = -1;
comboBox2.BindingContext = new BindingContext();
comboBox2.SelectedIndex = -1;
}
public void LoadData()
{
if (File.Exists("settings.ini"))
{
//получаем данные из файла settings.ini в массив строк
string[] strok = File.ReadAllLines("settings.ini");
//если файл есть и не пустой, значит массив будет не пустой и
считываем данные
if (strok != null)
{
//переменная неопределеннного типа для доступа к файлу app.config,
который содржит все настройки проекта
var config =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// ищем секцию connectionStrings, которая содержит инфоормацию о
подключенияъх к БД, их может быть много
var connectionStringsSection =
(ConnectionStringsSection)config.GetSection("connectionStrings");
//получаем нашу строку подключения с именем
Propusk.Properties.Settings.propuskConnectionString и присватваем ей значение из
переменной, полученной из файла
//чтобы подключить бд
string[] ss = strok[0].Split(';');
string cc = "Data Source = " + ss[0] + "; Initial Catalog = " + ss[1] + ";
Integrated Security = True";
connectionStringsSection.ConnectionStrings["HDesk.Properties.Settings.deskConnectionStri
ng"].ConnectionString = cc;
config.Save();// сохранение файла app.config
ConfigurationManager.RefreshSection("connectionStrings");//обновление секции
connectionStrings, чтобы изменения вступили в силу
}
else
{
MessageBox.Show("Настройте подключение к БД", "",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
//фИЛЬТРЫ ДЛЯ ТАБЛИЦ ДЛЯ ИСПОЛНИТЕЛЯ С ОБНОВЛЕНИЕМ
ЗАГОЛОВОКОВ
private void SetFilterIsp()
{
this.заявкаTableAdapter.Fill(this.deskDataSet.Заявка);
заявкаBindingSource3.Filter = "[Код статуса] <>3 and [Код статуса] <>4
and [Код исполнителя]=" + id_isp.ToString() + " and [Код приоритета]=1";
заявкаBindingSource4.Filter = "[Код статуса] <>3 and [Код статуса] <>4
and [Код исполнителя]=" + id_isp.ToString() + " and [Код приоритета]=2";
заявкаBindingSource5.Filter = "[Код статуса] <>3 and [Код статуса] <>4
and [Код исполнителя]=" + id_isp.ToString() + " and [Код приоритета]=3";
//определяем количество поступивших заявок
DataRow[] dr1 = this.deskDataSet.Заявка.Select("[Код статуса] <> 3
and[Код статуса] <> 4 and[Код исполнителя] = " + id_isp.ToString() + " and[Код
приоритета] = 1");
tabPage6.Text = "Высокий (" + (dr1 == null || dr1.Length == 0 ? "0" :
dr1.Length.ToString()) + ")";
//определяем количество поступивших заявок
dr1 = this.deskDataSet.Заявка.Select("[Код статуса] <>3 and [Код статуса]
<>4 and [Код исполнителя]=" + id_isp.ToString() + " and [Код приоритета]=2");
tabPage7.Text = "Нормальный (" + (dr1 == null || dr1.Length == 0 ? "0" :
dr1.Length.ToString()) + ")";
//определяем количество поступивших заявок
dr1 = this.deskDataSet.Заявка.Select("[Код статуса] <> 3 and[Код статуса]
<> 4 and[Код исполнителя] = " + id_isp.ToString() + " and[Код приоритета] = 3");
tabPage8.Text = "Низкий (" + (dr1 == null || dr1.Length == 0 ? "0" :
dr1.Length.ToString()) + ")";
}
/// <summary>
/// Создать скриншот
/// </summary>
private string CreateScreen()
{
Graphics graph = null;
var bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height);
graph = Graphics.FromImage(bmp);
graph.CopyFromScreen(0, 0, 0, 0, bmp.Size);
string s = Path.ChangeExtension(Path.GetTempFileName(), "jpg");
bmp.Save(s);
return s;
}
private void Form1_Load(object sender, EventArgs e)
{
//// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Пользователь". При необходимости она может быть перемещена или
удалена.
//this.пользовательTableAdapter.Fill(this.deskDataSet.Пользователь);
//// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Исполнитель". При необходимости она может быть перемещена или
удалена.
//// this.исполнительTableAdapter.Fill(this.deskDataSet.Исполнитель);
//// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Статус". При необходимости она может быть перемещена или удалена.
//this.статусTableAdapter.Fill(this.deskDataSet.Статус);
//// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Заявка". При необходимости она может быть перемещена или удалена.
//this.заявкаTableAdapter.Fill(this.deskDataSet.Заявка);
//// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Инцидент". При необходимости она может быть перемещена или удалена.
//this.инцидентTableAdapter.Fill(this.deskDataSet.Инцидент);
//// TODO: данная строка кода позволяет загрузить данные в таблицу
"deskDataSet.Приоритет". При необходимости она может быть перемещена или
удалена.
//comboBox1.BindingContext = new BindingContext();
//comboBox1.SelectedIndex = -1;
//comboBox2.BindingContext = new BindingContext();
//comboBox2.SelectedIndex = -1;
}
private void button1_Click(object sender, EventArgs e)
{
if (numericUpDown1.Value == 0 || textBox4.Text == "" ||
comboBox1.SelectedValue == null || comboBox2.SelectedValue == null)
{
MessageBox.Show("Заполните все поля", "", MessageBoxButtons.OK,
MessageBoxIcon.Warning);
return;
}
if (richTextBox1.Text == "")
{
MessageBox.Show("Заполните текст заявки", "",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
//создаем новую заявку
deskDataSet.ЗаявкаRow z = deskDataSet.Заявка.NewЗаявкаRow();
z.Код_инцидента = Convert.ToInt32(comboBox2.SelectedValue);
z.Код_статуса = 1;
z.Код_приоритета = Convert.ToInt32(comboBox1.SelectedValue);
z.ФИО_заявителя = textBox1.Text;
z.Номер_телефона = textBox4.Text;
z.Время_открытия = DateTime.Now;
z.Имя_ПК = textBox3.Text;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)