Информационное обеспечение систем управления
Лабораторная работа №1-3
Выполнила: Семина Т.
Группа И-41
-
Создание заполнение и просмотр базы данных
Содержимое созданных таблиц:
detal.db // таблица детализации заказов
sklad.db // таблица товаров
zakaz.db //таблица заказов
zakazch.db //таблица заказчиков
-
Текст запросов к полученной базе данных
Запрос 1
select zakaz.N_zakaza, zazch.nazv_zakazch, zazch.Gorod, zazch.Ulica, zazch.Dom,zakaz.Data_zakaza
from zakaz,zazch
where zakaz.Kod_zakazch=zazch.Kod_zakazch
Полученный набор данных:
Запрос 2
select detal.Nom_zakaza, detal.kod_izdelija,sklad.Nazv_izdel,zazch.Nazv_zakazch
from detal,sklad,zazch,zakaz
where detal.kod_izdelija=sklad.kod_izdelija and detal.Nom_zakaza=zakaz.N_zakaza and zakaz.Kod_zakazch=zazch.kod_zakazch
Полученный набор данных:
-
Главная форма:
Текст модуля:
unit Unit1;
…
procedure TFMain.NVixodClick(Sender: TObject);
begin
Close;
end;
procedure TFMain.NZakazcClick(Sender: TObject);
begin
Application.CreateForm(TFZakazc, FZakazc);
FZakazc.ShowModal;
end;
procedure TFMain.N1Click(Sender: TObject);
begin
Application.CreateForm(TFSklad, FSklad);
FSklad.ShowModal;
end;
procedure TFMain.N2Click(Sender: TObject);
begin
Close;
end;
-
Форма таблицы заказчиков:
Текст модуля:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls, DB, DBTables, Menus;
type
TFZakazc = class(TForm)
TZakazch: TTable;
DataSource1: TDataSource;
DBEdit1: TDBEdit;
kod: TLabel;
MainMenu1: TMainMenu;
Out: TMenuItem;
nazv: TLabel;
index: TLabel;
City: TLabel;
Street: TLabel;
House: TLabel;
flat: TLabel;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
GBnavigator: TGroupBox;
Edit1: TEdit;
Bpoisk: TButton;
Bfirst: TButton;
Bnext: TButton;
Bprev: TButton;
Blast: TButton;
Label1: TLabel;
GBRedakt: TGroupBox;
Bred: TButton;
Bsave: TButton;
Bdel: TButton;
Bnew: TButton;
Bcan: TButton;
TZakaz: TTable;
procedure OutClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure BfirstClick(Sender: TObject);
procedure BnextClick(Sender: TObject);
procedure BprevClick(Sender: TObject);
procedure BlastClick(Sender: TObject);
procedure BpoiskClick(Sender: TObject);
procedure BredClick(Sender: TObject);
procedure BsaveClick(Sender: TObject);
procedure BcanClick(Sender: TObject);
procedure BnewClick(Sender: TObject);
procedure BdelClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FZakazc: TFZakazc;
implementation
uses Unit1;
{$R *.dfm}
procedure ButActive(f,n,p,l:boolean);
begin
FZakazc.Bfirst.Enabled:=f;
FZakazc.Bnext.Enabled:=n;
FZakazc.Bprev.Enabled:=p;
FZakazc.Blast.Enabled:=l;
end;
procedure RedActive (r,s,n,d,c:boolean);
begin
FZakazc.Bred.Enabled:=r;
FZakazc.Bsave.Enabled:=s;
FZakazc.Bnew.Enabled:=n;
FZakazc.Bdel.Enabled:=d;
FZakazc.Bcan.Enabled:=c;
end;
procedure TFZakazc.OutClick(Sender: TObject);
begin
TZakazch.Active:=false;
Close;
end;
procedure TFZakazc.FormActivate(Sender: TObject);
begin
TZakazch.Active:=true;
TZakazch.First;
ButActive(true,true,true,true);
RedActive(true,false,true,true,false);
end;
procedure TFZakazc.BfirstClick(Sender: TObject);
begin
TZakazch.First;
ButActive(false,true,false,true);
end;
procedure TFZakazc.BnextClick(Sender: TObject);
begin
TZakazch.next;
ButActive(true,true,true,true);
if TZakazch.eof=true then
begin
Showmessage('Вы дошли до конца таблицы');
ButActive(true,false,true,false);
end;
end;
procedure TFZakazc.BprevClick(Sender: TObject);
begin
TZakazch.prior;
ButActive(true,true,true,true);
if TZakazch.bof=true then
begin
Showmessage('Это первая запись таблицы');
ButActive(false,true,false,true);
end;
end;
procedure TFZakazc.BlastClick(Sender: TObject);
begin
TZakazch.Last;
ButActive(true,false,true,false);
end;
procedure TFZakazc.BpoiskClick(Sender: TObject);
var
find:boolean;
begin
if edit1.text='' then
begin
showmessage('Введите название фирмы!');
exit;
end;
find:=TZakazch.Locate('Nazv_zakazch',edit1.text,
[LoPartialKey,LoCaseInsensitive]);
if find=false then
showmessage('Такой фирмы в базе нет');
end;
procedure TFZakazc.BredClick(Sender: TObject);
begin
Bpoisk.Enabled:=false;
ButActive(false,false,false,false);
RedActive(false,true,false,false,true);
DataSource1.Autoedit:=true; //Разрешение редактирования записей
end;
procedure TFZakazc.BsaveClick(Sender: TObject);
begin
TZakazch.Post; //Сохранение изменений
Bpoisk.Enabled:=true;
ButActive(true,true,true,true);
RedActive(true,false,true,true,false);
DataSource1.Autoedit:=false; //Запрет редактирования записей
end;
procedure TFZakazc.BcanClick(Sender: TObject);
begin
TZakazch.Cancel;
Bpoisk.Enabled:=true;
ButActive(true,true,true,true);
RedActive(true,false,true,true,false);
DataSource1.Autoedit:=false; //Запрет редактирования записей
end;
procedure TFZakazc.BnewClick(Sender: TObject);
begin
TZakazch.Append; //Добавление записи
DataSource1.Autoedit:=true; //Разрешение редактирования записей
Bpoisk.Enabled:=false;
ButActive(false,false,false,false);
RedActive(false,true,false,false,true);
end;
procedure TFZakazc.BdelClick(Sender: TObject);
begin
TZakaz.Open; //Открытие таблицы закзов
if TZakaz.Locate('Kod_zakazch',TZakazch['Kod_Zakazch'],[])
then ShowMessage('Запись используется. Удаление невозможно!')
else if MessageDlg('Удалить запись?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
TZakazch.Delete; //Удаление записи
TZakaz.Close; //Закрытие таблицы закзов
end;
end.