Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
23
Добавлен:
20.06.2014
Размер:
247.3 Кб
Скачать

Информационное обеспечение систем управления

Лабораторная работа №1-3

Выполнила: Семина Т.

Группа И-41

  1. Создание заполнение и просмотр базы данных

Содержимое созданных таблиц:

detal.db // таблица детализации заказов

sklad.db // таблица товаров

zakaz.db //таблица заказов

zakazch.db //таблица заказчиков

  1. Текст запросов к полученной базе данных

Запрос 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

Полученный набор данных:

  1. Главная форма:

Текст модуля:

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;

  1. Форма таблицы заказчиков:

Текст модуля:

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.