Диплом: Автоматизация рабочего места инженера по ремонту вычислительной техники (на примере ООО "Эллис")

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
52
13. Рабочая книга таможенника. Выпуск 1. / Под ред. H.JI. Тушенкова, Рос. та-
мож. акад., Санкт-Петербургский филиал - С.-П.: «Логос СПБ», 2016, 484 с.
14. Смирнова Г.С. и др. Проеткирование экономических информационных си-
стем: Учебник / Г.С. Смирнова, А. А. Сорокин, Ю.Ф. Тельнов / Под ред. Ю.Ф.
Тельнова. М.: Финансы и статистика, 2015, 423 с.
15. Таможенный кодекс Российской Федерации. М.: Юрайт-Издат, 2016, 300 с.
16. Управление торговлей. Прикладное решение для «1C: Предпрития 8.0 // В
ладу с бухгалтерией, №8(47), 2016.
17. Шуремов E.JI. Опыт сопоставления возможностей программ финансового
анализа// «Бухгалтер и компьютер» №5, май 2016.
18. Описание программного обеспечения АРМ дикларант (НЮГК 19530-01
ЛУ).
19. Брудник С.С. и др. "Экономическое содержание дипломных проектов", М.:
ГАНГ, 2016, 200 с.
20. С. Гилберт, Б.Маккарти “Самоучитель Visual C++ 6 в примерах”. Издатель-
ство «ДиаСофт», 2014, 496 с.
21. В. Давыдов “Visual C++”; Петербург, 2015, 576 с.
22. Майкл Дж. Янг “Visual C++ 6. Полное руководство пользователя”.
23. “Visual C++ 6 Руководство разработчика”. Санкт-Петербург, 2013 г, 560 с.
24. Джесс Либерти «Освой самостоятельно С++ за 21 день», – М.: Изд. Дом
«Вильямс», 2016, 288 с.
25. Назарр К., Рихтер Дж. “Windows via C/C++. Программирование на языке
Visual C++”.Питер, Русская Редакция, 2015, 896 с.
26. Павловская Т.А., Щупак Ю.А. «С/С++. Структурное программирование.
Практикум». – СПб: Питер,2016, 239 с.
27. Павловская Т.А. «С/С++. Программирование на языке высокого уровня». –
СПб: Питер, 2016, 466 с.
28. Пирогов В.И. “Программирование на Visual C++.NET” БХВ- Петер-
бург,2015, 786 с.
53
29. Стивен Прата «Язык программирования С++. Лекции и упражнения». Учеб-
ник.- СПб: ООО «ДиаСофтЮП», 2015, 1104 с.
30. Сидорина Т.А. “Самоучитель Microsoft Visual Studio C++ и MFC (+ CD-
ROM)”; Петербург, 2016, 848 с.
31. Тихонов Ю.Э. “Самоучитель MFC”. Санкт-Петербург, 2013, 640 с.
54
ПРИЛОЖЕНИЕ
55
АКТ
внедрения программного продукта «АРМ оператора сервисного центра
ООО «Элис» в опытную эксплуатацию
г. Нурлат 1.06.2017
В ООО «Элис» принята в опытную эксплуатацию автоматизированная
система «АРМ оператора сервисного центра ООО «Элис»;
Данный АРМ является самостоятельным программным блоком в структуре
АСУ предприятия ООО «Элис».
Программа была разработана студентом Института социальных и гумани-
тарных знаний Тухватуллиным Ильдаром Мансуровичем, под руководством
доцента Порсева А.А.
Разработанное программное обеспечение автоматизирует процесс сбора,
хранения и обработки информации и тем самым облегчает поиск необходимых
данных и работу с ними.
Директор ООО «Элис» _____________________Бархаткин С.С.
56
Приложение
Листинг программы
//Файл «АРМ оператора СЦ.cpp»
#include "stdafx.h"
#include "АМР оператора СЦ.h"
#include "fstream.h"
#include "АМР оператора СЦSet.h"
#include "АМР оператора СЦDoc.h"
#include "АМР оператора СЦView.h"
#include "WinAddZajav.h"
#include "WinAddObr.h"
#include "WinDiag.h"
#include "WinRem.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
BOOL result = TRUE;
CDatabase db;
CRecordset recset(&db);
CString zSQL;
CString IDZak;
CString Buff, Buff2,tekn;
int izav;
LPCTSTR lpszConnect =
_T("Driver={Microsoft Access Driver (*.mdb)};DSN='';DBQ=C:\\Program Files\\АРМ
оператора СЦ\\База данных.mdb;");
BOOL bms2,bms;
class Zakaz
{public:
int iZajav;
int iKlient;
int KL;
CString szKlient;
CString szDtPriem;
CString szDtSrok;
CString szDtVipoln;};
class Oboryd
{ public:
CString Tip;
CString marka;
CString model;
CString SN;
CString dtpriem;
CString neisp;
CString diagnis;
CString stadija()
57
{ if (diagnis != "")
{return "Проведена диагноcтика";}
else
if (dtpriem != "")
{ return "Оборудование принято";}
else
{ return "Поступил заказ";}}
CString neispravnost()
{ if(diagnis != "")
{return diagnis;}
else
{ return neisp;}}
};
Zakaz mtek,mpro,mper;
Oboryd m2tek, m2pro,m2per;
CString AddToFile (CString _1)
{
CString _2;
recset.GetFieldValue(_1, _2);
if (_2 == "")
{return " *значение не задано* ";}
else
{ _2 = " " + _2 + " ";
return _2;}
};
void CMyView::OnButton1()
{
TRY
{ result = db.OpenEx(lpszConnect, CDatabase::noOdbcDialog);
zSQL = "SELECT Заявка.Дата_закрытия, Заявка.Номер_заявки, Клиенты.Название,
Заявка.Срок_выполнения FROM Клиенты INNER JOIN Заявка ON Клиенты.Код_компании =
Заявка.Код_клиента;";
recset.Open(CRecordset::forwardOnly, zSQL, CRecordset::readOnly);
bms = true;
while (!recset.IsEOF())
{ recset.GetFieldValue("Дата_закрытия", Buff2);
recset.GetFieldValue("Номер_заявки", Buff);
recset.GetFieldValue("Срок_выполнения", mtek.szDtSrok);
recset.GetFieldValue("Название", mtek.szKlient);
recset.MoveNext();
mtek.iZajav = atoi(Buff);
if (Buff2 == "")
{ if (bms)
{ bms = false;
mper.iZajav = mtek.iZajav;
mper.szDtSrok = mtek.szDtSrok;
mper.szKlient = mtek.szKlient;}
else
{ mpro.iZajav = mper.iZajav;
mpro.szDtSrok = mper.szDtSrok;
mpro.szKlient = mper.szKlient;
mper.iZajav = mtek.iZajav;
58
mper.szDtSrok = mtek.szDtSrok;
mper.szKlient = mtek.szKlient;};
if ((mper.iZajav == izav) && (mper.iZajav != mpro.iZajav))
{ Buff.Format(_T("%d"), mpro.iZajav);
SetDlgItemText(IDC_EDIT1,Buff);
SetDlgItemText(IDC_EDIT2,mpro.szKlient);
SetDlgItemText(IDC_EDIT3,mpro.szDtSrok);
izav = mpro.iZajav;
goto __Kon2;}}}
mpro.iZajav = mtek.iZajav;
mpro.szDtSrok = mtek.szDtSrok;
mpro.szKlient = mtek.szKlient;
Buff.Format(_T("%d"), mpro.iZajav);
SetDlgItemText(IDC_EDIT1,Buff);
SetDlgItemText(IDC_EDIT2,mpro.szKlient);
SetDlgItemText(IDC_EDIT3,mpro.szDtSrok);
__Kon2:
recset.Close();
int a=0,b=0;
Buff.Format(_T("%d"), mpro.iZajav);
zSQL = "SELECT [Ремонт оборудования].[Номер расписки]"
"FROM [Ремонт оборудования]"
"WHERE ((([Ремонт оборудования].[Код заявки])=" + Buff + "));";
recset.Open(CRecordset::forwardOnly, zSQL, CRecordset::readOnly);
while (!recset.IsEOF())
{ a++;
recset.MoveNext();}
recset.Close();
Buff.Format(_T("%d"), mpro.iZajav);
zSQL = "SELECT [Ремонт оборудования].[Номер расписки]"
"FROM [Ремонт оборудования]"
"WHERE ((([Ремонт оборудования].[Код заявки])=" + Buff + ") AND (([Ремонт
оборудования].Выполнено)=true));";
recset.Open(CRecordset::forwardOnly, zSQL, CRecordset::readOnly);
while (!recset.IsEOF())
{ b++;
recset.MoveNext();}
recset.Close();
Buff.Format(_T("%d"), b);
Buff2.Format(_T("%d"), a);
Buff = "Выполнено " + Buff + " из " + Buff2;
SetDlgItemText(IDC_EDIT4,Buff); }
CATCH_ALL(e)
{ }
END_CATCH_ALL
db.Close();}
void CMyView::OnButton2()
{TRY
{ result = db.OpenEx(lpszConnect, CDatabase::noOdbcDialog);
zSQL = "SELECT Заявка.Дата_закрытия, Заявка.Номер_заявки, Клиенты.Название,
Заявка.Срок_выполнения FROM Клиенты INNER JOIN Заявка ON Клиенты.Код_компании =
Заявка.Код_клиента;";
59
recset.Open(CRecordset::forwardOnly, zSQL, CRecordset::readOnly);
bms = true;
while (!recset.IsEOF())
{ recset.GetFieldValue("Дата_закрытия", Buff2);
recset.GetFieldValue("Номер_заявки", Buff);
recset.GetFieldValue("Срок_выполнения", mtek.szDtSrok);
recset.GetFieldValue("Название", mtek.szKlient);
recset.MoveNext();
mtek.iZajav = atoi(Buff);
if (Buff2 == "")
{ if (bms)
{
bms = false;
mper.iZajav = mtek.iZajav;
mper.szDtSrok = mtek.szDtSrok;
mper.szKlient = mtek.szKlient;}
if (mtek.iZajav > mpro.iZajav)
{ Buff.Format(_T("%d"), mtek.iZajav);
SetDlgItemText(IDC_EDIT1,Buff);
SetDlgItemText(IDC_EDIT2,mtek.szKlient);
SetDlgItemText(IDC_EDIT3,mtek.szDtSrok);
mpro.iZajav = mtek.iZajav;
mpro.szDtSrok = mtek.szDtSrok;
mpro.szKlient = mtek.szKlient;
izav = mtek.iZajav;
goto __Kon1;}}}
mpro.iZajav = mper.iZajav;
mpro.szDtSrok = mper.szDtSrok;
mpro.szKlient = mper.szKlient;
Buff.Format(_T("%d"), mper.iZajav);
SetDlgItemText(IDC_EDIT1,Buff);
SetDlgItemText(IDC_EDIT2,mper.szKlient);
SetDlgItemText(IDC_EDIT3,mper.szDtSrok);
izav = mper.iZajav;
__Kon1:
recset.Close();
int a=0,b=0;
Buff.Format(_T("%d"), mpro.iZajav);
zSQL = "SELECT [Ремонт оборудования].[Номер расписки]"
"FROM [Ремонт оборудования]"
"WHERE ((([Ремонт оборудования].[Код заявки])=" + Buff + "));";
recset.Open(CRecordset::forwardOnly, zSQL, CRecordset::readOnly);
while (!recset.IsEOF())
{ a++;
recset.MoveNext();}
recset.Close();
Buff.Format(_T("%d"), mpro.iZajav);
zSQL = "SELECT [Ремонт оборудования].[Номер расписки]"
"FROM [Ремонт оборудования]"
"WHERE ((([Ремонт оборудования].[Код заявки])=" + Buff + ") AND (([Ремонт
оборудования].Выполнено)=true));";
recset.Open(CRecordset::forwardOnly, zSQL, CRecordset::readOnly);
60
while (!recset.IsEOF())
{ b++;
recset.MoveNext();}
recset.Close();
Buff.Format(_T("%d"), b);
Buff2.Format(_T("%d"), a);
Buff = "Выполнено " + Buff + " из " + Buff2;
SetDlgItemText(IDC_EDIT4,Buff);}
CATCH_ALL(e)
{ }
END_CATCH_ALL
db.Close();}
void CMyView::OnButton6()
{ DeleteFile("C:\\Program Files\\АРМ оператора СЦ\\Отчет по заявке.txt");
GetDlgItemText(IDC_EDIT1,Buff);
TRY
{ result = db.OpenEx(lpszConnect, CDatabase::noOdbcDialog);
zSQL = "SELECT Заявка.Номер_заявки, Клиенты.Название, [Контактные лица].ФИО,
[Контактные лица].Должность, Заявка.Дата_получения, Заявка.Срок_выполнения FROM
Клиенты INNER JOIN ([Контактные лица] INNER JOIN Заявка ON [Контактные лица].[Код
контактного лица] = Заявка.Код_контактного_лица) ON Клиенты.Код_компании =
Заявка.Код_клиента WHERE (((Заявка.Номер_заявки)=" + Buff + "));";
recset.Open(CRecordset::forwardOnly, zSQL, CRecordset::readOnly);
if (recset.IsEOF())
{AfxMessageBox(("Заявка не найдена"),MB_OK);}
else
{ofstream outfile("C:\\Program Files\\АРМ оператора СЦ\\Отчет по заявке.txt");
outfile << "Заявка №" << AddToFile("Номер_заявки") << "\nОт " <<
AddToFile("Дата_получения") << ";\nКомпания " << AddToFile("Название") << "просит
забрать перечисленое ниже оборудование и выполнить его ремонт.\nСдачу оборудования на
фирме осуществит " << AddToFile("ФИО") << "("<< AddToFile("Должность") << ")\nРемонт
оборудования необходимо выполнить до" << AddToFile ("Срок_выполнения") << "\n\n\n------
----------";
recset.Close();
zSQL = "SELECT [Ремонт оборудования].*, Оборудование.*,
Неисправность.[Признаки неисправности], Неисправность.[Распространение гарантии],
Диагностика.*, Инженер.*, [Описание ремонта].[Описание ремонта], [Описание
ремонта].[Дата ремонта], Гарантии.*, [Описание ремонта].[Стоимость ремонта]"
" FROM Гарантии RIGHT JOIN (Диагностика RIGHT JOIN (Инженер RIGHT JOIN
(Неисправность RIGHT JOIN (Оборудование RIGHT JOIN ([Описание ремонта] RIGHT JOIN
[Ремонт оборудования] ON [Описание ремонта].[Код ремонта] = [Ремонт
оборудования].[Описание_ремонта]) ON Оборудование.[Код оборудования] = [Ремонт
оборудования].Оборудование) ON Неисправность.[Код неисправности] = [Ремонт
оборудования].[Код неисправности]) ON Инженер.[Код инженера] = [Ремонт
оборудования].Инженер) ON Диагностика.[Номер диагностики] =
Неисправность.Диагностика) ON Гарантии.[Номер гарантийного талона] = [Ремонт
оборудования].[Гарантия до ремонта]"
" WHERE ((([Ремонт оборудования].[Код заявки])=" + Buff + "));";
recset.Open(CRecordset::forwardOnly, zSQL, CRecordset::readOnly);
while (!recset.IsEOF())
{ outfile << "\n\n\n\nРасписка №" << AddToFile("Номер расписки") << "\n" <<
AddToFile("Тип оборудования") << AddToFile("Марка") << AddToFile("Модель");
61
outfile << "\nДата приема:" << AddToFile("Дата приема") << "(" << AddToFile("Ф И
О") << ")\n\nОписание поломки:\nЖалобы клиента:\n\t" << AddToFile("Признаки
неисправности") ;
recset.GetFieldValue("Номер диагностики", Buff2);
if (Buff2 != "")
outfile << "\nРезультат диагностики(" << AddToFile("Дата проведения") << "№" <<
Buff << "):\n\t" <<AddToFile("Результат диагностики");
else
outfile << "\nДиагностика не проводилась.";
outfile << "\n\nОписание ремонта:\n";
recset.GetFieldValue("Описание ремонта", Buff2);
if (Buff2 != "")
{ outfile << "Выполненые работы:\n\t" << Buff2 << "\nСтоимость ремонта составила "
<< AddToFile("Стоимость ремонта") << "руб.\n";
recset.GetFieldValue("Гарантия до ремонта", Buff2);
if (Buff2 == "")
{
outfile << "Данное оборудование было на гарантийном обслуживании (№" << Buff2 <<
" до " << AddToFile("Срок гарантии") << ")";
}
else
{
outfile << "Данное оборудование не было на гарантийном обслуживании ";}}
else
outfile << "Ремонт не проводился.\n";
recset.MoveNext();
}
/////////////
outfile.close();
recset.Close();
ShellExecute (NULL, "open", "C:/Program Files/АРМ оператора СЦ/Отчет по
заявке.txt",NULL, NULL, SW_SHOWNORMAL);}}
CATCH_ALL(e)
{ }
END_CATCH_ALL
db.Close();}
void CMyView::OnButton3()
{
TRY
{ db.OpenEx(lpszConnect, CDatabase::noOdbcDialog);
zSQL = "SELECT Оборудование.[Тип оборудования], Оборудование.Марка,
Оборудование.Модель, Оборудование.SN, Неисправность.[Признаки неисправности],
Диагностика.[Результат диагностики], [Ремонт оборудования].[Дата приема] "
"FROM (Диагностика RIGHT JOIN Неисправность ON Диагностика.[Номер
диагностики] = Неисправность.Диагностика) RIGHT JOIN (Оборудование INNER JOIN
([Описание ремонта] RIGHT JOIN [Ремонт оборудования] ON [Описание ремонта].[Код
ремонта] = [Ремонт оборудования].Описание_ремонта) ON Оборудование.[Код
оборудования] = [Ремонт оборудования].Оборудование) ON Неисправность.[Код
неисправности] = [Ремонт оборудования].[Код неисправности]"
"WHERE ((([Ремонт оборудования].Выполнено)=False));";
recset.Open(CRecordset::forwardOnly, zSQL, CRecordset::readOnly);
bms = true;

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

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