Практика

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

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

Введение
1. Структура и функции учреждения
2. Постановка задачи
3. Техническое задание.
4. Описание входной и выходной информации
5. Экспериментальный раздел
6. Приложение.
6.1.Исходный текст программы
6.2.Результаты контрольного примера

Файлы: 1 файл

Отчет по практике семена.doc

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

     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

     if (length(edit1.Text)>4)and(edit1.Text=edit2.Text) then

     begin

     Reg:=TRegIniFile.Create;

     Reg.RootKey:=HKEY_CURRENT_USER;

     Reg.OpenKey('.pwd', true);

     Reg.WriteString('pwd', edit1.Text);

     Reg.CloseKey;

     f1.Show;

     f4.Visible:=false;

Информация о работе Практика