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

18 Васильков, А.В. Информационные системы и их безопасность:

Учебное пособие / А.В. Васильков, А.А. Васильков, И.А. Васильков. - М.:

Форум, 2013. 528 c.

19 Кузнецов И.Н. Рефераты, курсовые работы и дипломное проектирование. Методика подготовки и оформления. М. : Изд-во Дашков и Ко, 2012. 340 с.

20 Осипов Д.Л. Базы данных и Delphi. Спб. : БХВ-Петербург, 2011.

854 с.

32

ПРИЛОЖЕНИЕ А Функциональная модель по стандарту IDEF0

Рисунок А.1 – Декомпозиция блока «Формирование перечня телефонов»

Рисунок А.2 – Декомпозиция блока «Осуществление продаж»

33

Рисунок А.3 – Декомпозиция блока «Гарантийное обслуживание»

Рисунок А.4 – Декомпозиция блока «Формирование отчетов»

34

ПРИЛОЖЕНИЕ Б Свойства полей таблиц БД

Рисунок Б.1 – Свойства полей таблицы «Izgot»

Рисунок Б.2 – Свойства полей таблицы «gar»

Рисунок Б.3 – Свойства полей таблицы «Pass»

Рисунок Б.4 – Свойства полей таблицы «Prod»

35

Рисунок Б.5 – Свойства полей таблицы «Reg»

Рисунок Б.6 – Свойства полей таблицы «Skid»

Рисунок Б.7 – Свойства полей таблицы «SkidD»

Рисунок Б.8 – Свойства полей таблицы «sklad»

Рисунок Б.9 – Свойства полей таблицы «tel»

36

Рисунок Б.10 – Свойства полей таблицы «zak»

37

ПРИЛОЖЕНИЕ В

Листинг программы

unit pass;

dm.TEMP.Active:=false;

 

dm.TEMP.CommandText:='Select * fROM pass WHERE

interface

(log="'+cb.Text+'") AND (pass="'+e.Text+'")';

 

dm.TEMP.Active:=true;

uses

if dm.TEMP.RecordCount=0 then showmessage('Ошибка в

Windows, Messages, SysUtils, Variants, Classes, Graphics,

логине и(или) пароле')

Controls, Forms,

else

 

Dialogs, StdCtrls, Buttons, ExtCtrls,inifiles;

begin

 

 

if cb.ItemIndex=0 then

type

begin

 

TFpass = class(TForm)

//fmain.N10.Visible:=false;

Panel1: TPanel;

login:=cb.Text;

Panel2: TPanel;

pas:=e.Text;

BitBtn1: TBitBtn;

fpass.Hide;

BitBtn2: TBitBtn;

fmain.ShowModal;

Label1: TLabel;

end

 

cb: TComboBox;

else

 

Label2: TLabel;

begin

 

e: TEdit;

fmain.N17.Visible:=false;

procedure BitBtn1Click(Sender: TObject);

login:=cb.Text;

procedure FormCloseQuery(Sender: TObject; var CanClose:

pas:=e.Text;

Boolean);

fpass.Hide;

procedure BitBtn2Click(Sender: TObject);

fmain.ShowModal;

procedure FormShow(Sender: TObject);

end;

 

private

end;

 

{ Private declarations }

end;

 

public

 

 

{ Public declarations }

end;

 

end;

 

 

 

procedure TFpass.FormShow(Sender: TObject);

var

var inifile:tinifile;

Fpass: TFpass;

dbp:string;

 

begin

 

implementation

IniFile

:=

 

TIniFile.Create(ExtractFilePath(Application.ExeName)+'options.in

uses datm, main;

i');

// загрузка из фала настроек пути к базе

 

DBP := IniFile.ReadString('Options', 'DBPath',

{$R *.dfm}

ExtractFilePath(Application.ExeName)+'DB\Base_V11.mdb');

 

//proc := IniFile.ReadString('Options', 'proc',

procedure TFpass.BitBtn1Click(Sender: TObject);

ExtractFilePath(Application.ExeName)+'DataBase\');

begin

IniFile.Free;

closequery;

dm.ADO.Connected:=false;

end;

dm.ADO.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;

 

Data Source='+dbp+';Persist Security Info=False';

procedure TFpass.FormCloseQuery(Sender: TObject; var

dm.ADO.Connected:=true;

CanClose: Boolean);

 

 

begin

dm.TEMP.Active:=false;

if application.MessageBox('Вы хоите выйти из

dm.TEMP.CommandText:='Select * fROM pass';

программы?','Выход',mb_yesno+mb_iconquestion)=idyes then

dm.TEMP.Active:=true;

begin

While not dm.TEMP.Eof do

application.Terminate;

begin

 

end

cb.Items.Add(dm.TEMP.Fields[0].AsString);

else canclose:=false;

dm.TEMP.Next;

 

end;

 

end;

 

 

 

end;

 

procedure TFpass.BitBtn2Click(Sender: TObject);

 

 

begin

end.

 

if cb.Text='' then showmessage('Вы не выбрали пользователя')

unit main;

else if e.Text='' then showmessage('Вы не ввели пароль')

 

 

else

interface

 

begin

 

 

38

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, ComCtrls,registry, WordXP, OleServer,inifiles, jpeg,

ExtCtrls;

type

TFmain = class(TForm) StatusBar1: TStatusBar; MainMenu1: TMainMenu; N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

N1: TMenuItem;

N10: TMenuItem;

N6: TMenuItem;

N18: TMenuItem;

N19: TMenuItem;

N20: TMenuItem;

N22: TMenuItem;

N23: TMenuItem;

WordApplication1: TWordApplication; WordDocument1: TWordDocument; N2: TMenuItem;

N9: TMenuItem;

Image1: TImage;

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure N4Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N18Click(Sender: TObject); procedure N19Click(Sender: TObject); procedure N8Click(Sender: TObject); procedure N12Click(Sender: TObject); procedure N13Click(Sender: TObject); procedure N1Click(Sender: TObject); function data(data:tdatetime):string; procedure N22Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure N23Click(Sender: TObject); procedure N17Click(Sender: TObject); procedure N16Click(Sender: TObject); procedure N9Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

Fmain: TFmain;

implementation

uses datm, izgot, tel, skid, SkidD, sklad, prod2, zak, Gar, chpass, ot,

zaPeriod;

{$R *.dfm}

procedure TFmain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

if application.MessageBox('Вы хоите выйти из программы?','Выход',mb_yesno+mb_iconquestion)=idyes then

begin application.Terminate; end

else canclose:=false; end;

procedure TFmain.N4Click(Sender: TObject); begin

dm.Iz.Active:=false;

dm.Iz.CommandText:='select id_iz,nazv_iz from izgot'; dm.Iz.Active:=true;

fizgot.ShowModal;

end;

procedure TFmain.N5Click(Sender: TObject); begin

dm.t.Active:=false;

dm.t.CommandText:='select id_t,nazv_t,nazv_iz,ves_t,dl_t,sh_t,vis_t,gprs_t,mp3_t,st_t from izgot,tel WHERE (id_iz=id_iz_t)';

dm.t.Active:=true;

ftel.ShowModal;

end;

procedure TFmain.N18Click(Sender: TObject); begin

dm.sk.Active:=false;

dm.sk.CommandText:='select id_sk,nazv_sk,vel_sk from skid'; dm.sk.Active:=true;

fskid.ShowModal;

end;

procedure TFmain.N19Click(Sender: TObject); begin

dm.sdd.Active:=false;

dm.sdd.CommandText:='select id_sdd,nazv_sk,dt1_sdd,dt2_sdd from skid,skidd WHERE (id_sk = id_sk_sdd)'; dm.sdd.Active:=true;

fskidd.ShowModal;

end;

procedure TFmain.N8Click(Sender: TObject); begin

dm.s.Active:=false;

dm.s.CommandText:='select id_s,nazv_t,nazv_iz,kol_s FROM sklad,tel,izgot WHERE (id_iz=id_iz_t) AND (id_t=id_t_s)'; dm.s.Active:=true;

fsklad.ShowModal;

end;

procedure TFmain.N12Click(Sender: TObject); begin

dm.pr.Active:=false;

dm.pr.CommandText:='select id_pr,nazv_t,nazv_iz,dataN_pr,sn_pr,st_pr,dataK_pr FROM prod,tel,izgot WHERE (id_iz = id_iz_t) AND (id_t = id_t_pr)'; dm.pr.Active:=true;

fprod2.ShowModal;

end;

procedure TFmain.N13Click(Sender: TObject);

39

begin dm.zk.Active:=false;

dm.zk.CommandText:='Select id_zk,fio_zk,nazv_t,nazv_iz,dataN_zk,st_zk,id_t_zk FROM tel,izgot,zak WHERE (id_iz = id_iz_t) AND (id_t = id_t_zk) AND (log_zk=false)';

dm.zk.Active:=true;

fzak.ShowModal;

end;

procedure TFmain.N1Click(Sender: TObject); begin

dm.gr.Active:=false;

dm.gr.CommandText:='select id_gr,nazv_t,nazv_iz,dataN_gr,dataK_gr,srok_gr FROM tel,izgot,gar,prod WHERE (id_iz = id_iz_t) AND (id_t = id_t_pr) AND (id_pr = id_pr_gr) AND (log_gr=false)'; dm.gr.Active:=true;

fgar.ShowModal;

end;

function TFmain.data (data:tdatetime):string; var g,m,d:word;

begin decodedate(data,g,m,d);

result:=''+currtostr(m)+'/'+currtostr(d)+'/'+currtostr(g)+'';

end;

procedure TFmain.N22Click(Sender: TObject); var peremen:string;

Template,NewTemplate,FindText, NewStr, Replace,ReplaceWith:OleVariant;

LinkToFile,SaveWithDocument,Range:OleVariant; Table1: Table;

i: integer;

Reg: TRegistry; flag:boolean;

begin fot.ShowModal; end;

procedure TFmain.N2Click(Sender: TObject); var peremen:string;

Template,NewTemplate,FindText, NewStr, Replace,ReplaceWith:OleVariant;

LinkToFile,SaveWithDocument,Range:OleVariant; Table1: Table;

i: integer;

Reg: TRegistry; flag:boolean;

begin

WordApplication1.Connect; // Устанавливаем связь с сервером //Открываем шаблон otchet.dot в Word

Template:=ExtractFilePath(Application.EXEName)+'Гарантия.dot '; //путь к шаблону документа

WordApplication1.Documents.Add(Template,EmptyParam,Empty

Param,EmptyParam);// создаем документ на основе шаблона

WordDocument1.ConnectTo(WordApplication1.ActiveDocument)

; //Связываем компонент WordDocument1 c активным документом (т.е. с только что созданным документом)

dm.TEMP.Active:=false;

dm.TEMP.CommandText:='select id_gr,nazv_t,nazv_iz,dataN_gr,dataK_gr,srok_gr FROM tel,izgot,gar,prod WHERE (id_iz = id_iz_t) AND (id_t = id_t_pr) AND (id_pr = id_pr_gr) AND (log_gr=false) AND (dataK_gr <date())';

dm.TEMP.Active:=true;

//Заполняем таблицу списка объектов

Table1:=WordDocument1.Tables.Item(1); //связываем имя

Table1 с первой таблицей документа //WordDocument1.Tables - это массив таблиц документа (тип

Tables), а WordDocument1.Tables.Item(i) - i-ая таблица i:=2;

dm.temp.First;

While not dm.temp.Eof do begin

Table1.Rows.Add(EmptyParam);

Table1.Cell(i, 1).Range.Text := dm.temp.Fields[1].AsString; Table1.Cell(i, 2).Range.Text := dm.temp.Fields[2].AsString; Table1.Cell(i, 3).Range.Text := dm.temp.Fields[3].AsString; Table1.Cell(i, 4).Range.Text := dm.temp.Fields[4].AsString; Table1.Cell(i, 5).Range.Text := dm.temp.Fields[5].AsString; inc(i);dm.temp.next;

end; Table1.Rows.Item(i).Delete;

WordApplication1.Visible:=true; //делаем приложение MS Word видимым

WordApplication1.Disconnect; // Разрываем связь с сервером end;

procedure TFmain.N23Click(Sender: TObject); var peremen:string;

Template,NewTemplate,FindText, NewStr, Replace,ReplaceWith:OleVariant;

LinkToFile,SaveWithDocument,Range:OleVariant; Table1: Table;

i: integer;

Reg: TRegistry; flag:boolean;

begin

WordApplication1.Connect; // Устанавливаем связь с сервером //Открываем шаблон otchet.dot в Word Template:=ExtractFilePath(Application.EXEName)+'Заказы.dot';

//путь к шаблону документа

WordApplication1.Documents.Add(Template,EmptyParam,Empty

Param,EmptyParam);// создаем документ на основе шаблона

WordDocument1.ConnectTo(WordApplication1.ActiveDocument)

; //Связываем компонент WordDocument1 c активным документом (т.е. с только что созданным документом)

dm.TEMP.Active:=false;

dm.TEMP.CommandText:='Select id_zk,fio_zk,nazv_t,nazv_iz,dataN_zk,st_zk,id_t_zk FROM tel,izgot,zak WHERE (id_iz = id_iz_t) AND (id_t = id_t_zk) AND (log_zk=false) AND (dataN_zk<date())';

dm.TEMP.Active:=true;

//Заполняем таблицу списка объектов

Table1:=WordDocument1.Tables.Item(1); //связываем имя

Table1 с первой таблицей документа //WordDocument1.Tables - это массив таблиц документа (тип

Tables), а WordDocument1.Tables.Item(i) - i-ая таблица i:=2;

dm.temp.First;

While not dm.temp.Eof do

40

begin Table1.Rows.Add(EmptyParam);

Table1.Cell(i, 1).Range.Text := dm.temp.Fields[1].AsString; Table1.Cell(i, 2).Range.Text := dm.temp.Fields[2].AsString; Table1.Cell(i, 3).Range.Text := dm.temp.Fields[3].AsString; Table1.Cell(i, 4).Range.Text := dm.temp.Fields[4].AsString; Table1.Cell(i, 5).Range.Text := dm.temp.Fields[5].AsString; inc(i);dm.temp.next;

end; Table1.Rows.Item(i).Delete;

WordApplication1.Visible:=true; //делаем приложение MS Word видимым

WordApplication1.Disconnect; // Разрываем связь с сервером end;

procedure TFmain.N17Click(Sender: TObject); var inifile:tinifile;

dbp:string; begin IniFile :=

TIniFile.Create(ExtractFilePath(Application.ExeName)+'options.in i'); // загрузка из фала настроек пути к базе

DBP := IniFile.ReadString('Options', 'DBPath', ExtractFilePath(Application.ExeName)+'DB\Base_V11.mdb'); IniFile.Free; copyfile(pchar(DBP),pchar(ExtractFilePath(Application.ExeName )+'rezerv\base_'+datetostr(date)+'.mdb'),true);

if fileexists(ExtractFilePath(Application.ExeName)+'rezerv\base_'+d atetostr(date)+'.mdb') =true then showmessage('Резервная копия создана успешно')

else showmessage('Ошибка при создании резервной копии'); end;

procedure TFmain.N16Click(Sender: TObject); begin

fchpass.ShowModal;

end;

procedure TFmain.N9Click(Sender: TObject);

begin fzaperiod.ShowModal;

end;

end.

unit agar;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls, Buttons, ExtCtrls;

type

TFagar = class(TForm) Panel1: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; Panel2: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel;

dtp1: TDateTimePicker; e1: TEdit;

dtp2: TDateTimePicker;

procedure BitBtn1Click(Sender: TObject);

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure BitBtn2Click(Sender: TObject);

procedure e1KeyPress(Sender: TObject; var Key: Char); private

{Private declarations } public

{Public declarations } end;

var

Fagar: TFagar;

implementation

uses datm;

{$R *.dfm}

procedure TFagar.BitBtn1Click(Sender: TObject); begin

closequery;

end;

procedure TFagar.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin dtp1.Date:=date;dtp2.Date:=date;e1.Text:='';close; end;

procedure TFagar.BitBtn2Click(Sender: TObject); begin

if (e1.Text='') then showmessage('Не все поля заполнены') else

begin

if dtp1.Date>dtp2.Date then begin

showmessage('Неправильная последовательность дат'); exit;

end; try

if strtoint(e1.Text)<=0 then begin

showmessage('Срок не может быть отрицательным числом');

exit;

end; except

showmessage('Срок - числовое значение'); exit;

end;

dm.TEMP.Active:=false;

dm.TEMP.CommandText:='select * from gar where (id_pr_gr = '+tmp+') AND (log_gr = false)';

dm.TEMP.Active:=true;

if dm.TEMP.RecordCount>0 then begin

showmessage('Данный телефон уже в ремонте'); exit;

end;

dm.COM.CommandText:='Insert into gar (id_pr_gr,dataN_gr,dataK_gr,srok_gr) values

41

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