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

ПРИЛОЖЕНИЕ А Диаграмма IDEF0

Рисунок А.1 – Декомпозиция блока «Поступление книг»

Рисунок А.2 – Декомпозиция блока «Ведение БД»

32

Рисунок А.3 – Декомпозиция блока «Выдача книг»

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

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

33

ПРИЛОЖЕНИЕ Б

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

Листинг Б.1 – Main_menu

unit Main_menu;

 

 

 

 

 

var

 

 

 

interface

Form1: TForm1;

 

 

 

posetitel:string;

 

 

uses

 

 

 

 

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

implementation

 

 

Forms,

 

 

 

 

Dialogs, Menus, IniFiles, jpeg, ExtCtrls, StdCtrls;

Uses

Fond,Chitatel,Vidacha,Zakaz,

Oplata,

Zadolgniki,

 

Nevip_zakaz,Dolgniki,Otbor,Sost_fond,

 

 

type

Data_modul,Parol,Smena_parol;

 

 

TForm1 = class(TForm)

 

 

 

 

MainMenu1: TMainMenu;

 

 

 

 

N1: TMenuItem;

{$R *.dfm}

 

 

N2: TMenuItem;

 

 

 

 

N22: TMenuItem;

procedure TForm1.N2Click(Sender: TObject);

 

 

N3: TMenuItem;

begin

 

 

 

N5: TMenuItem;

FFond:=TFFond.Create(Self);

 

 

N6: TMenuItem;

FFond.ShowModal;

 

 

N7: TMenuItem;

end;

 

 

 

N8: TMenuItem;

 

 

 

 

N9: TMenuItem;

procedure TForm1.N22Click(Sender: TObject);

 

 

N10: TMenuItem;

begin

 

 

 

N11: TMenuItem;

CChitatel:=TCChitatel.Create(Self);

 

 

N12: TMenuItem;

CChitatel.ShowModal;

 

 

N4: TMenuItem;

end;

 

 

 

N13: TMenuItem;

 

 

 

 

N14: TMenuItem;

procedure TForm1.N5Click(Sender: TObject);

 

 

N15: TMenuItem;

begin

 

 

 

N16: TMenuItem;

VVidacha:=TVVidacha.Create(Self);

 

 

OpenDialog1: TOpenDialog;

VVidacha.ShowModal;

 

 

N17: TMenuItem;

end;

 

 

 

N18: TMenuItem;

 

 

 

 

N19: TMenuItem;

procedure TForm1.N3Click(Sender: TObject);

 

 

N20: TMenuItem;

begin

 

 

 

N21: TMenuItem;

ZZakaz:=TZZakaz.Create(Self);

 

 

Image1: TImage;

ZZakaz.ShowModal;

 

 

Label3: TLabel;

end;

 

 

 

Label1: TLabel;

 

 

 

 

Label2: TLabel;

procedure TForm1.N6Click(Sender: TObject);

 

 

Timer1: TTimer;

begin

 

 

 

Label4: TLabel;

OOplata:=TOOplata.Create(Self);

 

 

procedure N2Click(Sender: TObject);

OOplata.ShowModal;

 

 

procedure N22Click(Sender: TObject);

end;

 

 

 

procedure N5Click(Sender: TObject);

 

 

 

 

procedure N3Click(Sender: TObject);

procedure TForm1.N8Click(Sender: TObject);

 

 

procedure N6Click(Sender: TObject);

begin

 

 

 

procedure N8Click(Sender: TObject);

ZZadolgniki:=TZZadolgniki.Create(Self);

 

 

procedure N9Click(Sender: TObject);

ZZadolgniki.ShowModal;

 

 

procedure N10Click(Sender: TObject);

end;

 

 

 

procedure N11Click(Sender: TObject);

 

 

 

 

procedure N12Click(Sender: TObject);

procedure TForm1.N9Click(Sender: TObject);

 

 

procedure N13Click(Sender: TObject);

begin

 

 

 

procedure N15Click(Sender: TObject);

NNevip_zakaz:=TNNevip_zakaz.Create(Self);

 

 

procedure N16Click(Sender: TObject);

NNevip_zakaz.ShowModal;

 

 

procedure N18Click(Sender: TObject);

end;

 

 

 

procedure N19Click(Sender: TObject);

 

 

 

 

procedure N21Click(Sender: TObject);

procedure TForm1.N10Click(Sender: TObject);

 

 

procedure Timer1Timer(Sender: TObject);

begin

 

 

 

procedure FormCreate(Sender: TObject);

DDolgniki:=TDDolgniki.Create(Self);

 

 

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

DDolgniki.ShowModal;

 

 

private

end;

 

 

 

{ Private declarations }

 

 

 

 

public

procedure TForm1.N11Click(Sender: TObject);

 

 

{ Public declarations }

begin

 

 

 

end;

OOtbor:=TOOtbor.Create(Self);

 

 

 

34

 

 

 

OOtbor.ShowModal;

end;

procedure TForm1.N12Click(Sender: TObject); begin

SSost_fond:=TSSost_fond.Create(Self); SSost_fond.ShowModal;

end;

procedure TForm1.N13Click(Sender: TObject); // связь с бд var F:TiniFile;

DBPath:widestring; begin

buttonSelected:=MessageDlg('Изменить путь к базе данных?',mtInformation, mbOKCancel, 0);

if buttonSelected = mrOK then begin

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

if OpenDialog1.Execute then

begin

DBPath:=ExtractFilePath(OpenDialog1.FileName);

F.WriteString('Section_DBPath','Path',DBPath);

DM.ADOConnection1.Close;

DM.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLE DB.4.0;Data Source='+OpenDialog1.FileName+';Persist Security Info=False';

DM.ADOConnection1.Open;

end;

F.Free; end

end;

procedure TForm1.N15Click(Sender: TObject); begin

Form1.Close;

end;

procedure TForm1.N16Click(Sender: TObject); begin

MessageDlg('Программа "Движение книжного фонда в библиотеке" представляет собой файл-серверное приложение. В данном приложении'+

'реализованы такие возможности как: просмотр сведений о книгах, читателях, заказах, выдаче, видах штрафов и оплате;'+

'реализована возможность получения информации о должниках и задолжниках, о невыполненных заказах, получения списка литературы и ее отбор по критериям,'+

'ознакомление с состоянием фонда библиотеки; также реализован поиск по всем полям'+

'для нахождения необходимой информации. Программа поддерживает многопользовательский режим работы.', mtInformation,[mbOk], 0);

end;

procedure TForm1.N18Click(Sender: TObject); var

ogPath:PChar; buttonSelected : Integer;

begin

buttonSelected:=MessageDlg('Программа будет перезапущена. ',mtInformation, mbOKCancel, 0);

if buttonSelected = mrOK then begin

ogPath:=PChar(Application.ExeName); WinExec(ogPath,SW_SHOW); Application.Terminate;

end;

end;

procedure TForm1.N19Click(Sender: TObject); begin

SSmena_parol:=TSSmena_parol.Create(Self); SSmena_parol.ShowModal;

end;

35

procedure TForm1.N21Click(Sender: TObject); var F:TiniFile;

DBPath1:string; begin

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

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

F.Free;

CopyFile(pchar(DBPath1+'biblio.mdb'),pchar(DBPath1+'Copy_biblio.md b'),false);

MessageDlg('Создана резервная копия БД ',mtInformation, [mbOk], 0);

end;

procedure TForm1.Timer1Timer(Sender: TObject); begin

Label1.Caption:=timetostr(now);

Label2.Caption:=DateToStr(now);

end;

procedure TForm1.FormCreate(Sender: TObject); begin

if PParol.DBLookupComboBox1.Text='АДМИНИСТРАТОР' then begin

N7.Visible:=true; // отчеты N12.Enabled:=true; // состояние фонда N11.Enabled:=true; // отбор литературы N8.Enabled:=true; // задолжники N9.Enabled:=true; // невыполненные заказы N10.Enabled:=true; // должники N4.Enabled:=true; // файл N1.Enabled:=true; // справочники N17.Enabled:=true; // сервис N19.Visible:=true; // смена пароля N21.Visible:=true; // резервное копирование N16.Enabled:=true; // справка

end;

if PParol.DBLookupComboBox1.Text='БИБЛИОТЕКАРЬ' then begin

N7.Visible:=true; // отчеты N12.Enabled:=true; // состояние фонда N11.Enabled:=true; // отбор литературы N8.Enabled:=true; // задолжники N9.Enabled:=false; // невыполненные заказы N10.Enabled:=false; // должники N4.Enabled:=true; // файл N1.Enabled:=true; // справочники N17.Enabled:=true; // сервис N19.Visible:=true; // смена пароля N21.Visible:=true; // резервное копирование N16.Enabled:=true; // справка

end;

if PParol.DBLookupComboBox1.Text='ГОСТЬ' then begin

N7.Visible:=false; // отчеты N12.Enabled:=false; // состояние фонда N11.Enabled:=false; // отбор литературы N8.Enabled:=false; // задолжники N9.Enabled:=false; // невыполненные заказы N10.Enabled:=false; // должники N4.Enabled:=true; // файл N1.Enabled:=true; // справочники N17.Enabled:=true; // сервис N19.Visible:=false; // смена пароля N21.Visible:=false; // резервное копирование N16.Enabled:=true; // справка

end;

end;

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

begin DM.ADOConnection1.Connected:=False; Application.Terminate;

end;

end.

Листинг Б.2 – Data_modul

unit Data_modul;

OtborSource2: TDataSource;

 

 

 

 

 

Sost_fondQuery1: TADOQuery;

 

 

 

interface

Sost_fondSource1: TDataSource;

 

 

 

 

ParolQuery1: TADOQuery;

 

 

 

 

uses

ParolSource1: TDataSource;

 

 

 

 

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

ADOQuery1: TADOQuery;

 

 

 

 

Forms,

Smena_parolQuery1: TADOQuery;

 

 

 

Dialogs, ExtCtrls, DB, ADODB, StdCtrls, DBCtrls, Mask, Grids,

Smena_parolSource1: TDataSource;

 

 

 

DBGrids,

VidachaQuery3: TADOQuery;

 

 

 

jpeg, ComCtrls, DateUtils;

VidachaSource3: TDataSource;

 

 

 

 

procedure ChitatelQuery1BeforePost(DataSet: TDataSet);

 

type

procedure VidachaQuery1BeforePost(DataSet: TDataSet);

 

TDM = class(TForm)

procedure ZakazQuery1BeforePost(DataSet: TDataSet);

 

FondSource1: TDataSource;

procedure OplataQuery1CalcFields(DataSet: TDataSet);

 

FondQuery1: TADOQuery;

procedure FormCreate(Sender: TObject);

 

 

ADOConnection1: TADOConnection;

private

 

 

 

 

 

FondQuery2: TADOQuery;

{ Private declarations }

 

 

 

 

CheckQuery1: TADOQuery;

public

 

 

 

 

 

CheckSource1: TDataSource;

{ Public declarations }

 

 

 

 

ChitatelQuery1: TADOQuery;

end;

 

 

 

 

 

ChitatelSource1: TDataSource;

 

 

 

 

 

 

ChitatelQuery2: TADOQuery;

var

 

 

 

 

 

VidachaSource1: TDataSource;

DM: TDM;

 

 

 

 

 

VidachaQuery1: TADOQuery;

 

 

 

 

 

 

VidachaQuery2: TADOQuery;

implementation

 

 

 

 

ZakazSource1: TDataSource;

 

 

 

 

 

 

ZakazQuery1: TADOQuery;

uses

Fond,

Chitatel,

Vidacha,Zakaz,Oplata,

ZakazQuery2: TADOQuery;

Zadolgniki,Nevip_zakaz,Dolgniki,Otbor,Sost_fond,Parol,Smena_parol;

 

OplataQuery1: TADOQuery;

 

 

 

 

 

 

OplataSource1: TDataSource;

 

 

 

 

 

 

OplataQuery2: TADOQuery;

{$R *.dfm}

 

 

 

 

 

OplataQuery1ch_nomer: TIntegerField;

 

 

 

 

 

 

OplataQuery1f_nazvanie: TWideStringField;

procedure TDM.ChitatelQuery1BeforePost(DataSet: TDataSet);

 

OplataQuery1f_vid: TWideStringField;

begin

 

 

 

 

 

OplataQuery1v_data: TDateTimeField;

if (CChitatel.DBEdit2.Text='') or (CChitatel.DBEdit3.Text='') or

OplataQuery1v_pred_vozv: TDateTimeField;

(CChitatel.DBEdit4.Text='')

or

(CChitatel.DBEdit5.Text='')

or

OplataQuery1v_real_vozv: TDateTimeField;

(CChitatel.DBEdit6.Text='') then

 

 

 

OplataQuery1prosroch: TIntegerField;

begin

 

 

 

 

 

OplataQuery1dolg: TIntegerField;

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

 

ShtrafQuery1: TADOQuery;

Abort;

 

 

 

 

 

ShtrafSource1: TDataSource;

end;

 

 

 

 

 

ZadolgnikiQuery1: TADOQuery;

end;

 

 

 

 

 

ZadolgnikiSource1: TDataSource;

 

 

 

 

 

 

Nevip_zakQuery1: TADOQuery;

procedure TDM.VidachaQuery1BeforePost(DataSet: TDataSet);

 

Nevip_zakSource1: TDataSource;

begin

 

 

 

 

 

DolgnikiQuery1: TADOQuery;

if

(VVidacha.DBLookupComboBox1.Text='')

or

DolgnikiSource1: TDataSource;

(VVidacha.DBLookupComboBox2.Text='')

 

or

OtborQuery1: TADOQuery;

(VVidacha.DBEdit2.Text='') or (VVidacha.DBEdit3.Text='') then

 

OtborSource1: TDataSource;

begin

 

 

 

 

 

OtborQuery2: TADOQuery;

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

 

 

36

 

 

 

 

 

 

Abort;

 

 

 

 

if

 

end;

 

 

 

 

OOplata.DBGrid1.DataSource.DataSet.FieldByName('prosroch').Value<

end;

 

 

 

 

0 then

 

 

 

 

 

 

OplataQuery1prosroch.AsInteger:=0;

procedure TDM.ZakazQuery1BeforePost(DataSet: TDataSet);

 

if

begin

 

 

 

 

OOplata.DBGrid1.DataSource.DataSet.FieldByName('f_vid').AsString='

if

(ZZakaz.DBEdit2.Text='')

or

(ZZakaz.DBEdit3.Text='')

or

УЧЕБНАЯ' then

(ZZakaz.DBEdit4.Text='')

or

(ZZakaz.DBEdit5.Text='')

or

OplataQuery1dolg.AsInteger:=2*OplataQuery1prosroch.AsInteger

(ZZakaz.DBEdit6.Text='')

or

 

(ZZakaz.DBEdit7.Text='')

or

else

(ZZakaz.DBEdit8.Text='')

or

 

(ZZakaz.DBEdit9.Text='')

or

OplataQuery1dolg.AsInteger:=1*OplataQuery1prosroch.AsInteger; }

(ZZakaz.DBComboBox1.Text='') then

 

 

end;

 

begin

 

 

 

 

 

 

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

 

procedure TDM.FormCreate(Sender: TObject);

 

Abort;

 

 

 

 

begin

 

end;

 

 

 

 

ChitatelQuery1.Open;

end;

 

 

 

 

ChitatelQuery2.Open;

 

 

 

 

 

 

DolgnikiQuery1.Open;

procedure TDM.OplataQuery1CalcFields(DataSet: TDataSet);

 

FondQuery1.Open;

var

 

 

 

 

FondQuery2.Open;

a:TDate;

 

 

 

 

Nevip_zakQuery1.Open;

begin

 

 

 

 

OplataQuery1.Open;

{if

 

 

 

 

OtborQuery1.Open;

OOplata.DBGrid1.DataSource.DataSet.FieldByName('v_real_vozv').Val

OtborQuery2.Open;

ue=Null then

 

 

 

 

ParolQuery1.Open;

begin

 

 

 

 

ShtrafQuery1.Open;

 

a:=Date;

 

 

 

 

Smena_parolQuery1.Open;

end

 

 

 

 

Sost_fondQuery1.Open;

else

 

 

 

 

VidachaQuery1.Open;

a:=OplataQuery1v_real_vozv.Value;

 

 

ZadolgnikiQuery1.Open;

 

 

 

 

 

 

ZakazQuery1.Open;

OplataQuery1prosroch.AsInteger:=DaysBetween(OplataQuery1v_data.V

end;

alue,a)-

 

 

 

 

 

DaysBetween(OplataQuery1v_data.Value,OplataQuery1v_pred_vozv.Va

end.

lue);

 

 

 

 

 

Листинг Б.3 – Fond

unit Fond;

DBEdit3: TDBEdit;

 

DBEdit4: TDBEdit;

interface

DBComboBox1: TDBComboBox;

 

DBEdit5: TDBEdit;

uses

DBEdit6: TDBEdit;

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

DBEdit7: TDBEdit;

Forms,

DBNavigator2: TDBNavigator;

Dialogs, StdCtrls, DBCtrls, Mask, ExtCtrls, DB, ADODB, Grids,

GroupBox2: TGroupBox;

DBGrids,

RadioButton1: TRadioButton;

Buttons, jpeg;

RadioButton2: TRadioButton;

 

GroupBox3: TGroupBox;

type

Edit1: TEdit;

TFFond = class(TForm)

ComboBox1: TComboBox;

Timer1: TTimer;

BitBtn1: TBitBtn;

Panel1: TPanel;

Label1: TLabel;

Label7: TLabel;

Label2: TLabel;

DBGrid1: TDBGrid;

Label3: TLabel;

GroupBox1: TGroupBox;

Label4: TLabel;

DBEdit1: TDBEdit;

Label5: TLabel;

DBEdit2: TDBEdit;

Label6: TLabel;

 

37

Label8: TLabel;

Label9: TLabel;

Image1: TImage;

procedure FormCreate(Sender: TObject); procedure DBGrid1TitleClick(Column: TColumn); procedure Edit1Change(Sender: TObject);

procedure DBNavigator2BeforeAction(Sender: TObject; Button: TNavigateBtn);

procedure BitBtn1Click(Sender: TObject); procedure DBEdit1Change(Sender: TObject); procedure DBEdit2Enter(Sender: TObject); procedure DBEdit2Exit(Sender: TObject); procedure Timer1Timer(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure DBEdit6KeyPress(Sender: TObject; var Key: Char); procedure DBComboBox1KeyPress(Sender: TObject; var Key: Char); procedure DBEdit4KeyPress(Sender: TObject; var Key: Char); procedure DBEdit5KeyPress(Sender: TObject; var Key: Char);

private

{ Private declarations } procedure Refresh; procedure isEdit; procedure noEdit;

function checkEdit:boolean; public

{ Public declarations } end;

var

FFond: TFFond; s:string; ins:boolean;

buttonSelected:integer;

implementation

{$R *.dfm}

uses Data_modul, Parol;

procedure TFFond.Refresh; begin

DM.FondQuery1.Close;

DM.FondQuery1.Open;

end;

procedure TFFond.isEdit; begin

if DBEdit1.Text<>'' then begin

DM.CheckQuery1.SQL.Text:='UPDATE Fond SET Fond.EDIT = True WHERE Fond.f_id='+DBEdit1.Text+';';

DM.CheckQuery1.ExecSQL;

DM.CheckQuery1.SQL.Text:='Select * from Fond WHERE f_id='+DBEdit1.Text+';';

DM.CheckQuery1.Open;

end;

end;

procedure TFFond.noEdit; begin

if DBEdit1.Text<>'' then begin

DM.CheckQuery1.SQL.Text:='UPDATE Fond SET Fond.EDIT = False WHERE Fond.f_id='+DBEdit1.Text+';';

DM.CheckQuery1.ExecSQL;

DM.CheckQuery1.SQL.Text:='Select * from Fond WHERE f_id='+DBEdit1.Text+';';

DM.CheckQuery1.Open;

end;

end;

function TFFond.checkEdit:boolean; begin

checkEdit:=false;

if DBEdit1.Text<>'' then DM.CheckQuery1.SQL.Text:='Select * from Fond'+' WHERE f_id='+DBEdit1.Text+';';

DM.CheckQuery1.Open;

if DBEdit7.Text<>'' then begin

Label7.Visible:=StrToBool(DBEdit7.Text); DBEdit2.Enabled:= not StrToBool(DBEdit7.Text); DBEdit3.Enabled:= not StrToBool(DBEdit7.Text); DBEdit4.Enabled:= not StrToBool(DBEdit7.Text); DBEdit5.Enabled:= not StrToBool(DBEdit7.Text); DBEdit6.Enabled:= not StrToBool(DBEdit7.Text); checkEdit:=StrToBool(DBEdit7.Text);

end;

end;

procedure TFFond.FormCreate(Sender: TObject); var i:integer;

begin DM.ADOConnection1.Connected:=true; DM.FondQuery1.SQL.Clear;

DM.FondQuery1.SQL.Add('SELECT *FROM Fond'); DM.FondQuery1.Open;

for i:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption); if PParol.DBLookupComboBox1.Text='ГОСТЬ' then

begin GroupBox1.Enabled:=False;

end;

end;

procedure TFFond.DBGrid1TitleClick(Column: TColumn); var

i:integer;

clr:TColor; begin

s:=' ASC';

clr:= clMoneyGreen;

if RadioButton2.Checked then begin

s:=' DESC'; clr:= clSkyBlue; end;

for i:=0 to DBGrid1.Columns.Count-1 do DBGrid1.Columns.Items[i].Title.Color:= clBtnFace; DBGrid1.Columns.Items[Column.Index].Title.Color:=clr; DM.FondQuery1.Sort:=

DBGrid1.Columns.Items[Column.Index].FieldName+s;

end;

procedure TFFond.Edit1Change(Sender: TObject); begin

if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0; S:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName; DM.FondQuery1.SQL.Clear; DM.FondQuery1.SQL.Add('SELECT *FROM Fond'+

' WHERE '+s+' LIKE "'+Edit1.text+'%"'); Refresh;

end;

procedure TFFond.DBNavigator2BeforeAction(Sender: TObject; Button: TNavigateBtn);

var n:integer;

begin ins:=false;

if Button=nbInsert then begin

ins:=true;

if DBEdit2.Enabled then DBEdit2.SetFocus; end;

if (Button=nbRefresh) then begin

n:=DM.FondQuery1.FieldValues['f_iD']; Refresh; DM.FondQuery1.Locate('f_id',n,[]);

end;

end;

procedure TFFond.BitBtn1Click(Sender: TObject); begin

if DM.FondQuery1.FieldValues['EDIT']=false then

38

begin buttonSelected:=MessageDlg('Удалить

запись?',mtWarning,mbOKCancel, 0); if buttonSelected = mrOK then

begin DM.FondQuery2.Close; DM.FondQuery2.SQL.Clear;

DM.FondQuery2.SQL.Add('DELETE Fond.f_id, *FROM Fond WHERE Fond.f_id='+DBEdit1.Text+';');

DM.FondQuery2.ExecSQL;

end; end else

MessageDlg('Запись редактируется другим пользователем',mtError,[mbOK],0);

end;

procedure TFFond.DBEdit1Change(Sender: TObject); begin

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

procedure TFFond.DBEdit2Enter(Sender: TObject); begin

Timer1.Enabled:=false;

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

end;

procedure TFFond.DBEdit2Exit(Sender: TObject); begin

Timer1.Enabled:=True;

noEdit;

end;

procedure TFFond.Timer1Timer(Sender: TObject); begin

if DBNavigator2.Controls[6].Enabled then begin

DBNavigator2.BtnClick(nbEdit);

DBNavigator2.BtnClick(nbRefresh);

Листинг Б.4 - Chitatel

end;

end;

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

begin noEdit;

Timer1.Enabled:=false;

end;

procedure TFFond.DBEdit6KeyPress(Sender: TObject; var Key: Char); begin

If not (Key in ['0'..'9', '-','.','(',')','[',']',#8]) then Key:=#0 ;

end;

procedure TFFond.DBComboBox1KeyPress(Sender: TObject; var Key: Char);

begin Key:=#0;

end;

procedure TFFond.DBEdit4KeyPress(Sender: TObject; var Key: Char); begin

if Length(DBEdit4.Text)>=4 then if key<>#8 then

key:=#0;

If not (Key in ['0'..'9', #8]) then Key:=#0 ;

end;

procedure TFFond.DBEdit5KeyPress(Sender: TObject; var Key: Char); begin

if Length(DBEdit5.Text)>=4 then if key<>#8 then

key:=#0;

If not (Key in ['0'..'9', #8]) then Key:=#0;

end;

end.

unit Chitatel;

Label1: TLabel;

 

Label2: TLabel;

interface

Label3: TLabel;

 

Label4: TLabel;

uses

Label5: TLabel;

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

Label6: TLabel;

Forms,

Label8: TLabel;

Dialogs, ExtCtrls, StdCtrls, Buttons, DBCtrls, Mask, Grids, DBGrids;

procedure FormCreate(Sender: TObject);

 

procedure DBGrid1TitleClick(Column: TColumn);

type

procedure Edit1Change(Sender: TObject);

TCChitatel = class(TForm)

procedure DBNavigator2BeforeAction(Sender: TObject;

Panel1: TPanel;

Button: TNavigateBtn);

Label7: TLabel;

procedure BitBtn1Click(Sender: TObject);

DBGrid1: TDBGrid;

procedure DBEdit1Change(Sender: TObject);

GroupBox1: TGroupBox;

procedure DBEdit2Enter(Sender: TObject);

DBEdit1: TDBEdit;

procedure DBEdit2Exit(Sender: TObject);

DBNavigator2: TDBNavigator;

procedure Timer1Timer(Sender: TObject);

GroupBox2: TGroupBox;

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

RadioButton1: TRadioButton;

procedure DBEdit2KeyPress(Sender: TObject; var Key: Char);

RadioButton2: TRadioButton;

procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);

GroupBox3: TGroupBox;

procedure DBEdit5KeyPress(Sender: TObject; var Key: Char);

Edit1: TEdit;

procedure DBEdit6KeyPress(Sender: TObject; var Key: Char);

ComboBox1: TComboBox;

private

BitBtn1: TBitBtn;

{ Private declarations }

Timer1: TTimer;

procedure Refresh;

DBEdit2: TDBEdit;

procedure isEdit;

DBEdit3: TDBEdit;

procedure noEdit;

DBEdit4: TDBEdit;

function checkEdit:boolean;

DBEdit5: TDBEdit;

public

DBEdit6: TDBEdit;

{ Public declarations }

DBEdit7: TDBEdit;

end;

39

 

 

 

 

 

procedure TCChitatel.DBGrid1TitleClick(Column: TColumn);

 

var

 

 

 

 

var

 

 

CChitatel: TCChitatel;

 

 

 

 

i:integer;

 

 

s:string;

 

 

 

 

clr:TColor;

 

 

ins:boolean;

 

 

 

 

begin

 

 

buttonSelected:integer;

 

 

 

 

s:=' ASC';

 

 

 

 

 

 

 

clr:= clMoneyGreen;

 

 

implementation

 

 

 

 

if RadioButton2.Checked then

 

 

 

 

 

 

 

begin

 

 

{$R *.dfm}

 

 

 

 

s:=' DESC';

 

 

 

 

 

 

 

clr:= clSkyBlue;

 

 

uses Data_modul, Parol;

 

 

 

 

end;

 

 

 

 

 

 

 

for i:=0 to DBGrid1.Columns.Count-1 do

 

procedure TCChitatel.Refresh;

 

 

 

 

DBGrid1.Columns.Items[i].Title.Color:= clBtnFace;

 

begin

 

 

 

 

DBGrid1.Columns.Items[Column.Index].Title.Color:=clr;

 

DM.ChitatelQuery1.Close;

 

 

 

 

DM.ChitatelQuery1.Sort:=

 

 

DM.ChitatelQuery1.Open;

 

 

 

 

DBGrid1.Columns.Items[Column.Index].FieldName+s;

 

end;

 

 

 

 

end;

 

 

procedure TCChitatel.isEdit;

 

 

 

 

procedure TCChitatel.Edit1Change(Sender: TObject);

 

begin

 

 

 

 

begin

 

 

if DBEdit1.Text<>'' then

 

 

 

 

if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0;

 

begin

 

 

 

 

S:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName;

DM.CheckQuery1.SQL.Text:='UPDATE Chitatel SET Chitatel.EDIT

DM.ChitatelQuery1.SQL.Clear;

 

 

= True WHERE Chitatel.ch_id='+DBEdit1.Text+';';

 

 

DM.ChitatelQuery1.SQL.Add('SELECT *FROM Chitatel'+

 

DM.CheckQuery1.ExecSQL;

 

 

 

 

' WHERE '+s+' LIKE "'+Edit1.text+'%"');

 

DM.CheckQuery1.SQL.Text:='Select

*

from

Chitatel

WHERE

Refresh;

 

 

ch_id='+DBEdit1.Text+';';

 

 

 

 

end;

 

 

DM.CheckQuery1.Open;

 

 

 

 

 

 

 

end;

 

 

 

 

procedure TCChitatel.DBNavigator2BeforeAction(Sender: TObject;

end;

 

 

 

 

Button: TNavigateBtn);

 

 

 

 

 

 

 

var

 

 

procedure TCChitatel.noEdit;

 

 

 

 

n:integer;

 

 

begin

 

 

 

 

begin

 

 

if DBEdit1.Text<>'' then

 

 

 

 

ins:=false;

 

 

begin

 

 

 

 

if Button=nbInsert then

 

 

DM.CheckQuery1.SQL.Text:='UPDATE Chitatel SET Chitatel.EDIT

begin

 

 

= False WHERE Chitatel.ch_id='+DBEdit1.Text+';';

 

 

ins:=true;

 

 

DM.CheckQuery1.ExecSQL;

 

 

 

 

if DBEdit2.Enabled then DBEdit2.SetFocus;

 

DM.CheckQuery1.SQL.Text:='Select

*

from

Chitatel

WHERE

end;

 

 

ch_id='+DBEdit1.Text+';';

 

 

 

 

if (Button=nbRefresh) then

 

 

DM.CheckQuery1.Open;

 

 

 

 

begin

 

 

end;

 

 

 

 

n:=DM.ChitatelQuery1.FieldValues['ch_id'];

 

end;

 

 

 

 

Refresh;

 

 

 

 

 

 

 

DM.ChitatelQuery1.Locate('ch_id',n,[]);

 

function TCChitatel.checkEdit:boolean;

 

 

 

 

end;

 

 

begin

 

 

 

 

end;

 

 

checkEdit:=false;

 

 

 

 

 

 

 

if DBEdit1.Text<>'' then DM.CheckQuery1.SQL.Text:='Select * from

procedure TCChitatel.BitBtn1Click(Sender: TObject);

 

Chitatel'+' WHERE ch_id='+DBEdit1.Text+';';

 

 

 

begin

 

 

DM.CheckQuery1.Open;

 

 

 

 

if DM.CheckQuery1.FieldValues['EDIT']=false then

 

if DBEdit7.Text<>'' then

 

 

 

 

begin

 

 

begin

 

 

 

 

buttonSelected:=MessageDlg('Удалить

 

Label7.Visible:=StrToBool(DBEdit7.Text);

 

 

запись?',mtWarning,mbOKCancel, 0);

 

DBEdit2.Enabled:= not StrToBool(DBEdit7.Text);

 

if buttonSelected = mrOK then

 

 

DBEdit3.Enabled:= not StrToBool(DBEdit7.Text);

 

begin

 

 

DBEdit4.Enabled:= not StrToBool(DBEdit7.Text);

 

DM.ChitatelQuery2.Close;

 

 

DBEdit5.Enabled:= not StrToBool(DBEdit7.Text);

 

DM.ChitatelQuery2.SQL.Clear;

 

DBEdit6.Enabled:= not StrToBool(DBEdit7.Text);

 

DM.ChitatelQuery2.SQL.Add('DELETE Chitatel.ch_id, *FROM

checkEdit:=StrToBool(DBEdit7.Text);

 

 

 

Chitatel WHERE Chitatel.ch_id='+DBEdit1.Text+';');

 

end;

 

 

 

 

DM.ChitatelQuery2.ExecSQL;

 

 

end;

 

 

 

 

end;

 

 

 

 

 

 

 

end

 

 

procedure TCChitatel.FormCreate(Sender: TObject);

 

 

else

 

 

var i:integer;

 

 

 

 

MessageDlg('Запись

редактируется

другим

begin

 

 

 

 

пользователем',mtError,[mbOK],0);

 

DM.ADOConnection1.Connected:=true;

 

 

 

end;

 

 

DM.ChitatelQuery1.SQL.Clear;

 

 

 

 

 

 

 

DM.ChitatelQuery1.SQL.Add('SELECT *FROM Chitatel');

 

procedure TCChitatel.DBEdit1Change(Sender: TObject);

 

DM.ChitatelQuery1.Open;

 

 

 

 

begin

 

 

for i:=0 to DBGrid1.Columns.Count-1

do

 

 

 

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

 

ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption);

end;

 

 

if PParol.DBLookupComboBox1.Text='ГОСТЬ' then

 

 

 

 

begin

 

 

 

 

procedure TCChitatel.DBEdit2Enter(Sender: TObject);

 

GroupBox1.Enabled:=False;

 

 

 

 

begin

 

 

end;

 

 

 

 

Timer1.Enabled:=false;

 

 

end;

 

 

 

 

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

 

 

 

 

 

 

if not checkEdit then isEdit;

 

 

40

end;

procedure TCChitatel.DBEdit2Exit(Sender: TObject); begin

Timer1.Enabled:=True;

noEdit;

end;

procedure TCChitatel.Timer1Timer(Sender: TObject); begin

if DBNavigator2.Controls[6].Enabled then begin

DBNavigator2.BtnClick(nbEdit);

DBNavigator2.BtnClick(nbRefresh);

end;

end;

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

begin noEdit;

Timer1.Enabled:=false;

end;

procedure TCChitatel.DBEdit2KeyPress(Sender: TObject; var Key: Char);

begin

if Length(DBEdit2.Text)>3 then if key<>#8 then

key:=#0;

If not (Key in ['0'..'9', #8]) then

Листинг Б.5 – Zakaz

unit Zakaz;

interface

uses

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

Dialogs, ExtCtrls, DB, ADODB, StdCtrls, DBCtrls, Mask, Grids, DBGrids,

ComCtrls, jpeg, CommCtrl, Buttons;

type

TZZakaz = class(TForm) Panel1: TPanel; Label7: TLabel; DBGrid1: TDBGrid;

GroupBox1: TGroupBox; DBEdit1: TDBEdit; DBEdit2: TDBEdit; DBEdit3: TDBEdit; DBEdit4: TDBEdit; DBEdit5: TDBEdit; DBEdit6: TDBEdit; DBEdit7: TDBEdit;

DBNavigator2: TDBNavigator; GroupBox2: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; GroupBox3: TGroupBox; Edit1: TEdit;

ComboBox1: TComboBox; BitBtn1: TBitBtn;

Timer1: TTimer; DBEdit8: TDBEdit; DBEdit9: TDBEdit; DBEdit10: TDBEdit;

DBComboBox1: TDBComboBox; DateTimePicker1: TDateTimePicker; DateTimePicker2: TDateTimePicker; DBCheckBox1: TDBCheckBox;

Key:=#0;

end;

procedure TCChitatel.DBEdit3KeyPress(Sender: TObject; var Key: Char);

begin

If (Key in ['0'..'9']) then Key:=#0;

end;

procedure TCChitatel.DBEdit5KeyPress(Sender: TObject; var Key: Char);

begin

if Length(DBEdit5.Text)>10 then if key<>#8 then

key:=#0;

If not (Key in ['0'..'9', ' ', #8]) then Key:=#0;

end;

procedure TCChitatel.DBEdit6KeyPress(Sender: TObject; var Key: Char);

begin

if Length(DBEdit6.Text)>10 then if key<>#8 then

key:=#0;

If not (Key in ['0'..'9', #8]) then Key:=#0;

end;

end.

DBGrid2: TDBGrid; FondQuery: TADOQuery; Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

procedure FormCreate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure DBGrid1TitleClick(Column: TColumn);

procedure Edit1Change(Sender: TObject);

procedure DBNavigator2BeforeAction(Sender: TObject; Button: TNavigateBtn);

procedure BitBtn1Click(Sender: TObject); procedure DBEdit1Change(Sender: TObject); procedure DBEdit2Enter(Sender: TObject); procedure DBEdit2Exit(Sender: TObject); procedure Timer1Timer(Sender: TObject);

procedure DateTimePicker1CloseUp(Sender: TObject); procedure DateTimePicker2CloseUp(Sender: TObject); procedure DBEdit5Change(Sender: TObject); procedure DBEdit6Change(Sender: TObject); procedure DBCheckBox1Click(Sender: TObject);

procedure DBEdit2KeyPress(Sender: TObject; var Key: Char); procedure DBEdit7KeyPress(Sender: TObject; var Key: Char); procedure DBComboBox1KeyPress(Sender: TObject; var Key: Char); procedure DBEdit8KeyPress(Sender: TObject; var Key: Char); procedure DBEdit9KeyPress(Sender: TObject; var Key: Char);

private

{ Private declarations } procedure Refresh; procedure isEdit; procedure noEdit;

41

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