Скачиваний:
8
Добавлен:
17.06.2023
Размер:
1.81 Mб
Скачать

Рисунок 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

Соседние файлы в папке Курсовые работы