close;
end;
procedure TForm2.Button1Click(Sender: TObject);
var i,ost:integer;
za:array [0..3] of string;
begin
dm6.T1.Close;
dm6.T2.Close;
dm6.T3.Close;
dm6.T1.Open;
dm6.T2.Open;
dm6.T3.Open;
DM6.T1.RecNo:=1;
DM6.T2.RecNo:=1;
DM6.T3.RecNo:=1;
za[0]:=edit1.Text;
za[1]:=edit2.Text;
za[2]:=edit3.Text;
za[3]:=edit4.Text;
//заявка
if unit1.kn=0 then
if (edit1.Text='')and(edit2.Text='')and(edit3.Text='')and(edit4.Text='')then
messageBox(0,'Заполни все поля','Ошибка',0)
else
begin
Продолжение приложения Б
DM6.T2.Append;
DM6.T2.FieldByName('Магазин').AsString:=za[3];
DM6.T2.FieldByName('Наз. книги').AsString:=za[0];
DM6.T2.FieldByName('Автор').AsString:=za[1];
DM6.T2.FieldByName('Треб. кол').AsString:=za[2];
DM6.T2.Post;
DM6.T2.Refresh;
ost:=strtoint(za[2]);
while ((ost<>0) and (not(DM6.T1.Eof))) do
begin
if (DM6.T1.FieldByName('Наз. книги').AsString=za[0])and(DM6.T1.FieldByName('Автор').AsString=za[1]) then
begin
if ost>=DM6.T1.fieldbyname('Тираж').AsInteger then
begin
ost:=ost-DM6.T1.fieldbyname('Тираж').AsInteger;
DM6.T2.Edit;
DM6.T2.FieldByName('Треб. кол').AsInteger:=ost;
DM6.T2.Post;
DM6.T2.Refresh;
DM6.T3.AppendRecord([DM6.T2.FieldByName('№ заказа').AsInteger,DM6.T1.FieldByName('Издательство').AsString,
DM6.T1.fieldbyname('Тираж').AsInteger,DM6.T1.fieldbyname('Цена').AsInteger,
DM6.T1.fieldbyname('Тираж').AsInteger*DM6.T1.fieldbyname('Цена').AsInteger]);
DM6.T3.Refresh;
DM6.T1.Edit;
DM6.T1.Delete;
DM6.T1.Refresh;
end
else
begin
DM6.T1.Edit;
DM6.T1.fieldbyname('Тираж').AsInteger:=DM6.T1.fieldbyname('Тираж').AsInteger-ost;
Продолжение приложения Б
DM6.T1.Post;
DM6.T1.Refresh;
DM6.T3.AppendRecord([DM6.T2.FieldByName('№ заказа').AsInteger,DM6.T1.FieldByName('Издательство').AsString,
strtoint(za[2]),DM6.T1.fieldbyname('Цена').AsInteger,DM6.T1.fieldbyname('Цена').AsInteger*strtoint(za[2])]);
DM6.T2.Edit;
DM6.T2.FieldByName('Треб. кол').AsInteger:=0;
DM6.T2.Post;
ost:=0;
DM6.T3.Refresh;
end;
end;
DM6.T1.Next;
end;
f1.clearf2;
end;
if unit1.kn=1 then
begin
DM6.T2.Append;
DM6.T2.FieldByName('Магазин').AsString:=za[3];
DM6.T2.FieldByName('Наз. книги').AsString:=za[0];
DM6.T2.FieldByName('Автор').AsString:=za[1];
DM6.T2.FieldByName('Треб. кол').AsString:=za[2];
DM6.T2.Post;
DM6.T2.Refresh;
f1.clearf2;
end;
//получение книг
if unit1.kn=2 then
if (edit1.Text='')and(edit2.Text='')and(edit3.Text='')and(edit4.Text='')and(edit5.Text='')then
messageBox(0,'Заполни все поля','Ошибка',0)
Продолжение приложения Б
else
begin
//добавление если такая запись уже существует
if not varisnull(DM6.T1.Lookup('Издательство;Наз. книги;Автор;Цена',VarArrayOf([za[3], za[0], za[1], Edit5.text]),'Цена')) then
begin
messageBox(0,'Данная книга уже существует','Ошибка',0);
MessageBox(0,'Тираж добавиться к существующей книге','Соощение',0);
DM6.T1.Locate('Издательство;Наз. книги;Автор;Тираж;Цена',VarArrayOf([za[3], za[0], za[1], za[2], Edit5.text]),[]);
DM6.T1.Edit;
DM6.T1.FieldByName('Тираж').AsInteger:=DM6.T1.FieldByName('Тираж').AsInteger+strtoint(za[2]);
DM6.T1.Post;
DM6.T1.Refresh;
f1.clearf2;
end
else
begin
//добление новой записи
DM6.T1.Append;
DM6.T1.FieldByName('Издательство').AsString:=za[3];
DM6.T1.FieldByName('Наз. книги').AsString:=za[0];
DM6.T1.FieldByName('Автор').AsString:=za[1];
DM6.T1.FieldByName('Тираж').AsString:=za[2];
DM6.T1.FieldByName('Цена').AsString:=Edit5.text;
DM6.T1.Post;
DM6.T1.Refresh;
f1.clearf2;
end;
//просмотр необработанных заявок
if MessageBox(0,'Просмотреть необработанные заявки','Соощение',mb_YesNo)=6 then
Продолжение приложения Б
if (DM6.T2.Locate('Наз. книги;Автор;',VarArrayOf([za[0], za[1]]),[]))and(DM6.T2.FieldByName('Треб. кол').AsInteger<>0) then
begin
DM6.T1.Locate('Издательство;Наз. книги;Автор;',VarArrayOf([za[3], za[0], za[1]]),[]);
if DM6.T2.FieldByName('Треб. кол').AsInteger>=strtoint(za[2]) then
begin
DM6.T3.Append;
DM6.T3.FieldByName('№ заказа').AsString:=DM6.T2.FieldByName('№ заказа').AsString;
DM6.T3.FieldByName('Издательство').AsString:=za[3];
DM6.T3.FieldByName('Выдано').AsString:=za[2];
DM6.T3.FieldByName('Цена').AsString:=DM6.T1.fieldbyname('Цена').asstring;
DM6.T3.FieldByName('Сумма').AsInteger:=strtoint(za[2])*DM6.T1.fieldbyname('Цена').asinteger;
DM6.T3.Post;
DM6.T3.Refresh;
DM6.T3.Open;
DM6.T1.Edit;
DM6.T1.Delete;
DM6.T1.Refresh;
DM6.T2.Edit;
DM6.T2.FieldByName('Треб. кол').AsInteger:=DM6.T2.FieldByName('Треб. кол').AsInteger-strtoint(za[2]);
DM6.T2.Post;
DM6.T2.Refresh;
end
else
begin
DM6.T3.Append;
DM6.T3.FieldByName('№ заказа').AsString:=DM6.T2.FieldByName('№ заказа').AsString;
DM6.T3.FieldByName('Издательство').AsString:=za[3];
Продолжение приложения Б
DM6.T3.FieldByName('Выдано').AsInteger:=DM6.T2.FieldByName('Треб. кол').AsInteger;
DM6.T3.FieldByName('Цена').AsString:=DM6.T1.fieldbyname('Цена').asstring;
DM6.T3.FieldByName('Сумма').AsInteger:=strtoint(za[2])*DM6.T1.fieldbyname('Цена').asinteger;
DM6.T3.Post;
DM6.T3.Refresh;
DM6.T1.Edit;
DM6.T1.FieldByName('Тираж').AsInteger:=strtoint(za[2])-DM6.T2.FieldByName('Треб. кол').AsInteger;
DM6.T1.Post;
DM6.T1.Refresh;
DM6.T2.Edit;
DM6.T2.FieldByName('Треб. кол').AsInteger:=0;
DM6.T2.Post;
DM6.T2.Refresh;
end;
end;
end;
//удаление
if unit1.kn=3 then
if (edit4.Text='') then
messageBox(0,'Заполни все поля','Ошибка',0)
else
if ComboBox1.ItemIndex=-1 then messageBox(0,'Выбери таблицу','Ошибка',0)
else
case ComboBox1.ItemIndex of
0:
if DM6.T1.Locate('ID',edit4.Text,[])=false then messageBox(0,'Данной записи не существует!','Ошибка',0)
else
begin
DM6.T1.Edit;
DM6.T1.Delete;
DM6.T1.Refresh;
Продолжение приложения Б
end;
1:
if DM6.T2.Locate('№ заказа',edit4.Text,[])=false then messageBox(0,'Данной записи не существует!','Ошибка',0)
else
if MessageBox(0,'Вы нарушите целостность данных'+#13+'Продолжить?','Опасность',mb_YesNo)=6 then
begin
DM6.T2.Edit;
DM6.T2.Delete;
DM6.T2.Refresh;
end;
2:
if DM6.T3.Locate('№ заказа',edit4.Text,[])=false then messageBox(0,'Данной записи не существует!','Ошибка',0)
else
if MessageBox(0,'Вы нарушите целостность данных'+#13+'Продолжить?','Опасность',mb_YesNo)=6 then
begin
DM6.T3.Edit;
DM6.T3.Delete;
DM6.T3.Refresh;
end;
end;
DM6.T1.RecNo:=1;
end;
procedure TForm2.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
case key of
'0'..'9':;
#8:;
else key:=chr(0);
end;
end;
Продолжение приложения Б
procedure TForm2.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
case key of
'0'..'9':;
#8:;
else key:=chr(0);
end;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm3 = class(TForm)
SG1: TStringGrid;
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;
var
F3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
close;
end;
end.
unit Unit4;
interface
uses
Продолжение приложения Б
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, registry;
type
TForm4 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
GroupBox1: TGroupBox;
Edit2: TEdit;
Label2: TLabel;
Button1: TButton;
CheckBox1: TCheckBox;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;
var
F4: TForm4;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
var
Reg:TRegistry;
begin