Учёт поступления и выдачи книг

Автор работы: Пользователь скрыл имя, 07 Января 2010 в 17:46, Не определен

Описание работы

Введение
1 Постановка задачи
Описание предметной области
Функциональная схема задачи
Схема данных
Описание входной информации
Описание структуры базы данных
Описание выходной информации
Контрольный пример
Общие требования к продукту
2. Экспериментальный раздел
Обоснование выбора языка программирования
Описание программы
Тестирование программного продукта
Руководство пользователя
Заключение
Приложение
2) Графическая часть должна содержать:
Лист 1 ER-диаграмма
3) Список литературы

Файлы: 1 файл

Курсовая1.doc

— 795.50 Кб (Скачать файл)

     f2.Width:=525;

     f2.Height:=135;

     f2.Show;

     kn:=1;

     clearf2;

     end;

     procedure TForm1.N2Click(Sender: TObject);

     begin

     Продолжение приложения Б

     if MessageBox(0,'Вам что выйти захотелось? (Да/Нет)','Выход',mb_YesNo)=6 then

     begin

     application.Destroying;

     f5.Close;

     f4.close;

     close;

     end;

     end;

     end. 

     unit Unit2;

     interface

     uses

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

       Dialogs, StdCtrls;

     type

       TForm2 = class(TForm)

         Label1: TLabel;

         Label2: TLabel;

         Label3: TLabel;

         Label4: TLabel;

         Edit1: TEdit;

         Edit2: TEdit;

         Edit3: TEdit;

         Button1: TButton;

         Button2: TButton;

         Edit4: TEdit;

         Edit5: TEdit;

         Label5: TLabel;

         ComboBox1: TComboBox;

         Label6: TLabel;

         procedure Button2Click(Sender: TObject);

         procedure Button1Click(Sender: TObject);

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

        Продолжение приложения Б

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

       end;

     var

       F2: TForm2;

     implementation

     uses Unit1, DB, Unit3, Unit6;

     {$R *.dfm}

     procedure TForm2.Button2Click(Sender: TObject);

     begin

     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;

Информация о работе Учёт поступления и выдачи книг