Студопедия — Описание задачи
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Описание задачи






Разрабатываемое приложение предназначено для учета поставок медикаментов. Система должна хранить, добавлять, изменять и удалять информацию об ассортименте обуви: ее наименовании, размере, цене и количестве, а также об изготовителе: названии фирмы и ее адресе. Система должна поддерживать следующие функции:

- отображать информацию об ассортименте имеющейся обуви - идентификатор ассортимента, наименование обуви, размер, цену, количество, текущую дату;

- отображать информацию об изготовителе обуви - идентификатор изготовителя, название фирмы, ее адрес;

- формировать сведения об ассортименте обуви;

- формировать сведения об изготовителе обуви;

- осуществлять запросы к базе данных;

- формировать отчетные документы.

Тестовый пример 1. Проверка функции учет информации о производителях.

При запуске приложения на экране появится главное окно приложения (Рисунок Б.1). Таблица изготовителя будет уже заполнена данными об изготовителе. Чтобы заполнить таблицу изготовителя, необходимо заполнить все соответствующие поля, для этого щелкнуть по кнопке «Добавить». Откроется новое окно приложения, в которое нужно будет ввести необходимые данные и нажать кнопку «ОК» (Рисунок Б.2). Чтобы обновить данные в таблице, следует нажать кнопку «Обновить», в результате чего информация в таблице изготовителя будет обновлена (Рисунок Б.3). Для изменения какой – либо записи таблицы, требуется нажать на кнопку «Изменить» и внести необходимые изменения записи, после чего нажать «ОК» (Рисунок Б.4). Записи из таблицы можно также и удалять. Для этого требуется выделить необходимую запись и нажать на кнопку «Удалить». После этого откроется окно с предупреждением, нужно ли удалять данную запись или нет (Рисунок Б.5). Требуется сделать выбор, нажав на кнопку «Да» или «Нет» (Рисунок Б.6).

Тестовый пример 2. Чтобы начать работу с таблицей ассортимент, требуется использовать кнопки «Добавить», «Изменить», «Удалить», «Запросы», а также использовать поле «Фильтр» для фильтрации информации в таблице. Для добавления записи в таблицу требуется использовать кнопку «Добавить» (Рисунок Б.7). При нажатии на эту кнопку осуществляется добавление записи в таблицу ассортимента (Рисунок Б.8). После открытия формы для добавления новой записи, требуется заполнить соответствующие пустые поля «Товар», «Размер», «Цена», «Количество», поле «Текущая дата» заполняется автоматически датой на настоящее время, но если требуется, то можно выбрать другую дату (Рисунок Б.9). После чего, необходимо нажать на кнопку «ОК» (Рисунок Б.10), либо «Отмена» (Рисунок Б.11).

Чтобы изменить какую – то запись в таблице, в начале нужно ее выделить и нажать кнопку «Изменить» (Рисунок Б.12). В результате чего откроется окно изменения записи (Рисунок Б.13). Чтобы внести изменения нужно установить курсор в соответствующее поле и отредактировать информацию (Рисунок Б.14). Далее нажать кнопку «ОК» для подтверждения или «Отменить» для выхода из окна изменений записи.

Чтобы удалить какую – то запись из таблицы, следует выделить ее, после чего нажать кнопку «Удалить» (Рисунок Б.15). Программа выдаст окно с подтверждением, нужно ли удалять текущую запись или нет (Рисунок Б.16). Сделать выбор при помощи кнопки «Да», для того, чтобы запись была удалена, либо кнопки «Нет» для отмены удаления записи из таблицы.

Для выполнения запросов, требуется нажать на кнопку «Запросы» (Рисунок Б.17). Приложение выдаст форму с таблицей и кнопками «Максимальная цена» (Рисунок Б.18), «Средний размер» (Рисунок Б.19), «Значение размера с максимальной ценой больше 1200» (Рисунок Б.20), «Количество размеров» (Рисунок Б.20). Для того, чтобы в таблице отобразилась информация с максимальной ценой обуви, требуется нажать кнопку «Максимальная цена» (Рисунок Б.18), результат будет отображен в таблице (Рисунок Б.21). Для отображения информации обуви среднего размера, нажать кнопку «Средний размер» (Рисунок Б.19). В таблице будет отображен результат данного запроса (Рисунок Б.22). Чтобы приложение вывело в таблицу информацию о том, каково значение размера с максимальной ценой больше 1200, нажать кнопку «Значение размера с максимальной ценой больше 1200» (Рисунок Б.20). В таблице будет выведен результат данного запроса (Рисунок Б.23). Если пользователю необходима информация о количестве размеров обуви, ему необходимо нажать кнопку «Количество размеров» (Рисунок Б.20). После чего приложение выдаст результат данного запроса, который будет выведен в таблице (Рисунок Б.24).

Чтобы выйти завершить работу с запросами, необходимо нажать кнопку «Выход» (Рисунок Б.25).

При работе с таблицей ассортимента товара обуви можно также еще и произвести фильтрацию всей информации таблицы. Для этого в пустое поле ввода информации для фильтрации (Рисунок Б.26) ввести ту информацию, которая должна быть найдена (Рисунок Б.27). После чего поставить галочку рядом со словом «Фильтр» (Рисунок Б.28). Приложение выведет найденную запись с введенной в поле фильтрации информацию (Рисунок Б.29).

На форме «Учет о сведениях работы обувного магазина» приложения SHOP существует главное меню, которое состоит из трех пунктов: Файл (Рисунок Б.30), Таблица (Рисунок Б.31), Отчет (Рисунок Б.32). После нажатия на кнопку главного меню «Файл» будет виден выпадающий список с выбором «Выйти» (Рисунок Б.32) для выхода из приложения и «Обновить» (Рисунок Б.33) для обновления информации в таблице изготовитель. После нажатия на кнопку главного меню «Таблица» (Рисунок Б.31) откроется выпадающий список с выбором действий «Добавить» (Рисунок Б.34) для добавления записи в таблицу, «Изменить» (Рисунок Б.35) для изменения записи в таблице, «Удалить» для удаления какой – либо записи из таблицы. На главной форме приложения в главном меню представлена также кнопка «Отчет (Рисунок Б.36). Это пункт нужен для отображения отчета на экран об ассортименте обуви и ее изготовителе (Рисунок Б.37).

 

8.4 Входные и выходные данные

 

Входными данными является информация о производителях и ассортименте обуви. Выходными данными является информация, сформированная по запросам пользователя, а также отчёт, предназначенный для печати.

Заключение

В результате проведенной работы была разработана база данных учета для сведений работы обувного магазина, разработан алгоритм решения задачи, составлена и отлажена программа, оформлена документация на программу. Проведенные испытания показали, что программа работает правильно. Все требования технического задания выполнены полностью.

За время работы над курсовым проектом был значительно повышен уровень практических навыков программирования в среде Delphi, освоен процесс разработки клиент-серверных приложений баз данных.

 

Список использованных источников

1. Еременко А.В., Бобрышева Г.В., Долгова И.А. Проектирование баз данных с помощью Open ModelSphere. - Пенза: Издательство ПГУ, 2011. - 76 с.

2. Еременко А.В., Долгова И.А., Щербакова С.В. Базы данных. Учебник. - Пенза: Издательство ПГУ, 2010. - 110 с.

3. http://dep_ivs.pnzgu.ru/

 

 

 

 


Приложение А
(обязательное)

(Листинг программы)

 

unit main001;

 

interface

 

uses

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

Dialogs, StdCtrls, Menus, ComCtrls, ExtCtrls, Grids, DBGrids, ActnList, DM;

 

type

TfmMain = class(TForm)

Panel1: TPanel;

StatusBar1: TStatusBar;

buExit: TButton;

buRefresh: TButton;

DBGrid1: TDBGrid;

buAdd: TButton;

buEdit: TButton;

buDelete: TButton;

MainMenu1: TMainMenu;

mFile: TMenuItem;

mExit: TMenuItem;

mRefresh: TMenuItem;

ActionList1: TActionList;

acQuit: TAction;

acRefresh: TAction;

mTable: TMenuItem;

mInsert: TMenuItem;

mUpdate: TMenuItem;

mDelete: TMenuItem;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

DBGrid2: TDBGrid;

chbFiltr: TCheckBox;

edFilter: TEdit;

Panel2: TPanel;

N1: TMenuItem;

procedure FormShow(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure acQuitExecute(Sender: TObject);

procedure acRefreshExecute(Sender: TObject);

procedure buAddClick(Sender: TObject);

procedure buEditClick(Sender: TObject);

procedure buDeleteClick(Sender: TObject);

procedure mInsertClick(Sender: TObject);

procedure mUpdateClick(Sender: TObject);

procedure mDeleteClick(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure chbFiltrClick(Sender: TObject);

procedure N1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

fmMain: TfmMain;

 

implementation

 

uses Add, Edit, EditPrep, AddPrep, Zaproci;

 

{$R *.dfm}

 

 

procedure TfmMain.acQuitExecute(Sender: TObject);

begin

Application.Terminate;

end;

 

procedure TfmMain.acRefreshExecute(Sender: TObject);

begin

with dm1 do

begin

//Обновляем набор данных dstVid_Voisk

dstAssortiment.FullRefresh;

dstIsgotovitel.FullRefresh;

//Выводим количество записей в таблице Vid_Voisk

StatusBar1.Panels[1].Text:= IntToStr(dstAssortiment.RecordCount);

end;

end;

 

procedure TfmMain.buAddClick(Sender: TObject);

begin

//Создаем форму Add

fmAdd:= TfmAdd.Create(Application);

//Выполняем на этой форме добавление записи

if fmAdd.ShowModal = mrOK then

begin

//Подтверждаем транзакцию

dm1.dstAssortiment.Post;

StatusBar1.Panels[1].Text:= IntToStr(dm1.dstAssortiment.RecordCount);

end

//или откатываем ее

else dm1.dstAssortiment.Cancel;

end;

 

procedure TfmMain.buDeleteClick(Sender: TObject);

begin

with dm1 do

begin

if dstAssortiment.RecordCount= 0 then exit;

if Application.MessageBox('Удалить текущую запись?', 'Удаление',

MB_YESNO) = mrYes then dstAssortiment.Delete;

StatusBar1.Panels[1].Text:= IntToStr(dstAssortiment.RecordCount);

end;

end;


procedure TfmMain.buEditClick(Sender: TObject);

begin

//Проверить существуют ли записи в таблице

if dm1.dstAssortiment.RecordCount = 0 then exit;

//Создать форму fmEdit

fmEdit:= TfmEdit.Create(Application);

//Выполняем на этой форме изменение записи

if fmEdit.ShowModal = mrOK then

begin

//Подтверждаем транзакцию

dm1.dstAssortiment.Post;

StatusBar1.Panels[1].Text:= IntToStr(dm1.dstAssortiment.RecordCount);

end

//или откатываем ее

else dm1.dstAssortiment.Cancel;

end;

 

procedure TfmMain.Button1Click(Sender: TObject);

begin

fmZaprosi.Show;

end;

 

 

procedure TfmMain.Button2Click(Sender: TObject);

begin

//Создаем форму Add

fmAddPrep:= TfmAddPrep.Create(Application);

//Выполняем на этой форме добавление записи

if fmAddPrep.ShowModal = mrOK then

begin

//Подтверждаем транзакцию

dm1.dstIsgotovitel.Post;

StatusBar1.Panels[1].Text:= IntToStr(dm1.dstIsgotovitel.RecordCount);

end

//или откатываем ее

else dm1.dstIsgotovitel.Cancel;

end;

 

procedure TfmMain.Button3Click(Sender: TObject);

begin

//Проверить существуют ли записи в таблице

if dm1.dstIsgotovitel.RecordCount = 0 then exit;

//Создать форму fmEdit

fmEdPrep:= TfmEdPrep.Create(Application);

//Выполняем на этой форме изменение записи

if fmEdPrep.ShowModal = mrOK then

begin

//Подтверждаем транзакцию

dm1.dstIsgotovitel.Post;

StatusBar1.Panels[1].Text:= IntToStr(dm1.dstIsgotovitel.RecordCount);

end

//или откатываем ее

else dm1.dstIsgotovitel.Cancel;

end;

 

procedure TfmMain.Button4Click(Sender: TObject);

begin

with dm1 do

begin

if dstIsgotovitel.RecordCount= 0 then exit;

if Application.MessageBox('Удалить текущую запись?', 'Удаление',

MB_YESNO) = mrYes then dstIsgotovitel.Delete;

StatusBar1.Panels[1].Text:= IntToStr(dstIsgotovitel.RecordCount);

end;

end;

 

procedure TfmMain.chbFiltrClick(Sender: TObject);

var fn: string;

begin

fn:= '';

if (chbFiltr.Checked) and (edFilter.Text<>'') then

begin

//Если свойство checked установлено и есть образец для поиска

fn:= '(NAME LIKE '''+edFilter.Text+'%'')';

dm1.dstIsgotovitel.Close;

dm1.dstIsgotovitel.MainWhereClause:= fn;

dm1.dstIsgotovitel.Open;

end

else

begin

//Если свойство checked не установлено

dm1.dstIsgotovitel.Close;

dm1.dstIsgotovitel.MainWhereClause:= fn;

dm1.dstIsgotovitel.Open;

end;

end;

 

procedure TfmMain.FormClose(Sender: TObject; var Action: TCloseAction);

begin

with dm1 do

begin

//Запрос закрывается.

dstAssortiment.Active:= False;

//Закрываем связь с базой данных

dbShop.Connected:= False;

end;

end;

 

 

procedure TfmMain.FormShow(Sender: TObject);

begin

//Открыть базу данных

with dm1 do

begin

dbShop.Connected:= True;

dstIsgotovitel.Active:= True;

StatusBar1.Panels[1].Text:= IntToStr(dstIsgotovitel.RecordCount);

end;

end;

 

procedure TfmMain.mDeleteClick(Sender: TObject);

begin

buDelete.Click;

end;

 

procedure TfmMain.mInsertClick(Sender: TObject);

begin

buAdd.Click;

end;

 

procedure TfmMain.mUpdateClick(Sender: TObject);

begin

buEdit.Click;

end;

 

procedure TfmMain.N1Click(Sender: TObject);

begin

with dm1 do

begin

frxReport1.ShowReport();

end;

end;

 

end.

 

unit DM;

 

interface

 

uses

SysUtils, Classes, DB, pFIBDataSet, FIBDatabase, pFIBDatabase, FIBDataSet,

frxClass, frxDBSet;

 

type

Tdm1 = class(TDataModule)

dbShop: TpFIBDatabase;

ReadTransaction: TpFIBTransaction;

WriteTransaction: TpFIBTransaction;

dstAssortiment: TpFIBDataSet;

dsAssortiment: TDataSource;

dsQuery: TDataSource;

dstQuery: TpFIBDataSet;

dsIsgotovitel: TDataSource;

dstIsgotovitel: TpFIBDataSet;

dstAssortimentID_F: TFIBIntegerField;

dstAssortimentISDELIE: TFIBStringField;

dstAssortimentADRES: TFIBStringField;

dstIsgotovitelID_ISG: TFIBIntegerField;

dstIsgotovitelNAME: TFIBStringField;

dstIsgotovitelRAZMER: TFIBIntegerField;

dstIsgotovitelCOST: TFIBFloatField;

dstIsgotovitelKOL: TFIBIntegerField;

dstIsgotovitelTEDATA: TFIBDateField;

dstIsgotovitelID_IS: TFIBIntegerField;

dstIsgotovitelISG: TStringField;

dsAll: TDataSource;

dstAll: TpFIBDataSet;

frxReport1: TfrxReport;

frxDBDataset1: TfrxDBDataset;

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

dm1: Tdm1;

 

implementation

 

{$R *.dfm}

 

 

end.

 

unit Zaproci;

 

interface

 

uses

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

Dialogs, Grids, DBGrids, ExtCtrls, DM, StdCtrls;

 

type

TfmZaprosi = class(TForm)

Panel1: TPanel;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button6: TButton;

DBGrid1: TDBGrid;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

fmZaprosi: TfmZaprosi;

 

implementation

 

{$R *.dfm}


procedure TfmZaprosi.Button1Click(Sender: TObject);

begin

DBGrid1.Columns[0].Visible:= True;

DBGrid1.Columns[1].Visible:= False;

DBGrid1.Columns[2].Visible:= False;

DBGrid1.Columns[3].Visible:= False;

DBGrid1.Columns[4].Visible:= False;

with dm1 do

begin

if dstQuery.Active then dstQuery.Close;

dstQuery.SelectSQL.Clear;

dstQuery.SelectSQL.Add('SELECT MAX(COST)');

dstQuery.SelectSQL.Add('FROM ISGOTOVITEL');

dstQuery.Open;

end;

end;

 

procedure TfmZaprosi.Button2Click(Sender: TObject);

begin

DBGrid1.Columns[0].Visible:= False;

DBGrid1.Columns[1].Visible:= True;

DBGrid1.Columns[2].Visible:= False;

DBGrid1.Columns[3].Visible:= False;

DBGrid1.Columns[4].Visible:= False;

with dm1 do

begin

if dstQuery.Active then dstQuery.Close;

dstQuery.SelectSQL.Clear;

dstQuery.SelectSQL.Add('SELECT AVG(RAZMER)');

dstQuery.SelectSQL.Add('FROM ISGOTOVITEL');

dstQuery.Open;

end;

end;

 

procedure TfmZaprosi.Button3Click(Sender: TObject);

begin

with dm1 do

begin

DBGrid1.Columns[0].Visible:= True;

DBGrid1.Columns[1].Visible:= False;

DBGrid1.Columns[2].Visible:= False;

DBGrid1.Columns[3].Visible:= True;

DBGrid1.Columns[4].Visible:= False;

if dstQuery.Active then dstQuery.Close;

dstQuery.SelectSQL.Clear;

dstQuery.SelectSQL.Add('SELECT RAZMER, MAX(COST)');

dstQuery.SelectSQL.Add('FROM ISGOTOVITEL');

dstQuery.SelectSQL.Add('GROUP BY RAZMER');

dstQuery.SelectSQL.Add('HAVING (MAX(COST))>1200');

dstQuery.Open;

end;

end;

 

procedure TfmZaprosi.Button4Click(Sender: TObject);

begin

fmZaprosi.Close;

end;

 

procedure TfmZaprosi.Button6Click(Sender: TObject);

begin

DBGrid1.Columns[0].Visible:= False;

DBGrid1.Columns[1].Visible:= False;

DBGrid1.Columns[2].Visible:= False;

DBGrid1.Columns[3].Visible:= False;

DBGrid1.Columns[4].Visible:= True;

with dm1 do

begin

if dstQuery.Active then dstQuery.Close;

dstQuery.SelectSQL.Clear;

dstQuery.SelectSQL.Add('SELECT COUNT (DISTINCT RAZMER)');

dstQuery.SelectSQL.Add('FROM ISGOTOVITEL');

dstQuery.Open;

end;

end;

 

end.

 

unit AddPrep;

 

interface

 

uses

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

Dialogs, StdCtrls, DBCtrls, ExtCtrls, ComCtrls;

 

type

TfmAddPrep = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label7: TLabel;

DBLookupComboBox1: TDBLookupComboBox;

Panel1: TPanel;

Panel2: TPanel;

buOK: TButton;

buCancel: TButton;

dtpTime: TDateTimePicker;

procedure buOKClick(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

fmAddPrep: TfmAddPrep;

 

implementation

 

uses DM;

 

{$R *.dfm}

 

procedure TfmAddPrep.buOKClick(Sender: TObject);

begin

with dm1 do

begin

//Включаем набор данных в режим добавления записи

dstIsgotovitel.Insert;

//Заносим введенные значения в набор данных dstPhone

dstIsgotovitel.FBN('NAME').AsString:= edit1.Text;

dstIsgotovitel.FBN('RAZMER').AsInteger:= StrToInt(edit2.Text);

dstIsgotovitel.FBN('COST').AsInteger:= StrToInt(edit3.Text);

dstIsgotovitel.FBN('KOL').AsInteger:= StrToInt(edit4.Text);

dstIsgotovitel.FBN('TEDATA').AsDateTime:= dtpTime.Date;

dstIsgotovitel.FBN('ISG').AsString:= DBLookupComboBox1.KeyValue;

end;

end;

 

procedure TfmAddPrep.FormClose(Sender: TObject; var Action: TCloseAction);

begin

//Удаляем форму из памяти компьютера

Action:= caFree;

fmAddPrep:= nil;

end;

 

end.

unit EditPrep;

 

interface

 

uses

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

Dialogs, StdCtrls, DBCtrls, ExtCtrls, ComCtrls;

 

type

TfmEdPrep = class(TForm)

Panel1: TPanel;

Label7: TLabel;

Label5: TLabel;

Label4: TLabel;

Label3: TLabel;

Label2: TLabel;

Label1: TLabel;

Edit4: TEdit;

Edit3: TEdit;

Edit2: TEdit;

Edit1: TEdit;

DBLookupComboBox1: TDBLookupComboBox;

Panel2: TPanel;

buOK: TButton;

buCancel: TButton;

dtpTime: TDateTimePicker;

procedure buOKClick(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormShow(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

fmEdPrep: TfmEdPrep;

 

implementation

 

uses DM;

 

{$R *.dfm}

 

procedure TfmEdPrep.buOKClick(Sender: TObject);

begin

with dm1 do

begin

//Включаем набор данных в режим добавления записи

dstIsgotovitel.Insert;

//Заносим введенные значения в набор данных dstPhone

dstIsgotovitel.FBN('NAME').AsString:= edit1.Text;

dstIsgotovitel.FBN('RAZMER').AsInteger:= StrToInt(edit2.Text);

dstIsgotovitel.FBN('COST').AsInteger:= StrToInt(edit3.Text);

dstIsgotovitel.FBN('KOL').AsInteger:= StrToInt(edit4.Text);

dstIsgotovitel.FBN('TEDATA').AsDateTime:= dtpTime.Date;

dstIsgotovitel.FBN('ISG').AsString:= DBLookupComboBox1.KeyValue;

end;

end;

 

procedure TfmEdPrep.FormClose(Sender: TObject; var Action: TCloseAction);

begin

//Удаляем форму из памяти компьютера

Action:= caFree;

fmEdPrep:= nil;

end;

 

procedure TfmEdPrep.FormShow(Sender: TObject);

begin

with dm1 do

begin

edit1.Text:=dstIsgotovitel.FBN('NAME').AsString;

edit2.Text:=dstIsgotovitel.FBN('RAZMER').AsString;

edit3.Text:=dstIsgotovitel.FBN('COST').AsString;

edit4.Text:=dstIsgotovitel.FBN('KOL').AsString;

dtpTime.Date:= dstIsgotovitel.FBN('TEDATA').AsDateTime;

DBLookupComboBox1.KeyValue:=dstIsgotovitel.FBN('ISG').AsString;

end;

edit1.SetFocus;

end;

 

end.

 

 


ЭКРАННЫЕ ФОРМЫ

Приложение Б

(обязательное)

 

Рисунок Б.1 – Главное окно приложения

Рисунок Б.2 – Добавление записи в таблицу Isgotovitel

Рисунок Б.3 – Обновление данных в таблице

Рисунок Б.4 – Изменение записи

Рисунок Б.5 – Удаление выбранной записи

Рисунок Б.6 – Подтверждение удаления текущей записи

Рисунок Б.7 – Кнопка добавления записи в таблицу Assortiment

 

Рисунок Б.8 – Добавление записи в таблицу Assortiment

 

 

Рисунок Б.9 – Заполнение полей для добавления новой записи

 

 

Рисунок Б.10 – Выбор кнопки «ОК» для подтверждения добавления записи

Рисунок Б.11 – Выбор кнопки «Отмена» для отмены добавления записи


Рисунок Б.12 – Выделение записи и выбор кнопки «Изменить»

 

 

Рисунок Б.13 – Изменение записи

 

Рисунок Б.14 – Установление курсора в поле с необходимой информации и ее редактирование

 

Рисунок Б.15 – Выделение записи и выбор кнопки «Удалить» для удаления записи из таблицы

Рисунок Б.16 – Сообщение с подтверждением удаления текущей записи

Рисунок Б.17 – Выбор кнопки «Запросы» для выполнения программой запросов

 

Рисунок Б.18 – Выбор кнопки «Максимальная цена» для осуществления запроса и вывода необходимой информации в таблицу

 

Рисунок Б.19 - Выбор кнопки «Средний размер» для осуществления запроса и вывода необходимой информации в таблицу

Рисунок Б.20 - Выбор кнопки «Значение размера с максимальной ценой больше 1200» для осуществления запроса и вывода необходимой информации в таблицу

Рисунок Б.21 - Выбор кнопки «Количество размеров» для осуществления запроса и вывода необходимой информации в таблицу

Рисунок Б.22 – Вывод в таблицу информацию с максимальной ценой обуви

 

 

Рисунок Б.23 – Вывод в таблицу информацию со средним размеров обуви

Рисунок Б.24 – Вывод в таблицу информацию об обуви значения размера с максимальной ценой больше 1200

Рисунок Б.25 – Вывод в таблицу информацию об ассортименте обуви с количеством размеров

Рисунок Б.26 – Выбор кнопки «Выход» для выхода из окна запросов

Рисунок Б.27 – Поле для ввода информации, которая должна быть отфильтрована

 

 

Рисунок Б.28 – Ввод в поле информацию, по которой нужно найти запись

 

Рисунок Б.29 – Вывод отфильтрованной информации по введенному значению (товар)

Рисунок Б.30 – Расположение пункта «Файл» на главном меню приложения

 

Рисунок Б.31 – Расположение пункта «Таблица» на главном меню приложения

Рисунок Б.31 – Расположение пункта «Отчет» на главном меню приложения

Рисунок Б.32 – Расположение подпункта «Выйти» для выхода из приложения на главном меню приложения

Рисунок Б.33 – Расположение подпункта «Обновить» для выхода из приложения на главном меню приложения

Рисунок Б.34 – Расположение пункта «Таблица» для работы с таблицей из приложения

Рисунок Б.35 – Расположение подпункта «Добавить» для добавления записи в таблицу

Рисунок Б.35 – Расположение подпункта «Изменить» для изменения записи в таблице

 

Рисунок Б.36 – Расположение подпункта «Удалить» для удаления записи в таблице

Рисунок Б.37 – Расположение пункта «Отчет» выводы отчета с ассортиментом обуви и ее изготовителях

Рисунок 38 – Вывод отчета об ассортименте обуви и ее изготовителях

 

 

 

 


Приложение В

(рекомендуемое)

(SQL-скрипт)

 

 

/***********************************************************

Прямое проектирование

Plugin: Инструмент генерации ANSI DDL операторов (3.2.0 - 05-12-2009), Grandite

 

Имя базы данных: "База данных"

Source file: "f:\projects2009\shop.sms"

 

Generated on: 16.11.2014 8:56:00

Generated by Open ModelSphere Версия 3.2"

***********************************************************

 

 

***********************************************************

CREATE STATEMENTS

***********************************************************/

 

 

--/***********************************************************

-- TABLE 'ASSORTIMENT'

--***********************************************************/

 

CREATE TABLE ASSORTIMENT

(

AID INTEGER NOT NULL,

NAME VARCHAR(20),

RAZMER INTEGER,

COST DOUBLE PRECISION,

KOL INTEGER,

TEDATA DATE,

IID INTEGER NOT NULL

);

 

 

--/***********************************************************

-- TABLE 'IZGOTOVITEL'

--***********************************************************/

 

CREATE TABLE IZGOTOVITEL

(

IID INTEGER NOT NULL,

NAME VARCHAR(30),

ADRES VARCHAR(20)

);

 

 

--/***********************************************************

-- TABLE 'PRODAJI'

--***********************************************************/

 

CREATE TABLE PRODAJI

(

PID INTEGER NOT NULL,

PDATA DATE,

QTY INTEGER,

SID INTEGER NOT NULL

);

 

 

--/***********************************************************

-- TABLE 'SKLAD'

--***********************************************************/

 

CREATE TABLE SKLAD

(

SID INTEGER NOT NULL,

QTY INTEGER,

SDATA DATE,

IID INTEGER NOT NULL,

AID INTEGER NOT NULL

);

 

 

--/***********************************************************

-- PRIMARY/UNIQUE KEY 'PK_ASSORTIMENT'

--***********************************************************/

 

ALTER TABLE ASSORTIMENT

ADD CONSTRAINT PK_ASSORTIMENT PRIMARY KEY (

IID, AID);

--/***********************************************************

-- PRIMARY/UNIQUE KEY 'PK_IZGOTOVITEL'

--***********************************************************/

 

ALTER TABLE IZGOTOVITEL

ADD CONSTRAINT PK_IZGOTOVITEL PRIMARY KEY (

IID);

--/***********************************************************

-- PRIMARY/UNIQUE KEY 'PK_PRODAJI'

--***********************************************************/

 

ALTER TABLE PRODAJI

ADD CONSTRAINT PK_PRODAJI PRIMARY KEY (

SID, PID);

--/***********************************************************

-- PRIMARY/UNIQUE KEY 'PK_SKLAD'

--***********************************************************/

 

ALTER TABLE SKLAD

ADD CONSTRAINT PK_SKLAD PRIMARY KEY (

SID);

ALTER TABLE ASSORTIMENT

ADD CONSTRAINT FK_ASSORTIMENT_1

FOREIGN KEY (IID)

REFERENCES IZGOTOVITEL;

 

ALTER TABLE PRODAJI

ADD CONSTRAINT FK_PRODAJI_1

FOREIGN KEY (SID)

REFERENCES SKLAD;

 

ALTER TABLE SKLAD

ADD CONSTRAINT FK_SKLAD_1

FOREIGN KEY (IID, AID)

REFERENCES ASSORTIMENT;

 

*******************************************************************/

/*** Generated by IBExpert 2012.12.18.1 01.12.2014 22:11:19 ***/

*******************************************************************/

 

SET SQL DIALECT 3;

 

SET NAMES WIN1251;

 

CREATE DATABASE 'SQLEDU03:C:\Users\user\Desktop\5 семестр\БД\ЛР16\SHOP.fdb'

USER 'SYSDBA' PASSWORD 'masterkey'

PAGE_SIZE 16384

DEFAULT CHARACTER SET WIN1251 COLLATION WIN1251;

 

*******************************************************************/

/*** Stored Procedures ***/

********************************************************************/

SET TERM ^;

 

create or alter procedure UVELICHENIE (

UVEL double precision)

as

begin

update ISGOTOVITEL

set COST=COST*(:uvel/100+1);

end^

 

SET TERM; ^

 

/* Following GRANT statetements are generated automatically */

 

GRANT SELECT,UPDATE ON ISGOTOVITEL TO PROCEDURE UVELICHENIE;

 

/* Existing privileges on this procedure */

 

GRANT EXECUTE ON PROCEDURE UVELICHENIE TO TEAM009;

SET TERM ^;

 

create or alter procedure VSEGO

returns (

OK double precision)

as

begin

select sum(COST) from ISGOTOVITEL

into:OK;

SUSPEND;

end^

 

SET TERM; ^

 

/* Following GRANT statetements are generated automatically */

 

GRANT SELECT ON ISGOTOVITEL TO PROCEDURE VSEGO;

 

/* Existing privileges on this procedure */

 

GRANT EXECUTE ON PROCEDURE VSEGO TO TEAM009;

/******************************************************************************/

/*** Generated by IBExpert 24.12.2014 22:13:44 ***/

/******************************************************************************/

 

/******************************************************************************/

/*** Following SET SQL DIALECT is just for the Database Comparer ***/

/******************************************************************************/

SET SQL DIALECT 3;

/******************************************************************************/

/*** Tables ***/

/******************************************************************************/

 

CREATE GENERATOR GEN1;

 

CREATE TABLE ASSORTIMENT (

ID_F PERCENT NOT NULL /* PERCENT = INTEGER */,

ISDELIE PERSON /* PERSON = VARCHAR(20) */,

ADRES ADDRESSES /* ADDRESSES = VARCHAR(30) */

);

/******************************************************************************/

/*** Primary Keys ***/

/******************************************************************************/

 

ALTER TABLE ASSORTIMENT ADD CONSTRAINT PK_ASSORTIMENT PRIMARY KEY (ID_F);

 

/******************************************************************************/

/*** Triggers ***/

/******************************************************************************/

SET TERM ^;

/******************************************************************************/

/*** Triggers for tables ***/

/******************************************************************************/

/* Trigger: ASSORTIMENT_BI0 */

CREATE OR ALTER TRIGGER ASSORTIMENT_BI0 FOR ASSORTIMENT

ACTIVE BEFORE INSERT POSITION 0

AS

begin

if ((new.id_f is null) or (new.id_f = 0)) then

begin

new.ID_F = gen_id(gen1, 1);

end

end

^

SET TERM; ^

 

/******************************************************************************/

/*** Privileges ***/

/******************************************************************************/

 

/* Privileges of users */

GRANT ALL ON ASSORTIMENT TO TEAM009 WITH GRANT OPTION;

/******************************************************************************/

/*** Generated by IBExpert 24.12.2014 22:14:47 ***/

/******************************************************************************/

 

/******************************************************************************/

/*** Following SET SQL DIALECT is just for the Database Comparer ***/

/******************************************************************************/

SET SQL DIALECT 3;

 

/******************************************************************************/

/*** Tables ***/

/******************************************************************************/

 

CREATE GENERATOR GEN2;

 

CREATE TABLE ISGOTOVITEL (

ID_ISG PERCENT NOT NULL /* PERCENT = INTEGER */,

NAME PERSON /* PERSON = VARCHAR(20) */,

RAZMER PERCENT /* PERCENT = INTEGER */,

COST MONEY /* MONEY = DOUBLE PRECISION */,

KOL PERCENT /* PERCENT = INTEGER */,

TEDATA DATES /* DATES = DATE */,

ID_IS PERCENT NOT NULL /* PERCENT = INTEGER */

);

 

/******************************************************************************/

/*** Primary Keys ***/

/******************************************************************************/

 

ALTER TABLE ISGOTOVITEL ADD CONSTRAINT PK_ISGOTOVITEL PRIMARY KEY (ID_ISG);

 

/******************************************************************************/

/*** Foreign Keys ***/

/******************************************************************************/

ALTER TABLE ISGOTOVITEL ADD CONSTRAINT FK_ISGOTOVITEL_1 FOREIGN KEY (ID_IS) REFERENCES ASSORTIMENT (ID_F) ON DELETE CASCADE;

/******************************************************************************/

/*** Triggers ***/

/******************************************************************************/

SET TERM ^;

 

/******************************************************************************/

/*** Triggers for tables ***/

/******************************************************************************/

/* Trigger: ISGOTOVITEL_BI0 */

CREATE OR ALTER TRIGGER ISGOTOVITEL_BI0 FOR ISGOTOVITEL

ACTIVE BEFORE INSERT POSITION 0

AS

begin

if ((new.id_isg is null) or (new.id_isg = 0)) then

begin

new.ID_ISG = gen_id(gen2, 1);

end

end

^

SET TERM; ^

 

/******************************************************************************/

/*** Privileges ***/

/******************************************************************************/

/* Privileges of users */

GRANT ALL ON ISGOTOVITEL TO TEAM009 WITH GRANT OPTION;

 

 

 


ТЕКСТ DFM - ФАЙЛОВ

Приложение Г

(справочное)

 

 

 

 


ТЕКСТ DMF - ФАЙЛОВ

Приложение Г

(справочное)

 

object fmAdd: TfmAdd

Left = 0

Top = 0

Caption = #1044#1086#1073#1072#1074#1083#1077#1085#1080#1077' '#1079#1072#1087#1080#1089#1080

ClientHeight = 201

ClientWidth = 447

Color = clBtnFace

Font.Charset = DEFAULT_CHARSET

Font.Color = clWindowText

Font.Height = -11

Font.Name = 'Tahoma'

Font.Style = []

OldCreateOrder = False

OnClose = FormClose

PixelsPerInch = 96

TextHeight = 13

object Panel1: TPanel

Left = 0

Top = 160

Width = 447

Height = 41

Align = alBottom

TabOrder = 0

object buOK: TButton

Left = 40

Top = 8

Width = 75

Height = 25

Caption = 'OK'

Default = True

ModalResult = 1

TabOrder = 0

OnClick = buOKClick

end

object buCancel: TButton

Left = 144

Top = 8

Width = 75

Height = 25

Cancel = True

Caption = #1054#1090#1084#1077#1085#1080#1090#1100

ModalResult = 2

TabOrder = 1

end

end

object Panel2: TPanel

Left = 0

Top = 0

Width = 447

Height = 160

Align = alClient

TabOrder = 1

object Label1: TLabel

Left = 56

Top = 35

Width = 32

Height = 13

Caption = #1060#1080#1088#1084#1072

end

object Label2: TLabel

Left = 56

Top = 73

Width = 31

Height = 13

Caption = #1040#1076#1088#1077#1089

end

object Edit1: TEdit

Left = 144

Top = 32

Width = 225

Height = 21

TabOrder = 0

end

object Edit2: TEdit

Left = 144

Top = 70

Width = 225

Height = 21

TabOrder = 1

end

end

end

 

object fmAddPrep: TfmAddPrep

Left = 0

Top = 0

Caption = 'fmAddPrep'

ClientHeight = 392

ClientWidth = 455

Color = clBtnFace

Font.Charset = DEFAULT_CHARSET

Font.Color = clWindowText

Font.Height = -11

Font.Name = 'Tahoma'

Font.Style = []

OldCreateOrder = False

OnClose = FormClose

PixelsPerInch = 96

TextHeight = 13

object Panel1: TPanel

Left = 0

Top = 0

Width = 457

Height = 282

TabOrder = 0

object Label5: TLabel

Left = 56

Top = 127

Width = 73

Height = 13

Caption = #1058#1077#1082#1091#1097#1072#1103' '#1076#1072#1090#1072

end

object Label4: TLabel

Left = 56

Top = 100

Width = 66

Height = 13

Caption = #1050#1086#1083#1083#1080#1095#1077#1089#1090#1074#1086

end

object Label3: TLabel

Left = 56

Top = 73

Width = 26

Height = 13

Caption = #1062#1077#1085#1072

end

object Label2: TLabel

Left = 56

Top = 46

Width = 35

Height = 13

Caption = #1056#1072#1079#1084#1077#1088

end

object Label1: TLabel

Left = 56

Top = 19

Width = 30

Height = 13

Caption = #1058#1086#1074#1072#1088

end

object Edit4: TEdit

Left = 152

Top = 97

Width = 121

Height = 21

TabOrder = 0

end

object Edit3: TEdit

Left = 152

Top = 70

Width = 121

Height = 21

TabOrder = 1

end

object Edit2: TEdit

Left = 152

Top = 43

Width = 121

Height = 21

TabOrder = 2

end

object Edit1: TEdit

Left = 152

Top = 16

Width = 121

Height = 21

TabOrder = 3

end

object dtpTime: TDateTimePicker

Left = 152

Top = 124

Width = 186

Height = 21

Date = 41983.953054687500000000

Time = 41983.953054687500000000

TabOrder = 4

end

end

object Panel2: TPanel

Left = 0

Top = 280

Width = 457

Height = 113

TabOrder = 1

object buOK: TButton

Left = 56

Top = 38

Width = 75

Height = 25

Caption = 'OK'

Default = True

ModalResult = 1

TabOrder = 0

OnClick = buOKClick

end

object buCancel: TButton

Left = 240

Top = 40

Width = 75

Height = 25

Cancel = True

Caption = #1054#1090#1084#1077#1085#1080#1090#1100

ModalResult = 2

TabOrder = 1

end

end

end

 

 

object dm1: Tdm1

OldCreateOrder = False

Height = 345

Width = 372

object dbShop: TpFIBDatabase

Connected = True

DBName = 'sqledu03:D:\DATA\SHOP.FDB'

DBParams.Strings = (

'user_name=TEAM009'

'password=slave009')

DefaultTransaction = ReadTransaction

DefaultUpdateTransaction = WriteTransaction

SQLDialect = 3

Timeout = 0

LibraryName = 'C:\Program Files (x86)\Firebird\Firebird_2_5\bin\fbclient.dll'

WaitForRestoreConnect = 0

Left = 24

Top = 16

end

object ReadTransaction: TpFIBTransaction

Active = True

DefaultDatabase = dbShop

TimeoutAction = TARollback

Left = 104

Top = 16

end

object WriteTransaction: TpFIBTransaction

Active = True

DefaultDatabase = dbShop







Дата добавления: 2015-08-12; просмотров: 795. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Уравнение волны. Уравнение плоской гармонической волны. Волновое уравнение. Уравнение сферической волны Уравнением упругой волны называют функцию , которая определяет смещение любой частицы среды с координатами относительно своего положения равновесия в произвольный момент времени t...

Медицинская документация родильного дома Учетные формы родильного дома № 111/у Индивидуальная карта беременной и родильницы № 113/у Обменная карта родильного дома...

Основные разделы работы участкового врача-педиатра Ведущей фигурой в организации внебольничной помощи детям является участковый врач-педиатр детской городской поликлиники...

Классификация и основные элементы конструкций теплового оборудования Многообразие способов тепловой обработки продуктов предопределяет широкую номенклатуру тепловых аппаратов...

Именные части речи, их общие и отличительные признаки Именные части речи в русском языке — это имя существительное, имя прилагательное, имя числительное, местоимение...

Интуитивное мышление Мышление — это пси­хический процесс, обеспечивающий познание сущности предме­тов и явлений и самого субъекта...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия