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

Рисунок А.3 – Диаграмма IDEF0 второго уровня «Прием заявки»

Рисунок А.4 – Диаграмма IDEF0 второго уровня «Исполнение работы»

Рисунок А.5 – Диаграмма IDEF0 второго уровня «Обработка данных»

32

Рисунок А.6 – Диаграмма IDEF0 второго уровня «Создание отчетов»

Рисунок А.7 – Диаграмма IDEF3 третьего уровня «Смена пароля»

33

ПРИЛОЖЕНИЕ Б Описание таблиц базы данных

Таблица Б.1 – Описание свойств полей таблиц базы данных

Имя поля

Тип данных

Размер

Обязательное

Индексированной поле

 

 

 

поля

поле

 

 

 

PSWDTBL

 

 

 

 

 

 

P_Id

Счетчик

Длинное

Да

Да(Совпадения

не

 

 

целое

 

допускаются)

 

P_Login

Текстовый

50

Да

Нет

 

 

P_Pass

Текстовый

50

Нет

Нет

 

 

 

Логический

-

-

Нет

 

 

Klient

 

 

 

 

 

 

Klient

Счетчик

Длинное

Да

Да(Совпадения

не

 

 

целое

 

допускаются)

 

NazvanieFirm

Текстовый

50

Да

Да(Совпадения

не

 

 

 

 

допускаются)

 

FIO

Текстовый

50

-

Нет

 

 

paspotr

Текстовый

50

Нет

Нет

 

 

adres

Текстовый

50

Нет

Нет

 

 

telefon

Текстовый

50

Нет

Нет

 

 

EDIT

Логический

-

Нет

Нет

 

 

nSkidka

 

 

 

 

 

 

id_sk

Счетчик

Длинное

Да

Да

(Совпадения

не

 

 

целое

 

допускаются)

 

nazvanie

Текстовой

50

Нет

Да

(Совпадения

не

 

 

 

 

допускаются)

 

velichina

Числовой

Действител

Нет

Нет

 

 

 

 

ьное

 

 

 

 

EDIT

Логический

 

-

Нет

 

 

Oplata

 

 

 

 

 

 

ID_OPLATA

Счетчик

Длинное

Да

Да(Совпадения

не

 

 

целое

 

допускаются)

 

Status

Текстовый

50

Нет

Нет

 

 

SostojnieZakaza

 

 

 

 

 

 

id_CZ

Счетчик

Длинное

Да

Да(Совпадения

не

 

 

целое

 

допускаются)

 

Sostojnie

Текстовый

50

Нет

Нет

 

 

Sotrudnik

 

 

 

 

 

 

id_sotr

Счетчик

Длинное

Да

Да(Совпадения

не

 

 

целое

 

допускаются)

 

FIO

Текстовый

50

Нет

Нет

 

 

FIO

Текстовый

50

Нет

Нет

 

 

Dolgnost

Текстовый

50

Нет

Нет

 

 

Telefon

Текстовый

50

Нет

Нет

 

 

34

Продолжение таблицы Б1

Adres

Текстовый

50

Нет

Нет

 

 

Works

 

 

 

 

 

 

id_Work

Счетчик

Длинное

Да

Да

(Совпадения

не

 

 

целое

 

допускаются)

 

Nazvanie

Текстовый

50

Да

Да(Совпадения

не

 

 

 

 

допускаются)

 

 

 

 

 

 

 

 

Praice

Числовой

Длинное

Да

Нет

 

 

 

 

целое

 

 

 

 

Zakaz

 

 

 

 

 

 

id_zakaz

Счетчик

Длинное

Да

Да(Совпадения

не

 

 

целое

 

допускаются)

 

Nazvanie

Текстовый

50

Нет

Нет

 

 

Klient

Числовой

Длинное

Нет

Нет

 

 

 

 

целое

 

 

 

 

Sotrudnik

Числовой

Длинное

Да

Нет

 

 

 

 

целое

 

 

 

 

Skidka

Числовой

Длинное

Да

Нет

 

 

 

 

целое

 

 

 

 

DataNach

Дата/время

-

-

Нет

 

 

StatusZakaza

Числовой

Длинное

Да

Нет

 

 

 

 

целое

 

 

 

 

StatusOplat

Числовой

Длинное

Да

Нет

 

 

 

 

целое

 

 

 

 

Zakaz_Work

 

 

 

 

 

 

nomer

Счетчик

Длинное

Да

Да(Совпадения

не

 

 

целое

 

допускаются)

 

id_zakaza

Числовой

Длинное

Да

Нет

 

 

 

 

целое

 

 

 

 

id_work

Числовой

Длинное

Да

Нет

 

 

 

 

целое

 

 

 

 

35

31

ПРИЛОЖЕНИЕ В

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

unit DataM;

F:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Options.ini')

 

;

interface

DBPath:=F.ReadString('Section_DBPath','Path','');

 

ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.

uses

0;Data Source='+DBPath+'db1.mdb;Persist Security Info=False';

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

end;

Forms,

end.

Dialogs, DB, ADODB, IniFiles, StdCtrls;

 

type

TDM = class(TForm) ADOConnection1: TADOConnection; SotrQuery: TADOQuery; KlientQuery: TADOQuery; SkidkaQuery: TADOQuery; SotrDataSource: TDataSource; KlientDataSource: TDataSource; SkidkaDataSource: TDataSource; ZakazDataSource: TDataSource; ZakazQuery: TADOQuery; ZWQuery: TADOQuery; ZWDataSource: TDataSource; WorkQuery: TADOQuery; WorkDataSource: TDataSource; Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel; S_zakazaQuery1: TADOQuery;

S_zakazaDataSource: TDataSource; S_oplatQuery: TADOQuery; S_olaDataSource: TDataSource; Label7: TLabel;

Label8: TLabel;

Label9: TLabel; ZaprosQuery: TADOQuery;

ZaprosDataSource1: TDataSource; O1Query: TADOQuery; O1DataSource: TDataSource; Label10: TLabel;

Otchet2: TLabel; DogQuery: TADOQuery;

DogDataSource: TDataSource; pQuery: TADOQuery; pDataSource: TDataSource; CheckEditQuery: TADOQuery; DataSource1: TDataSource; Label11: TLabel;

Edit: TADODataSet;

procedure ADOConnection1BeforeConnect(Sender: TObject); private

{Private declarations } public

{Public declarations } end;

var

DM: TDM;

implementation Uses MainFor;

{$R *.dfm}

procedure TDM.ADOConnection1BeforeConnect(Sender: TObject); var DBPath:widestring; //путь к БД

F :TIniFile; // файл с путем к БД begin

32

unit Klient;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, StdCtrls, Mask, DBCtrls, ExtCtrls;

type

TS_Klient = class(TForm) DBGrid1: TDBGrid; DBNavigator1: TDBNavigator; DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

DBEdit5: TDBEdit;

DBEdit6: TDBEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Timer1: TTimer; DBEdit7: TDBEdit; DBEdit8: TDBEdit; Label7: TLabel;

procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure DBNavigator1BeforeAction(Sender: TObject;

Button: TNavigateBtn);

procedure DBEdit1Change(Sender: TObject); procedure DBEdit2Enter(Sender: TObject); procedure DBEdit3Enter(Sender: TObject); procedure DBEdit4Enter(Sender: TObject); procedure DBEdit5Enter(Sender: TObject); procedure DBEdit6Enter(Sender: TObject); procedure DBEdit2Exit(Sender: TObject); procedure DBEdit3Exit(Sender: TObject); procedure DBEdit4Exit(Sender: TObject); procedure DBEdit5Exit(Sender: TObject); procedure DBEdit6Exit(Sender: TObject);

procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn); private

{ Private declarations } procedure Refresh; procedure isEdit;

procedure notEdit;

function checkEdit:boolean; public

{ Public declarations } end;

const

Klient_SQL='SELECT * FROM Klient'; var

S_Klient: TS_Klient;

ins:boolean;// признак редактирования

implementation Uses DataM; {$R *.dfm}

procedure TS_Klient.Refresh; var i:integer;

begin

DM.ADOConnection1.Connected:=true;

DM.KlientQuery.SQL.Clear; DM.KlientQuery.SQL.Add('SELECT * FROM Klient;'); DM.KlientQuery.Open;

end;

procedure TS_Klient.FormCreate(Sender: TObject); begin

DM.ADOConnection1.Connected:=true;

DM.KlientQuery.SQL.Clear; DM.KlientQuery.SQL.Add('SELECT * FROM Klient;');

DM.KlientQuery.Open;

end;

procedure TS_Klient.isEdit; begin

if DBEdit1.Text<>'' then begin

DM.CheckEditQuery.SQL.Text:='UPDATE Klient SET Klient.EDIT = True WHERE Klient.Klient='+DBEdit1.Text+';'; DM.CheckEditQuery.ExecSQL;

DM.CheckEditQuery.SQL.Text:=Klient_SQL+' WHERE Klient='+DBEdit1.Text+';'; DM.CheckEditQuery.Open;

end;

end;

procedure TS_Klient.notEdit; begin

if DBEdit1.Text<>'' then begin

DM.CheckEditQuery.SQL.Text:='UPDATE Klient SET Klient.EDIT = False WHERE Klient.Klient='+DBEdit1.Text+';'; DM.CheckEditQuery.ExecSQL;

DM.CheckEditQuery.SQL.Text:=Klient_SQL+' WHERE Klient='+DBEdit1.Text+';'; DM.CheckEditQuery.Open;

end;

end;

function TS_Klient.checkEdit:boolean; var bool:boolean;

begin checkEdit:=false;

if DBEdit1.Text<>'' then DM.CheckEditQuery.SQL.Text:=Klient_SQL+' WHERE Klient='+DBEdit1.Text+';'; DM.CheckEditQuery.Open;

if DBEdit8.Text<>'' then begin

bool:=not strtobool(DBEdit8.Text); DBEdit1.Enabled:=bool; DBEdit2.Enabled:=bool; DBEdit3.Enabled:=bool; DBEdit4.Enabled:=bool; DBEdit5.Enabled:=bool; DBEdit6.Enabled:=bool; Label7.Visible:= not bool; checkEdit:=not bool;

end;

end;

procedure TS_Klient.FormClose(Sender: TObject; var Action: TCloseAction); begin

notEdit;

DM.KlientQuery.Close;

end;

procedure TS_Klient.DBNavigator1BeforeAction(Sender: TObject; Button: TNavigateBtn);

var n:integer; begin ins:=false;

//Если нажата кнопка "Вставить", тогда

//передаём фокус в DBEdit1,если он доступен if Button=nbInsert then

begin ins:=true;

if DBEdit1.Enabled then DBEdit1.SetFocus; end;

//Если нажата кнопка "Обновить"

if (Button=nbRefresh) then

end;

procedure TS_Klient.DBEdit1Change(Sender: TObject); begin

if (DBEdit1.Text<>'')and(not ins) then checkEdit; end;

procedure TS_Klient.DBEdit2Enter(Sender: TObject); begin

Timer1.Enabled:=false;

if (DBEdit1.Text<>'')and(not ins) then if not checkEdit then isEdit;

end;

procedure TS_Klient.DBEdit3Enter(Sender: TObject); begin

Timer1.Enabled:=false;

if (DBEdit1.Text<>'')and(not ins) then if not checkEdit then isEdit;

end;

procedure TS_Klient.DBEdit4Enter(Sender: TObject); begin

Timer1.Enabled:=false;

if (DBEdit1.Text<>'')and(not ins) then if not checkEdit then isEdit;

end;

procedure TS_Klient.DBEdit5Enter(Sender: TObject); begin

Timer1.Enabled:=false;

if (DBEdit1.Text<>'')and(not ins) then if not checkEdit then isEdit;

end;

procedure TS_Klient.DBEdit6Enter(Sender: TObject); begin

Timer1.Enabled:=false;

if (DBEdit1.Text<>'')and(not ins) then if not checkEdit then isEdit;

end;

procedure TS_Klient.DBEdit2Exit(Sender: TObject); begin

Timer1.Enabled:=true;

notEdit;

end;

procedure TS_Klient.DBEdit3Exit(Sender: TObject); begin

Timer1.Enabled:=true;

notEdit;

end;

procedure TS_Klient.DBEdit4Exit(Sender: TObject); begin

Timer1.Enabled:=true;

notEdit;

end;

procedure TS_Klient.DBEdit5Exit(Sender: TObject); begin

Timer1.Enabled:=true;

notEdit;

end;

procedure TS_Klient.DBEdit6Exit(Sender: TObject); begin

Timer1.Enabled:=true;

notEdit;

end;

procedure TS_Klient.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);

begin

if (Button=nbPost ) then

begin

if (S_Klient.DBEdit3.Text='') or (S_Klient.DBEdit6.Text='') then begin

MessageDlg('Введите все данные!',mtError,[mbOk],0);

Abort;

end;

//if bool=true then end;

end;

procedure TS_Klient.Timer1Timer(Sender: TObject); begin

if DBNavigator1.Controls[6].Enabled then begin

DBNavigator1.BtnClick(nbEdit);

DBNavigator1.BtnClick(nbRefresh);

end;

end;

end.

unit MainFor;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, jpeg, ExtCtrls, IniFiles;

type

TMainForm = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

BD: TMenuItem;

Exit: TMenuItem; Klient: TMenuItem; Sotr: TMenuItem; Skidka: TMenuItem; Work: TMenuItem; Oformlenie: TMenuItem; N14: TMenuItem;

OpenDialog1: TOpenDialog; N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

procedure BDClick(Sender: TObject); procedure SotrClick(Sender: TObject); procedure KlientClick(Sender: TObject); procedure SkidkaClick(Sender: TObject); procedure WorkClick(Sender: TObject); procedure OformlenieClick(Sender: TObject); procedure N5Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure N8Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure N11Click(Sender: TObject); procedure N12Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

MainForm: TMainForm;

implementation

Uses DataM, Klient, Skidka, Work, Zakaz, O_1, O2, O_3, O_31, O3, Sotrr, o_sotr;

{$R *.dfm}

procedure TMainForm.BDClick(Sender: TObject); var F:TiniFile;// дискриптор DBPath:widestring;// путь к БД

begin

//создаем объект ини-файла, ассоциируя его с физическим файлом на диске

F:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Options.ini');

//запускаем диалог открытия, если запущен успешно, то...

if OpenDialog1.Execute then begin

//сохраняем пользовательский путь

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