Курсовые работы / ПРИС КП_9
.pdfРисунок 3.12 – Восстановление базы данных
На рисунке 3.13 представлен файл .bak, который является резервной копией БД.
Рисунок 3.13 – Файл Back-up
Таким образом мы успешно зарезервировали БД. Теперь необходимо восстановить нашу БД (рисунок 3.14).
Рисунок 3.14 – восстановление базы данных В разделе «справка» представлено описание программы(рисунок 3.15)
Рисунок 3.15 – Раздел «справка», описание программы
33
Программа обладает возможностями многопользовательского режима,
благодаря MS SQL SERVER, то есть возможен вход 2 и более пользователей.
Теперь необходимо провести тестирование добавления нового клиента.
Процесс добавления представлен на рисунках 3.16-3.17.
Рисунок 3.16 – Добавление нового клиента
Рисунок 3.17 – результат добавления клиента Также для того чтобы пользователь не ввел название улицы, которой не
существует, предусмотрен справочник «Улицы». На рисунках 3.17-3.18 показан процесс добавления новой улицы в справочник.
Рисунок 3.17 – добавление новой улицы в справочник «Улицы»
34
Рисунок 3.18 – Результат заполнения справочника
Выводы по разделу
Таким образом, в данном пункте была дана краткая характеристика объекта исследования и каждого модуля информационной системы. Были описаны таблицы базы данных и дано описание каждого модуля. Приведены причины по которым были выбраны такие инструменты как программная среда разработки Delphi 7.0 и MS SQL SERVER. В последнем пункте раздела дано описание разработанной информационной системы учета ТО ВКГО и ВДГО газообеспечивающей компании.
35
ЗАКЛЮЧЕНИЕ
Исходя из проведенного анализа систем, применяемых для автоматизации учета ТО, можно сделать вывод, что они в основном имеют не нужный и лишний функционал для газообеспечивающей компании. Спроектированный программный продукт может быть хорошим решением, благодаря своему функционалу. Он обладает всеми необходимыми характеристиками для хранения, обработки, редактирования информации, а также для создания новых заявок и квитанций. Таким образом, в ходе выполнения работы был проведен анализ и проведено проектирование информационной системы учета технического обслуживания внутриквартирного и внутридомового газового оборудования для газообеспечивающей компании, результатом чего стало:
перечислены функции системы, при наличии в системе которых,
она позволит автоматизировать работу по учету ТО ВКГО и ВДГО, а также
информации о неисправностях;
проведен анализ предметной области в газообеспечивающей компании, в результате чего были выявлены основные причины разработки такой системы;
разработана функциональная модель процесса учета ТО ВКГО и
ВДГО;
построена модель данных учета ТО ВКГО и ВДГО газообеспечивающей компании.
Также, была дана краткая характеристика каждого модуля информационной системы. В результате было разработана информационная система способная помочь в учете ТО ВКГО и ВДГО газообеспечивающей компании на основе программной среды разработки Delphi 7.0 и реляционной базы данных MS SQL SERVER.
36
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1 Официальный сайт «Oracle EAM» (www.oracle.com) (дата обращения
20.11.2017)
2Официальный сайт «АйТи-ТОРО» (http://www.itrfid2.it.ru/system/toro/) (дата обращения 20.11.2017)
3Божко В.П. Предметно-ориентированные экономические информационные системы [электронный ресурс]: учебник / В.П. Божко, В.А. Благодатских, Д.В. Власов М.С. Гаспариан - Электронные текстовые данные. -
М.: Финансы и статистика, 2011. – 240 с. - Режим доступа: http://biblioclub.ru/index.php?page=book_red&id=85074&sr=1 (дата обращения
8.11.16)
4 Вдовин В.М. Предметно-ориентированные экономические информационные системы [электронный ресурс]: учебное пособие / В.М. Вдовин, Л.Е. Суркова, А.А. Шурупов - Электронные текстовые данные. 3-е
изд. М.: Дашков и Ко, 2013. 388 с. Режим доступа
:http://biblioclub.ru/index.php?page= book&id=116305&sr=1 (дата обращения
8.11.16)
5 Андреев Г. И., Витчинка В. В., Остапенко С. Н. Особенности построения методического обеспечения управления развитием сложных систем специального назначения в современных условиях//Экономика и математические методы, 2014, 35, №2.
6Костюкова А.П., Маркевич И.А. “Автоматизированная информационная система поддержки формирования маркетинговой политики”. Молодежный вестник УГАТУ - 2013; 3(8):18-23.
7Басыров Р. Б. MS SQL SERVER Повышение эффективности компании. СПб.: Питер, 2014г.
8 Гарантийный ремонт и его особенности [Электронный ресурс].
2017 . URL : http://juresovet.ru/remont-tovara-po-garantii/ (дата обращения
25.11.17).
37
9 Кондратьев В.А., Подольская О.В. Внедрение автоматизированной информационной системы в складской учет // сб. трудов конф. «Современные технологии: актуальные вопросы, достижения и инновации», г. Пенза. 2016.
С.52 – 54
10 Методология IDEF0 / Статьи раздела BPWin // ITteach.ru
[Электронный ресурс]. 2016. URL : http://itteach.ru/bpwin/metodologiya-idef0
(дата обращения 23.10.2017).
11 Васильев В. С. Диаграммы классов UML / В. С. Васильев // Блог
программиста [Электронный ресурс]. 07.06.2017. URL : https://proprof.com/archives/3212 (дата обращения 05.11.17).
12 Проць С. Методы тестирования программного обеспечения и их сравнение. Тестирование методом «черного ящика» и тестирование методом
«белого ящика» / С. Проць // Информационный портал FB.ru [Электронный
ресурс]. 2016. URL : http://fb.ru/article/247668/metodyi-testirovaniya-
programmnogo-obespecheniya-i-ih-sravnenie-testirovanie-metodom-chernogo-yaschi ka-i-testirovanie-metodom-belogo-yaschika (дата обращения 20.12.17).
13 Введение в среду визуального программирования Delphi:
Методические указания-Ч.2 /С.В Борисов, С.С. Комалов, И.Л. Серебрякова и др.; Под ред. Б.Г. Трусова. М. :Изд-во МГТУ им. Н.Э. Баумана, 2015. 96 с.
14 Желонкин А. «Основы программирования в интегрированной среде
Delphi». 2012 г. с.240
15 Климова Л.М. «Delphi 7. Основы программирования. Решение типовых задач». 2014 г. с.480
16 Скотт В. Э. Рефакторинг баз данных. Эволюционное проектирование
[электронный ресурс]: учебник / В.Э. Скотт - Электронные текстовые данные. -
М.: Финансы и статистика, 2013. 240 с. Режим доступа: https://www.livelib.ru/book/1000265354-refaktoring-baz-dannyh-evolyutsionnoe- proektirovanie-skott-v-embler-pramodkumar-dzh-sadaladzh (дата обращения
08.01.18)
38
17 Щелоков С.А. Базы данных: учеб. пособие. Оренбург : ОГУ, 2014. 298
с.
18 Проектирование информационных систем [Электронный ресурс]: -
Режим доступа: URL http://www.kgau.ru/istiki/umk/pis/pis.htm
19 Скородумов П. В. Моделирование бизнес-процессов: подходы, методы, средства // Вопросы территориального развития. 2014. №5 (15).
20 Юргелянис Ю. С. Автоматизация учета технологического оборудования // Вестник ВУиТ. 2015. №15. С 34-35.
39
ПРИЛОЖЕНИЕ А
Программный код
unit fDM;
interface
uses ShellApi, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, rsStorage, rsPropSaver, GlobalVar,
OLEDBAccess,
VirtualTable,
rsAesEncryptor,
DB,
MemDS,
MSAccess,
rsIniData,
DBAccess, // ActnList, MSClasses;
type TDM=class(TDataModule)
csDatabase: TMSConnection; IniData: TrsIniData;
Storage: TrsStorage; DataBase: TrsPropSaver;
procedure StorageAfterLoad(Sender: TObject); procedure StorageBeforeSave(Sender: TObject); procedure DataModuleCreate(Sender: TObject);
private
{Private declarations } public
{Public declarations } sPassword: string;
end; var
DM: TDM;
procedure ErrorDialog(ErrorKod: Longint; ErrorName: string); implementation
uses fProperty; {$R *.DFM}
procedure ErrorDialog(ErrorKod: Longint; ErrorName: string); begin
case ErrorKod of 229:
MessageDlg('Ошибка: У вас нет прав на данную операцию!'+CHR(13)+CHR(10)
+'Код ошибки: '+IntToStr(ErrorKod), mtError, [mbOk], 0); 233, 515:
MessageDlg('Ошибка: Не все поля обязательные для ввода содержат данные!'+
CHR(13)+CHR(10)+'Код ошибки: '+IntToStr(ErrorKod), mtError, [mbOk], 0);
547:
MessageDlg('Ошибка: Данную запись вы удалить не можете! Удаление станет возможным, если вы удалите записи из дочерних таблиц!'
+CHR(13)+CHR(10)+'Код ошибки: '+IntToStr(ErrorKod)+CHR(13)+CHR(10)+ErrorName, mtError,
[mbOk], 0); 2627:
MessageDlg('Ошибка: Нарушена уникальность, данная запись уже существует!'
+CHR(13)+CHR(10)+'Код ошибки: '+IntToStr(ErrorKod), mtError, [mbOk], 0);
unit frmClients; interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBGridEhGrouping, ToolCtrlsEh, DBGridEhToolCtrls, DynVarsEh, DB,
DBAccess, MSAccess, MemDS, ExtCtrls, GridsEh, DBAxisGridsEh, DBGridEh,
StdCtrls, Buttons, Menus;
type
TfClientsLst = class(TForm) Grid: TDBGridEh;
Panel1: TPanel;
spClientsSeek: TMSStoredProc; dsClients: TMSDataSource; btnInsert: TBitBtn;
btnEdit: TBitBtn; btnDel: TBitBtn; eLicChet: TEdit; eFio: TEdit; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel;
ppClients: TPopupMenu; N1: TMenuItem; Panel2: TPanel; btnPrintSeek: TBitBtn; cbDolg: TCheckBox;
MainMenu1: TMainMenu; N2: TMenuItem;
N3: TMenuItem;
procedure btnInsertClick(Sender: TObject); procedure GridDblClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure cbDolgClick(Sender: TObject); procedure btnPrintSeekClick(Sender: TObject); procedure eFioChange(Sender: TObject); procedure N3Click(Sender: TObject);
private
{Private declarations } public
{Public declarations } end;
var
fClientsLst: TfClientsLst;
implementation
uses fDM, frmClientsEdt, fRM, frmMainForm, frmPrintKvitanci;
{$R *.dfm}
procedure TfClientsLst.btnInsertClick(Sender: TObject); begin
Application.CreateForm(TfClientsEdt,fClientsEdt); if Sender = btnInsert then
begin
fClientsEdt.Tag := 1; //Добавление end;
if Sender = btnEdit then begin
fClientsEdt.Tag := 2; //Редактирование end;
fClientsEdt.ShowModal;
fClientsEdt.Free;
end;
40
10003:
MessageDlg('Ошибка: Пароль введен неверно!'+CHR(13)+CHR(10)+
'В доступе к информационной системе администрации города Смоленска отказано!'+
CHR(13)+CHR(10)+'Код ошибки: '+IntToStr(ErrorKod), mtError, [mbOk], 0);
else
MessageDlg('Ошибка: Прочая ошибка!'+CHR(13)+CHR(10)+'Ошибка: '+
ErrorName+CHR(13)+CHR(10)+'Код ошибки: '+IntToStr(ErrorKod),
mtError, [mbOk], 0) end;
end;
procedure TDM.StorageAfterLoad(Sender: TObject); begin
csDatabase.Server:=DataBase.Values['Server'];
csDatabase.Username:=DataBase.Values['User'];
csDatabase.Password:=DataBase.Values['Password']; if DataBase.Values['TrustedLogin'] then begin
csDatabase.Authentication:=auWindows; end
else begin csDatabase.Authentication:=auServer;
end;
csDatabase.LoginPrompt:=DataBase.Values['LoginPrompt'];
end;
procedure TDM.StorageBeforeSave(Sender: TObject); begin
DataBase.Values['Server']:=csDatabase.Server;
DataBase.Values['User']:=csDatabase.Username;
DataBase.Values['Password']:=csDatabase.Password if DM.sPassword<>'' then
DataBase.Values['ModemAcses']:=DM.sPassword; if csDatabase.Authentication=auWindows then
DataBase.Values['TrustedLogin']:=True else
DataBase.Values['TrustedLogin']:=False;
DataBase.Values['LoginPrompt']:=csDatabase.LoginPrompt;
end;
procedure TDM.DataModuleCreate(Sender: TObject); var
VersionInfo: TOSVersionInfo; begin
//Определяем пользователя операционной системы
//END Определяем пользователя операционной системы
//Определяем версию операционной системы
VersionInfo.dwOSVersionInfoSize:=SizeOf(TOSVersionInfo); if Windows.GetVersionEx(VersionInfo) then
VerOS:=VersionInfo.dwPlatformId;
//VerOS - Global 2 - NT, 1 -95,98
//Включаем кнопку - !
//END Определяем версию операционной системы
//Хранимая процедура возвращает набор пользователей для данной группы
//поиск пользователя в группе - frmModule.spCheckUser.Locate('MemberName', User ,[loCaseInsensitive])
ShortDateFormat:='dd.mm.yyyy';
end;
end.
unit fProperty; interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls,
procedure TfClientsLst.GridDblClick(Sender: TObject); begin
if spClientsSeek.RecordCount <> 0 then begin
Application.CreateForm(TfClientsEdt,fClientsEdt); fClientsEdt.Tag := 2;
fClientsEdt.ShowModal;
fClientsEdt.Free;
end;
end;
procedure TfClientsLst.FormShow(Sender: TObject); begin
spClientsSeek.Open;
end;
procedure TfClientsLst.cbDolgClick(Sender: TObject); begin
spClientsSeek.Close;
if cbDolg.Checked then spClientsSeek.ParamByName('Dolg').AsString := 'AND ( Dolg > 0)'
else spClientsSeek.ParamByName('Dolg').Clear;
spClientsSeek.Open;
end;
procedure TfClientsLst.btnPrintSeekClick(Sender: TObject); var
Id: Integer; begin
Id := spClientsSeek.FieldByName('IdClient').AsInteger;
Application.CreateForm(TRM, RM); try
RM.FrReport3.LoadFromFile(ExtractFilePath(Application.ExeName) + 'REPORT\Dolg.fr3');
RM.FrReport3.Variables['Dolg'] := '''' + spClientsSeek.ParamByName('Dolg').AsString + '''';
RM.FrReport3.ShowReport; finally
RM.Free;
end;
spClientsSeek.Locate('IdClient', Id, []);
end;
procedure TfClientsLst.eFioChange(Sender: TObject); begin
spClientsSeek.Close;
spClientsSeek.ParamByName('Fio').AsString := 'AND ( Clients.FIO LIKE ''%' + eFio.Text + '%'')' ;
spClientsSeek.Open;
end;
procedure TfClientsLst.N3Click(Sender: TObject); begin
Application.CreateForm(TfPrintKvitanci,fPrintKvitanci);
fPrintKvitanci.ShowModal;
fPrintKvitanci.Free;
end;
end.
unit frmClientsEdt;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, ToolEdit, Mask, DB, MemDS, DBAccess, MSAccess;
type
TfClientsEdt = class(TForm) Panel1: TPanel;
41
OLEDBAccess, |
|
|
|
Panel2: TPanel; |
|
|
Mask, |
|
|
|
|
lObezPole: TLabel; |
|
MSClasses; |
|
|
|
|
btnOk: TBitBtn; |
|
type |
|
|
|
|
btnCancel: TBitBtn; |
|
TPropertyForm=class(TForm) |
|
|
|
GroupBox1: TGroupBox; |
|
|
Panel2: TPanel; |
|
|
|
eFio: TEdit; |
|
|
Button1: TButton; |
|
|
|
lFio: TLabel; |
|
|
Button2: TButton; |
|
|
|
Label2: TLabel; |
|
|
pgProperty: TPageControl; |
|
|
|
lSeria: TLabel; |
|
|
TabSheet1: TTabSheet; |
|
|
|
lNumber: TLabel; |
|
|
Panel1: TPanel; |
|
|
|
meSeria: TMaskEdit; |
|
|
Label1: TLabel; |
|
|
|
meNumber: TMaskEdit; |
|
|
Label4: TLabel; |
|
|
|
Panel3: TPanel; |
|
|
Label5: TLabel; |
|
|
|
lKvartiri: TLabel; |
|
|
NameServer: TEdit; |
|
|
|
ceKvartiri: TComboEdit; |
|
|
Password: TEdit; |
|
|
|
spClientsInsert: TMSStoredProc; |
|
|
NameUser: TEdit; |
|
|
|
spClientsUpdate: TMSStoredProc; |
|
|
TrustedLogin: TCheckBox; |
|
|
|
cbDogovor: TCheckBox; |
|
|
LoginPrompt: TCheckBox; |
|
|
|
spClientsSelect: TMSStoredProc; |
|
|
procedure FormShow(Sender: TObject); |
|
|
procedure FormShow(Sender: TObject); |
|
||
procedure |
FormClose(Sender: |
TObject; |
var |
Action: |
procedure insert; |
|
TCloseAction); |
|
|
|
|
procedure edit; |
|
procedure Button1Click(Sender: TObject); |
|
|
procedure |
|
||
procedure Button2Click(Sender: TObject); |
|
|
prosmotrFont(zvezdochka:string;color:Tcolor;obezpole:boolean); |
|
||
procedure FormKeyDown(Sender: TObject; var Key: Word; |
procedure getField; |
|
||||
Shift: TShiftState); |
|
|
|
procedure btnOkClick(Sender: TObject); |
|
|
private |
|
|
|
|
procedure ceKvartiriButtonClick(Sender: TObject); |
|
{ Private declarations } |
|
|
|
procedure btnCancelClick(Sender: TObject); |
|
|
public |
|
|
|
|
private |
|
{ Public declarations } |
|
|
|
{ Private declarations } |
|
|
end; |
|
|
|
|
public |
|
var |
|
|
|
|
{ Public declarations } |
|
PropertyForm: TPropertyForm; |
|
|
|
end; |
|
|
implementation |
|
|
|
|
|
|
//uses FindAlf, TABMAP, GlobalVar; |
|
|
|
var |
|
|
uses GlobalVar, fDM; |
|
|
|
fClientsEdt: TfClientsEdt; |
|
|
{$R *.DFM} |
|
|
|
|
|
|
procedure TPropertyForm.FormShow(Sender: TObject); |
|
implementation |
|
|||
begin |
|
|
|
|
|
|
pgProperty.TabIndex := 0; |
|
|
|
uses frmStreetSPR, frmClients, frmKvartiriLst, fDM; |
|
|
NameServer.Text:= DM.csDatabase.Server; |
|
|
|
|
||
NameUser.Text:=DM.csDatabase.Username; |
|
|
{$R *.dfm} |
|
||
Password.Text:=DM.csDatabase.Password; |
|
|
|
|
||
if DM.csDatabase.Authentication=auWindows then |
|
|
procedure TfClientsEdt.insert; |
|
||
TrustedLogin.Checked:=True |
|
|
|
begin |
|
|
else |
|
|
|
|
fClientsEdt.Caption := 'Добавление нового клиента'; |
|
TrustedLogin.Checked:=False; |
|
|
|
|
|
|
LoginPrompt.Checked:=DM.csDatabase.LoginPrompt; |
|
|
|
|||
end; |
|
|
|
|
prosmotrFont('*',clBlue,true); |
|
procedure TPropertyForm.FormClose(Sender: TObject; |
|
end; |
|
|||
var Action: TCloseAction); |
|
|
|
|
|
|
begin |
|
|
|
|
procedure TfClientsEdt.edit; |
|
if ModalResult=mrOk then begin |
|
|
|
begin |
|
|
DM.csDatabase.Server:=NameServer.Text; |
|
|
fClientsEdt.Caption := 'Изменение данных о клиенте'; |
|
||
DM.csDatabase.Username:=NameUser.Text; |
|
|
|
|
||
DM.csDatabase.Password:=Password.Text; |
|
|
prosmotrFont('*',clBlue,true); |
|
||
if TrustedLogin.Checked then begin |
|
|
|
end; |
|
|
DM.csDatabase.Authentication:=auWindows; |
|
|
|
|
||
end else begin |
|
|
|
|
procedure TfClientsEdt.getField; |
|
DM.csDatabase.Authentication:=auServer; |
|
|
begin |
|
||
end; |
|
|
|
|
With spClientsSelect do |
|
DM.csDatabase.LoginPrompt:=LoginPrompt.Checked; |
|
begin |
|
|||
DM.Storage.Save; |
|
|
|
ParamByName('idClient').AsInteger |
:= |
|
end; |
|
|
|
|
fClientsLst.spClientsSeek.FieldByName('idClient').AsInteger; |
|
end; |
|
|
|
|
ExecProc; |
|
procedure TPropertyForm.Button1Click(Sender: TObject); |
|
eFio.Text := ParamByName('FIO').AsString; |
|
|||
begin |
|
|
|
|
meSeria.Text := ParamByName('PasportSeria').AsString; |
|
ModalResult:=mrOk; |
|
|
|
meNumber.Text := ParamByName('PasportNumber').AsString; |
|
|
end; |
|
|
|
|
cbDogovor.Checked := ParamByName('Dogovor').AsBoolean; |
|
|
|
|
|
|
ceKvartiri.Text |
:= |
procedure TPropertyForm.Button2Click(Sender: TObject); |
|
fClientsLst.spClientsSeek.FieldByName('Address').AsString; |
|
|||
begin |
|
|
|
|
ceKvartiri.Tag := ParamByName('IdKvartiri').AsInteger; |
|
ModalResult:=mrCancel; |
|
|
|
end; |
|
|
end; |
|
|
|
|
end; |
|
procedure TPropertyForm.FormKeyDown(Sender: |
TObject; var |
|
|
|||
Key: Word; |
|
|
|
|
procedure |
|
Shift: TShiftState); |
|
|
|
TfClientsEdt.prosmotrFont(zvezdochka:string;color:Tcolor;obezpole:boolean |
42