Информационная система мебельного магазина

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,27 Мб
  • Опубликовано:
    2013-02-10
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Информационная система мебельного магазина

Министерство образования и науки Российской Федерации

Белгородский государственный технологический университет имени В.Г. Шухова

Институт ИТУС

Кафедра Информационных технологий






Курсовая работа

по информационным технологиям

на тему:

Информационная система мебельного магазина



Выполнил студент группы ИТ-31

Коденцев Александр Георгиевич

Проверил проф. Иванов И.В.




Белгород 2012

Содержание

 

1. Постановка задачи и определение основных требований к разрабатываемому программному обеспечению

.1 Введение

.2 Основание для разработки

.3 Назначение программного средства

.4 Постановка задачи

.5 Требования к программному средству

.5.1 Требования к функциональным характеристикам

.5.2 Требования к надежности

.5.3 Требования к составу и параметрам технических средств

.5.4 Требования к информационно-программной совместимости

. Требования к программной документации

.1 Состав программной документации

. Проектирование базы данных и программная реализация

.1 Разработка структуры базы данных

.2 Структура таблиц

.3 Разработка модульной структуры программы

Заключение

Список литературы

Приложение 1. Содержание файла SCRIPT.SQL

Приложение 2. Исходный код программы

Приложение 3. Руководство пользователя

1. Постановка задачи и определение основных требований к разрабатываемому программному обеспечению

.1 Введение

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

 

.2 Основание для разработки


Программа разрабатывается на основе учебного плана кафедры «Информационные системы и технологии» по дисциплине «Информационные технологии».

 

.3 Назначение программного средства


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

Программа позволяет:

1. Хранить товары магазина

2.      Разграничивать доступ к функционалу

.        Управлять заказами.

1.4 Постановка задачи


Реализовать следующий функционал:

1. Хранить товары магазина:

·  Просмотр списка товаров

·        Поиск по названию

·        Редактирование товара

·        Загрузка изображений

·        Присвоение материалов для товаров

·        Структурирование по каталогам

2. Разграничивать доступ к функционалу:

·  Возможность создания групп пользователей.

·        Возможность настройки прав доступа для различных групп пользователей

·        Возможность добавления новых пользователей

·        Возможность редактирования групп пользователей, и сами пользователей

3. Управлять заказами:

·  Просмотр заказов

·        Редактирование заказа

·        Редактирование позиции заказа

1.5 Требования к программному средству

 

1.5.1 Требования к функциональным характеристикам

Возможность добавление, изменения, удаления записей.

·  Невозможность изменения определенных полей.

·        Удобный графический интерфейс клиентского приложения.

·        Наглядное представление данных (в виде диаграмм \ графиков).

·        Аутентификация пользователя

 

1.5.2 Требования к надежности

·  Предусмотреть контроль вводимой информации.

·        Предусмотреть ограничение изменения системных полей.

·        Обеспечить ссылочную целостность.

1.5.3 Требования к составу и параметрам технических средств

Минимальная конфигурация:

·  Объем оперативной памяти 22 Мб и более.

·        Не менее 1 Мб свободного места на диске

·        Клавиатура

 

.5.4 Требования к информационно-программной совместимости

Программа должна работать под управлением операционной системы семейства Windows 9x и Windows NT. На сервере должно быть установлено серверное приложение Firebird версии 2.5 и InterBase 6.0.

 

2. Требования к программной документации

2.1 Состав программной документации

Состав программной документации должен включать в себя:

·  Техническое задание

·        Схема данных

·        Код программы

·        Руководство пользователя

3. Проектирование базы данных и программная реализация

3.1 Разработка структуры базы данных

Рис. 1 Схема данных

3.2 Структура таблиц:

Рис. 2 Структура таблицы «GOODS»

Рис. 3 Структура таблицы «MAT»

Рис. 4 Структура таблицы «USERS»

Рис. 5 Структура таблицы «USER_TYPE»

Рис. 6 Структура таблицы «CATALOGS»

Рис. 7 Структура таблицы «SALES»

Рис. 8 Структура таблицы «GOOD_SALES»

3.3 Разработка модульной структуры программы

Рис. 9 Модульная структура программы

Заключение

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

·  Исходный SQL-скрипт базы данных;

·        Исходный код программы клиентского приложения (На языке Object Pascal);

·        Руководство пользователя.

Список литературы

·   Шаптала В.В. «Управление данными. Лабораторный практикум для специальности 071900» - Белгород, 2005

·   Информационные технологии: Учеб. для вузов / Б.Я. Советов, В. В. Цехановский. - 2-е изд., стер.- М.: Высш. шк., 2005.-263 с.: ил.

·   Кренке Д. Теория и практика построения баз данных. 9-е изд. - СПб.: Питер, 2005 - 859 с.: ил.

Приложение 1

Содержание файла SCRIPT.SQL

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

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

/*** Generated by IBExpert 2012.11.26.1 28.01.2013 4:45:38 ***/

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

*****************/SQL DIALECT 3;NAMES WIN1251;DATABASE 'D:\IT_Kurs\db.fdb''SYSDBA' PASSWORD 'masterkey'_SIZE 16384CHARACTER SET WIN1251 COLLATION WIN1251;

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

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

/*** Generators ***/

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

*****************/GENERATOR GEN_CATALOGS_ID;GENERATOR GEN_CATALOGS_ID TO 6;GENERATOR GEN_COMPLECT_ID;GENERATOR GEN_COMPLECT_ID TO 0;GENERATOR GEN_GOODS_ID;GENERATOR GEN_GOODS_ID TO 28;GENERATOR GEN_GOOD_SALES_ID;GENERATOR GEN_GOOD_SALES_ID TO 37;GENERATOR GEN_MAT_ID;GENERATOR GEN_MAT_ID TO 22;GENERATOR GEN_MODEL_ROW_ID;GENERATOR GEN_MODEL_ROW_ID TO 0;GENERATOR GEN_MODULE_ID;GENERATOR GEN_MODULE_ID TO 0;GENERATOR GEN_MOD_IN_COMP_ID;GENERATOR GEN_MOD_IN_COMP_ID TO 0;GENERATOR GEN_MOD_IN_ROW_ID;GENERATOR GEN_MOD_IN_ROW_ID TO 0;GENERATOR GEN_MOD_SALES_ID;GENERATOR GEN_MOD_SALES_ID TO 0;GENERATOR GEN_SALES_ID;GENERATOR GEN_SALES_ID TO 30;GENERATOR GEN_USERS_ID;GENERATOR GEN_USERS_ID TO 7;GENERATOR GEN_USER_TYPE_ID;GENERATOR GEN_USER_TYPE_ID TO 10;

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

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

/*** Tables ***/

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

*****************/TABLE CATALOGS (INTEGER NOT NULL,VARCHAR(25) NOT NULL,INTEGER DEFAULT 0 NOT NULL

);TABLE COMPLECT (INTEGER NOT NULL,VARCHAR(15) NOT NULL

);TABLE GOOD_SALES (INTEGER NOT NULL,_SALES INTEGER NOT NULL,_GOOD INTEGER NOT NULL,INTEGER DEFAULT 1 NOT NULL

);TABLE GOODS (INTEGER NOT NULL,VARCHAR(50) NOT NULL,VARCHAR(1000),INTEGER,INTEGER,INTEGER,INTEGER,INTEGER NOT NULL,INTEGER DEFAULT 1 NOT NULL,_PRICE INTEGER NOT NULL,VARCHAR(30),INTEGER NOT NULL

);TABLE MAT (INTEGER NOT NULL,VARCHAR(20) NOT NULL,VARCHAR(20),VARCHAR(20),VARCHAR(100)

);TABLE MOD_IN_COMP (INTEGER NOT NULL,_MOD INTEGER NOT NULL,_COMP INTEGER NOT NULL,

"COUNT" SMALLINT DEFAULT 1 NOT NULL

);TABLE MOD_IN_ROW (INTEGER NOT NULL,_MOD INTEGER NOT NULL,_ROW INTEGER NOT NULL

);TABLE MOD_SALES (INTEGER NOT NULL,_SALES INTEGER NOT NULL,_MOD INTEGER NOT NULL,

"COUNT" INTEGER DEFAULT 1 NOT NULL

);TABLE MODEL_ROW (INTEGER NOT NULL,VARCHAR(30) NOT NULL,INTEGER NOT NULL

);TABLE MODULE (INTEGER NOT NULL,VARCHAR(50) NOT NULL,VARCHAR(1000),INTEGER,INTEGER,INTEGER,INTEGER NOT NULL,_PRICE INTEGER,

"COUNT" INTEGER DEFAULT 1 NOT NULL,INTEGER NOT NULL,VARCHAR(30),INTEGER NOT NULL

);TABLE SALES (INTEGER NOT NULL,TIMESTAMP NOT NULL,INTEGER NOT NULL

);TABLE USERS (INTEGER NOT NULL,VARCHAR(20) NOT NULL,

"LN" VARCHAR(20) NOT NULL,VARCHAR(20),

"TYPE" INTEGER NOT NULL,VARCHAR(20) NOT NULL

);

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

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

/*** Primary Keys ***/

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

*****************/TABLE CATALOGS ADD CONSTRAINT PK_CATALOGS KEY (ID);TABLE COMPLECT ADD CONSTRAINT PK_COMPLECT KEY (ID);TABLE GOODS ADD CONSTRAINT PK_GOODS PRIMARY (ID);TABLE GOOD_SALES ADD CONSTRAINT PK_GOOD_SALES KEY (ID);

ALTER TABLE MAT ADD CONSTRAINT PK_MAT PRIMARY KEY (ID);TABLE MODEL_ROW ADD CONSTRAINT PK_MODEL_ROW PRIMARY KEY (ID);TABLE MODULE ADD CONSTRAINT PK_MODULE PRIMARY KEY (ID);TABLE MOD_IN_COMP ADD CONSTRAINT PK_MOD_IN_COMP PRIMARY KEY (ID);TABLE MOD_IN_ROW ADD CONSTRAINT PK_MOD_IN_ROW PRIMARY KEY (ID);TABLE MOD_SALES ADD CONSTRAINT PK_MOD_SALES PRIMARY KEY (ID);TABLE SALES ADD CONSTRAINT PK_SALES PRIMARY KEY (ID);TABLE USERS ADD CONSTRAINT PK_USERS PRIMARY KEY (ID);TABLE USER_TYPE ADD CONSTRAINT PK_USER_TYPE PRIMARY KEY (ID);

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

/*** Foreign Keys ***/

/******************************************************************************/TABLE CATALOGS ADD CONSTRAINT FK_CATALOGS_1 FOREIGN KEY (PARENT) REFERENCES CATALOGS (ID) ON DELETE CASCADE ON UPDATE CASCADE;TABLE GOODS ADD CONSTRAINT FK_GOODS_1 FOREIGN KEY (MAT) REFERENCES MAT (ID) ON DELETE CASCADE ON UPDATE CASCADE;TABLE GOODS ADD CONSTRAINT FK_GOODS_2 FOREIGN KEY (CAT) REFERENCES CATALOGS (ID) ON DELETE CASCADE ON UPDATE CASCADE;TABLE GOOD_SALES ADD CONSTRAINT FK_GOOD_SALES_1 FOREIGN KEY (ID_SALES) REFERENCES SALES (ID) ON DELETE CASCADE ON UPDATE CASCADE;TABLE GOOD_SALES ADD CONSTRAINT FK_GOOD_SALES_2 FOREIGN KEY (ID_GOOD) REFERENCES GOODS (ID) ON DELETE CASCADE ON UPDATE CASCADE;TABLE MODEL_ROW ADD CONSTRAINT FK_MODEL_ROW_1 FOREIGN KEY (MAT) REFERENCES MAT (ID) ON DELETE CASCADE ON UPDATE CASCADE;TABLE MODULE ADD CONSTRAINT FK_MODULE_1 FOREIGN KEY (CAT) REFERENCES CATALOGS (ID) ON DELETE CASCADE ON UPDATE CASCADE;TABLE MODULE ADD CONSTRAINT FK_MODULE_2 FOREIGN KEY (PARENT) REFERENCES MODEL_ROW (ID) ON DELETE CASCADE ON UPDATE CASCADE;TABLE MOD_IN_COMP ADD CONSTRAINT FK_MOD_IN_COMP_1 FOREIGN KEY (ID_MOD) REFERENCES MODULE (ID) ON DELETE CASCADE ON UPDATE CASCADE;TABLE MOD_IN_COMP ADD CONSTRAINT FK_MOD_IN_COMP_2 FOREIGN KEY (ID_COMP) REFERENCES COMPLECT (ID) ON DELETE CASCADE ON UPDATE CASCADE;TABLE MOD_IN_ROW ADD CONSTRAINT FK_MOD_IN_ROW_1 FOREIGN KEY (ID_MOD) REFERENCES MODULE (ID) ON DELETE CASCADE ON UPDATE CASCADE;TABLE MOD_IN_ROW ADD CONSTRAINT FK_MOD_IN_ROW_2 FOREIGN KEY (ID_ROW) REFERENCES MODEL_ROW (ID) ON DELETE CASCADE ON UPDATE CASCADE;TABLE MOD_SALES ADD CONSTRAINT FK_MOD_SALES_1 FOREIGN KEY (ID_SALES) REFERENCES SALES (ID) ON DELETE CASCADE ON UPDATE CASCADE;TABLE MOD_SALES ADD CONSTRAINT FK_MOD_SALES_2 FOREIGN KEY (ID_MOD) REFERENCES MODULE (ID) ON DELETE CASCADE ON UPDATE CASCADE;TABLE SALES ADD CONSTRAINT FK_SALES_1 FOREIGN KEY (SALER) REFERENCES USERS (ID) ON DELETE CASCADE ON UPDATE CASCADE;TABLE USERS ADD CONSTRAINT FK_USERS_1 FOREIGN KEY ("TYPE") REFERENCES USER_TYPE (ID) ON DELETE CASCADE ON UPDATE CASCADE;

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

/*** Triggers ***/

/******************************************************************************/TERM ^ ;

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

/*** Triggers for tables ***/

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

/* Trigger: CATALOGS_BI */TRIGGER CATALOGS_BI FOR CATALOGSBEFORE INSERT POSITION 0(new.id is null) then.id = gen_id(gen_catalogs_id,1);

^

/* Trigger: COMPLECT_BI */TRIGGER COMPLECT_BI FOR COMPLECTBEFORE INSERT POSITION 0(new.id is null) then.id = gen_id(gen_complect_id,1);

^

/* Trigger: GOODS_BI */TRIGGER GOODS_BI FOR GOODSBEFORE INSERT POSITION 0(new.id is null) then.id = gen_id(gen_goods_id,1);

^

/* Trigger: GOODS_BI_MIN */TRIGGER GOODS_BI_MIN FOR GOODSBEFORE INSERT POSITION 0(new.min_price is null) then.min_price = new.price;

^

/* Trigger: GOOD_SALES_BI */TRIGGER GOOD_SALES_BI FOR GOOD_SALESBEFORE INSERT POSITION 0(new.id is null) then.id = gen_id(gen_good_sales_id,1);

^

/* Trigger: MAT_BI */TRIGGER MAT_BI FOR MATBEFORE INSERT POSITION 0(new.id is null) then.id = gen_id(gen_mat_id,1);

^

/* Trigger: MODEL_ROW_BI */TRIGGER MODEL_ROW_BI FOR MODEL_ROWBEFORE INSERT POSITION 0(new.id is null) then.id = gen_id(gen_model_row_id,1);

^

/* Trigger: MODULE_BI */TRIGGER MODULE_BI FOR MODULEBEFORE INSERT POSITION 0(new.id is null) then.id = gen_id(gen_module_id,1);

^

/* Trigger: MODULE_BI_MIN */TRIGGER MODULE_BI_MIN FOR MODULEBEFORE INSERT POSITION 0(new.min_price is null) then.min_price = new.price;

^

/* Trigger: MOD_IN_COMP_BI */TRIGGER MOD_IN_COMP_BI FOR MOD_IN_COMPBEFORE INSERT POSITION 0(new.id is null) then.id = gen_id(gen_mod_in_comp_id,1);

^

/* Trigger: MOD_IN_ROW_BI */TRIGGER MOD_IN_ROW_BI FOR MOD_IN_ROWBEFORE INSERT POSITION 0(new.id is null) then.id = gen_id(gen_mod_in_row_id,1);

^

/* Trigger: MOD_SALES_BI */TRIGGER MOD_SALES_BI FOR MOD_SALESBEFORE INSERT POSITION 0(new.id is null) then.id = gen_id(gen_mod_sales_id,1);

^

/* Trigger: SALES_BI */TRIGGER SALES_BI FOR SALESBEFORE INSERT POSITION 0(new.id is null) then.id = gen_id(gen_sales_id,1);

^

/* Trigger: USERS_BI */TRIGGER USERS_BI FOR USERSBEFORE INSERT POSITION 0(new.id is null) then.id = gen_id(gen_users_id,1);

^

/* Trigger: USER_TYPE_BI */TRIGGER USER_TYPE_BI FOR USER_TYPEBEFORE INSERT POSITION 0(new.id is null) then.id = gen_id(gen_user_type_id,1);

end

^TERM; ^

ПРИЛОЖЕНИЕ 2

Исходный код программы

Unit1Unit1;

, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, IBDatabase, Grids, DBGrids, IBCustomDataSet, IBQuery, ,, StdCtrls, IdHashMessageDigest, ExtCtrls, TeEngine, TeeProcs, ,, Series;

= class(TForm): TIBDatabase;: TIBQuery;: TIBTransaction;: TDataSource;: TPageControl;: TTabSheet;: TButton;: TDBGrid;: TButton;: TButton;: TTabSheet;: TEdit;: TButton;: TGroupBox;: TImage;: TLabel;: TMemo;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TImage;: TLabel;: TLabel;: TLabel;: TLabel;: TButton;: TLabel;: TLabel;: TLabel;: TLabel;: TButton;: TDBGrid;: TGroupBox;: TIBQuery;: TDataSource;: TGroupBox;: TDBGrid;: TComboBox;: TLabel;: TLabel;: TComboBox;: TComboBox;: TLabel;: TComboBox;: TLabel;: TLabel;: TComboBox;: TIBQuery;: TDataSource;: TLabel;: TEdit;: TButton;: TButton;: TButton;: TIBQuery;: TLabel;: TEdit;: TEdit;: TLabel;: TEdit;: TLabel;: TLabel;: TComboBox;: TButton;: TButton;: TButton;: TEdit;: TLabel;: TButton;: TButton;: TButton;: TLabel;: TLabel;: TLabel;: TLabel;: TTabSheet;: TDBGrid;: TGroupBox;: TIBQuery;: TIBQuery;: TDataSource;: TDataSource;: TGroupBox;: TDBGrid;: TButton;: TButton;: TTabSheet;: TChart;: TIBQuery;: TBarSeries;FormCreate(Sender: TObject);FormCloseQuery(Sender: TObject; var CanClose: Boolean);Button3Click(Sender: TObject);Edit1Change(Sender: TObject);Button4Click(Sender: TObject);DBGrid1CellClick(Column: TColumn);Button5Click(Sender: TObject);UR;Button6Click(Sender: TObject);DBGrid3CellClick(Column: TColumn);Button9Click(Sender: TObject);Button7Click(Sender: TObject);Edit2Change(Sender: TObject);Button8Click(Sender: TObject);DBGrid2CellClick(Column: TColumn);Edit3Change(Sender: TObject);Edit4Change(Sender: TObject);Edit5Change(Sender: TObject);ComboBox6Change(Sender: TObject);Button10Click(Sender: TObject);Button11Click(Sender: TObject);Button12Click(Sender: TObject);Button13Click(Sender: TObject);Button14Click(Sender: TObject);Button2Click(Sender: TObject);Button15Click(Sender: TObject);DBGrid4CellClick(Column: TColumn);Button16Click(Sender: TObject);Button17Click(Sender: TObject);

{ Private declarations }

{ Public declarations };= record: Integer;: byte;: Integer;;: TMainWnd;: array [1 .. 5] of Boolean;: byte;: array [0 .. 25] of byte;: string = 'Клиент';: string = 'Неавторизированный пользователь';: Integer = 0;: array [0 .. 25] of BASC;: byte = 0;: boolean;Unit2, Unit3, Unit5, Unit6;

{$R *.dfm}md5(SourceString: string): string;: TIdHashMessageDigest5;:= '';:= TIdHashMessageDigest5.Create;:= AnsiLowerCase(md5.HashStringAsHex(SourceString));(md5);;;TMainWnd.UR;: byte;: Integer;.Label15.Caption := Unit1.USERNAME;.Label17.Caption := Unit1.MODENAME;.DBGrid1.Refresh;.DBGrid2.Refresh;.DBGrid3.Refresh;.DBGrid4.Refresh;.DBGrid5.Refresh;.IBQuery5.Open;

//MainWnd.IBQuery6.Open;.IBQuery3.Open;.IBQuery2.Open;

//MainWnd.IBQuery1.Open;:= 0;i := 0 to CNTBASK do:= tprice + BASKET[i].CNT * BASKET[i].PRICE;.Label31.Caption := IntToStr(CNTBASK+1);.Label32.Caption := IntToStr(tprice) + ' р.';MODE[5] then.TabVisible := true;.Button3.Visible:=true;.Button13.Visible:=true;.Button14.Visible:=true;.Button2.Visible:=true;.Button15.Visible:=true;.Label29.Visible:=true;.Label30.Visible:=true;.Label31.Visible:=true;.Label32.Visible:=true;begin.TabVisible := false;.Button3.Visible:=false;.Button13.Visible:=false;.Button14.Visible:=false;.Button2.Visible:=false;.Button15.Visible:=false;.Label29.Visible:=false;.Label30.Visible:=false;.Label31.Visible:=false;.Label32.Visible:=false;;(MODE[5]) OR (MODE[2]) then begin.Button3.Visible:=true;.TabVisible := true;.Button2.Visible:=true;.Button15.Visible:=true;.Label29.Visible:=true;.Label30.Visible:=true;.Label31.Visible:=true;.Label32.Visible:=true;begin.TabVisible := false;.Button3.Visible:=false;.Button2.Visible:=false;.Button15.Visible:=false;.Label29.Visible:=false;.Label30.Visible:=false;.Label31.Visible:=false;.Label32.Visible:=false;;

(MODE[5]) OR (MODE[2]) then begin.Button3.Visible:=true;.TabVisible := true;.Button2.Visible:=true;.Button15.Visible:=true;.Label29.Visible:=true;.Label30.Visible:=true;.Label31.Visible:=true;.Label32.Visible:=true;begin.TabVisible := false;.Button3.Visible:=false;.Button2.Visible:=false;.Button15.Visible:=false;.Label29.Visible:=false;.Label30.Visible:=false;.Label31.Visible:=false;.Label32.Visible:=false;;(MODE[5]) OR (MODE[3]) then begin.Button3.Visible:=true;.Button13.Visible:=true;.Button14.Visible:=true;begin.Button3.Visible:=false;.Button13.Visible:=false;.Button14.Visible:=false;;;TMainWnd.Button10Click(Sender: TObject);.SQL.Clear;.SQL.Text := 'UPDATE USERS SET FN = ''' + Edit3.Text +

''', LN = ''' + Edit4.Text + ''',PN = ''' + Edit5.Text + ''',TYPE = ''' +(USERTYPES[ComboBox6.ItemIndex]) + ''',PASS = ''' + .Text +

''' WHERE ID = ''' + DBGrid2.DataSource.DataSet.FieldByName('ID')

.AsString + '''';.Open;.IBTransaction1.Commit;.Refresh;.Open;.Refresh;.Open;.Text := '';.Text := '';.Text := '';.Text := '';;TMainWnd.Button11Click(Sender: TObject);.SQL.Clear;.SQL.Text :=

'INSERT INTO USERS(FN,LN,PN,TYPE,PASS) VALUES( ''' + Edit3.Text

+ ''',''' + Edit4.Text + ''',''' + Edit5.Text + ''',''' + IntToStr

(USERTYPES[ComboBox6.ItemIndex]) + ''',''' + Edit6.Text + ''')';.Open;.IBTransaction1.Commit;.Refresh;.Open;.Refresh;.Open;.Text := '';.Text := '';.Text := '';.Text := '';;TMainWnd.Button12Click(Sender: TObject);MessageBox(Handle, 'Удалить сотрудника?', 'Внимание', 35) = 6 then.SQL.Clear;.SQL.Text :=

'DELETE FROM USERS WHERE ID = ' + .DataSource.DataSet.FieldByName

('ID').AsString;.Open;.IBTransaction1.Commit;.Refresh;.Open;.Refresh;.Open;.Text := '';.Text := '';.Text := '';.Text := '';;;TMainWnd.Button13Click(Sender: TObject);AddGoods do.Picture.LoadFromFile(ExtractFilePath(Application.Exename)

+ MainWnd.DBGrid1.DataSource.DataSet.FieldByName('IMG').AsString);.Picture.LoadFromFile(ExtractFilePath(Application.Exename)

.AsString;.Text := .DBGrid1.DataSource.DataSet.FieldByName('PRICE')

.AsString;.Text := .DBGrid1.DataSource.DataSet.FieldByName('S').AsString;.Text := .DBGrid1.DataSource.DataSet.FieldByName('V').AsString;.Text := .DBGrid1.DataSource.DataSet.FieldByName('G').AsString;.Text := .DBGrid1.DataSource.DataSet.FieldByName('DESCR')

.AsString;.Text := MainWnd.DBGrid1.DataSource.DataSet.FieldByName('CNT')

.AsString;.Text := .DBGrid1.DataSource.DataSet.FieldByName('MIN_PRICE')

.AsString;:= .DBGrid1.DataSource.DataSet.FieldByName('IMG').AsString;[8] := true;.Picture.LoadFromFile('images/icon/ok.jpg');

// Label13.Caption := .DataSource.DataSet.FieldByName('CAT').AsString;;:= .DBGrid1.DataSource.DataSet.FieldByName('ID').AsInteger;.Button1.Caption := 'Сохранить';.ShowModal;.Refresh;.Open;.Button4Click(Sender);;TMainWnd.Button14Click(Sender: TObject);MessageBox(Handle, 'Удалить товар?', 'Внимание', 35) = 6 then.SQL.Clear;.SQL.Text :=

'DELETE FROM GOODS WHERE ID = ' + .DataSource.DataSet.FieldByName

('ID').AsString;.Open;.IBTransaction1.Commit;.Refresh;.Open;;;TMainWnd.Button15Click(Sender: TObject);,i: integer;.SQL.Clear;.SQL.Text:='INSERT INTO SALES(DAT,SALER) VALUES('''+(now)+''','''+IntToStr(IDUSER)+''')';.Open;.SQL.Clear;.SQL.Text:='SELECT MAX(ID) FROM SALES;';.Open;:= IBQuery4.FieldByName('MAX').AsInteger;i := 0 to CNTBASK do.SQL.Clear;.SQL.Text:='INSERT INTO _SALES(ID_SALES,ID_GOOD,CNT) VALUES('''+(SID)+''','''+IntToStr( BASKET[i].ID)+''','''+ (BASKET[i].CNT)+''');';.Open;

;:=0;.IBTransaction1.Commit;.Refresh;.Open;;;TMainWnd.Button16Click(Sender: TObject);MessageBox(Handle, 'Удалить заказ?', 'Внимание', 35) = 6 then.SQL.Clear;.SQL.Text:= 'DELETE FROM SALES WHERE ID =

'+DBGrid4.DataSource.DataSet.FieldByName('ID').AsString;.Open;.IBTransaction1.Commit;;;;TMainWnd.Button17Click(Sender: TObject);

if MessageBox(Handle, 'Удалить позицию заказа?', 'Внимание', 35) = 6

then.SQL.Clear;.SQL.Text:= 'DELETE FROM GOOD_SALES WHERE ID =

'+DBGrid5.DataSource.DataSet.FieldByName('ID').AsString;.Open;.IBTransaction1.Commit;.Refresh;;;;TMainWnd.Button2Click(Sender: TObject);,too: byte;: boolean;:=true;i := 0 to CNTBASK doBASKET[i].ID = .DataSource.DataSet.FieldByName('ID').AsInteger then[i].CNT:= BASKET[i].CNT+1;:=false;;;;flag thennot first then:=CNTBASK+1;;[CNTBASK].ID:= .DataSource.DataSet.FieldByName('ID').AsInteger;[CNTBASK].CNT:= 1;[CNTBASK].PRICE:= .DataSource.DataSet.FieldByName('PRICE').AsInteger;first then:= false;;;;;TMainWnd.Button3Click(Sender: TObject);:= 0;.Button1.Caption := 'Добавить';.ShowModal;.Refresh;.Open;;TMainWnd.Button4Click(Sender: TObject);IBQuery1 do;.Clear;.Add('SELECT GOODS.ID,GOODS.NAME,DESCR,S,V,G,MAT.IMG MIMG,PRICE,');.Add('MAT.NAME AS MNAME,MAT.MAT AS MAT,');.Add('CNT,GOODS.IMG,CATALOGS.NAME AS CAT FROM ,CATALOGS,MAT ');.Add('WHERE GOODS.CAT = CATALOGS.ID AND MAT.ID = .MAT ');.Add('AND GOODS.NAME LIKE ''' + Edit1.Text + ''';');;;;TMainWnd.Button5Click(Sender: TObject);Button5.Caption = 'Вход' then.ShowModal;;else begin[1]:=true;[2]:=false;[3]:=false;[4]:=false;[5]:=false;:=0;:= 'Клиент';

USERNAME:= 'Неавторизированный пользователь';

Button5.Caption := 'Вход';;;;TMainWnd.Button6Click(Sender: TObject);AboutR do.Caption := 'Права ' + Unit1.MODENAME + ' означают что вы:';MODE[1] then.Caption := 'Можете:';.Picture.LoadFromFile('images\icon\ok.jpg');.Caption := 'Не можете:';.Picture.LoadFromFile('images\icon\err.jpg');;MODE[2] then.Caption := 'Можете:';.Picture.LoadFromFile('images\icon\ok.jpg');.Caption := 'Не можете:';.Picture.LoadFromFile('images\icon\err.jpg');;MODE[3] then.Caption := 'Можете:';.Picture.LoadFromFile('images\icon\ok.jpg');.Caption := 'Не можете:';.Picture.LoadFromFile('images\icon\err.jpg');;MODE[4] then.Caption := 'Можете:';.Picture.LoadFromFile('images\icon\ok.jpg');.Caption := 'Не можете:';.Picture.LoadFromFile('images\icon\err.jpg');;MODE[5] then.Caption := 'Можете:';.Picture.LoadFromFile('images\icon\ok.jpg');.Caption := 'Не можете:';.Picture.LoadFromFile('images\icon\err.jpg');;;;;TMainWnd.Button7Click(Sender: TObject);, i: byte;.SQL.Clear;.SQL.Text :=

'INSERT INTO _TYPE(NAME,SELECT_GOODS,SELECT_SALES,EDIT_GOODS

,ADD_GOODS'

+ ',SUPER) VALUES(''' + Edit2.Text + ''',''' + IntToStr

(1 - ComboBox1.ItemIndex) + ''',''' + IntToStr(1 - ComboBox2.ItemIndex)

+ ''',''' + IntToStr(1 - ComboBox3.ItemIndex) + ''',''' + IntToStr

(1 - ComboBox4.ItemIndex) + ''',''' + IntToStr(1 - ComboBox5.ItemIndex)

+ ''')';.Open;.IBTransaction1.Commit;.Refresh;.Open;.Refresh;.Open;.Last;:= IBQuery3.RecordCount;.First;.Clear;i := 0 to t - 1 do.Items.Add(IBQuery3.FieldByName('NAME').AsString);[i] := IBQuery3.FieldByName('ID').AsInteger;.Next;;.Text := '';;TMainWnd.Button8Click(Sender: TObject);.SQL.Clear;.SQL.Text := 'UPDATE USER_TYPE SET NAME = ''' + .Text +

''', SELECT_GOODS = ''' + IntToStr(1 - ComboBox1.ItemIndex)

+ ''',SELECT_SALES = ''' + IntToStr(1 - ComboBox2.ItemIndex)

+ ''',EDIT_GOODS = ''' + IntToStr(1 - ComboBox3.ItemIndex)

+ ''',ADD_GOODS = ''' + IntToStr(1 - ComboBox4.ItemIndex)

+ ''',SUPER = ''' + IntToStr(1 - ComboBox5.ItemIndex)

+ ''' WHERE ID = ''' + DBGrid3.DataSource.DataSet.FieldByName('ID')

.AsString + '''';.Open;.IBTransaction1.Commit;.Refresh;.Open;.Refresh;.Open;.Text := '';;TMainWnd.Button9Click(Sender: TObject);, t: byte;MessageBox(Handle, 'Удалить тип сотрудника?', 'Внимание', 35) = 6 .SQL.Clear;.SQL.Text :=

'DELETE FROM USER_TYPE WHERE ID = ' +.DataSource.DataSet.FieldByName('ID').AsString;.Open;.IBTransaction1.Commit;.Refresh;.Open;.Refresh;.Open;.Last;:= IBQuery3.RecordCount;.First;.Clear;i := 0 to t - 1 do.Items.Add(IBQuery3.FieldByName('NAME').AsString);[i] := IBQuery3.FieldByName('ID').AsInteger;.Next;;.Text := '';;;TMainWnd.ComboBox6Change(Sender: TObject);(Edit3.Text <> '') AND (Edit4.Text <> '') AND (Edit5.Text <> '') AND

(ComboBox6.ItemIndex <> -1) then.Enabled := true;.Enabled := true;.Enabled := false;.Enabled := false;;;TMainWnd.DBGrid1CellClick(Column: TColumn);.Visible := true;.Picture.LoadFromFile(ExtractFilePath(Application.Exename)

+ DBGrid1.DataSource.DataSet.FieldByName('IMG').AsString);.Picture.LoadFromFile(ExtractFilePath(Application.Exename)

+ DBGrid1.DataSource.DataSet.FieldByName('MIMG').AsString);.Caption := .DataSource.DataSet.FieldByName('NAME').AsString;.Caption := DBGrid1.DataSource.DataSet.FieldByName('PRICE')

.AsString + 'р.';.Caption := .DataSource.DataSet.FieldByName('S').AsString;.Caption := .DataSource.DataSet.FieldByName('V').AsString;.Caption := .DataSource.DataSet.FieldByName('G').AsString;.Text := .DataSource.DataSet.FieldByName('DESCR').AsString;.Caption := .DataSource.DataSet.FieldByName('MNAME').AsString;.Caption := .DataSource.DataSet.FieldByName('MAT').AsString;.Caption := .DataSource.DataSet.FieldByName('CAT').AsString;

// (DBGrid1.DataSource.DataSet.FieldByName('MIMG').AsStri);TMainWnd.DBGrid2CellClick(Column: TColumn);: byte;.Text := DBGrid2.DataSource.DataSet.FieldByName('FN').AsString;.Text := DBGrid2.DataSource.DataSet.FieldByName('LN').AsString;.Text := DBGrid2.DataSource.DataSet.FieldByName('PN').AsString;.Text := .DataSource.DataSet.FieldByName('PASS').AsString;i := 0 to 25 doDBGrid2.DataSource.DataSet.FieldByName('WTYPE').AsInteger = [i].ItemIndex := i;;;TMainWnd.DBGrid3CellClick(Column: TColumn);.Text := .DataSource.DataSet.FieldByName('NAME').AsString;.ItemIndex := 1 - DBGrid3.DataSource.DataSet.FieldByName

('SELECT_GOODS').AsInteger;.ItemIndex := 1 - DBGrid3.DataSource.DataSet.FieldByName

('SELECT_SALES').AsInteger;.ItemIndex := 1 - DBGrid3.DataSource.DataSet.FieldByName

('EDIT_GOODS').AsInteger;.ItemIndex := 1 - .DataSource.DataSet.FieldByName('ADD_GOODS')

.AsInteger;.ItemIndex := 1 - .DataSource.DataSet.FieldByName('SUPER')

.AsInteger;;TMainWnd.DBGrid4CellClick(Column: TColumn);IBQuery6 do.Clear;.Add('SELECT GOOD_SALES.ID,GOODS.NAME AS GOOD, _SALES.CNT '+

',GOODS.PRICE*GOOD_SALES.CNT AS SUMM'+

' FROM GOOD_SALES, GOODS'+

' WHERE GOOD_SALES.ID_GOOD = GOODS.ID AND ID_SALES='+.DataSource.DataSet.FieldByName('ID').AsString+';');;;;TMainWnd.Edit1Change(Sender: TObject);Edit1.Text <> '' then.Enabled := true;IBQuery1 do;.Clear;.Add('SELECT GOODS.ID,GOODS.NAME,DESCR,S,V,G,MAT.IMG MIMG,PRICE,');.Add('MAT.NAME AS MNAME,MAT.MAT AS MAT,');.Add('CNT,GOODS.IMG,CATALOGS.NAME AS CAT FROM ,CATALOGS,MAT ');.Add('WHERE GOODS.CAT = CATALOGS.ID AND MAT.ID = .MAT ');.Add('AND GOODS.NAME LIKE ''' + Edit1.Text + ''';');;;.Enabled := false;;TMainWnd.Edit2Change(Sender: TObject);Edit2.Text <> '' then.Enabled := true;.Enabled := true;.Enabled := false;.Enabled := false;;TMainWnd.Edit3Change(Sender: TObject);(Edit3.Text <> '') AND (Edit4.Text <> '') AND (Edit5.Text <> '') AND

(ComboBox6.ItemIndex <> -1) then.Enabled := true;.Enabled := true;.Enabled := false;.Enabled := false;;;TMainWnd.Edit4Change(Sender: TObject);(Edit3.Text <> '') AND (Edit4.Text <> '') AND (Edit5.Text <> '') AND

(ComboBox6.ItemIndex <> -1) then.Enabled := true;.Enabled := true;.Enabled := false;.Enabled := false;;;TMainWnd.Edit5Change(Sender: TObject);(Edit3.Text <> '') AND (Edit4.Text <> '') AND (Edit5.Text <> '') AND

(ComboBox6.ItemIndex <> -1) then.Enabled := true;.Enabled := true;.Enabled := false;.Enabled := false;;;TMainWnd.FormCloseQuery(Sender: TObject; var CanClose: );.close;.Connected := false;;TMainWnd.FormCreate(Sender: TObject);, t: byte;.DatabaseName := 'db.FDB';.Connected := true;[1] := true;[2] := false;[3] := false;[4] := false;[5] := false;:=1;:=true;IBQuery1 do.Add('SELECT GOODS.ID,GOODS.NAME,DESCR,S,V,G,MAT.IMG MIMG,PRICE,');.Add('MAT.NAME AS MNAME,MAT.MAT AS MAT,');.Add(

'CNT,GOODS.IMG,CATALOGS.NAME AS CAT, MIN_PRICE FROM ,CATALOGS,MAT ');.Add('WHERE GOODS.CAT = CATALOGS.ID AND MAT.ID = .MAT');

Open;

end;

база данный информационный мебельный

with IBQuery2 do.Add(

'SELECT USERS.ID,FN,LN,PN,USER_TYPE.NAME AS TYPE,TYPE AS ,PASS FROM USERS,'

+ 'USER_TYPE WHERE USERS.TYPE = USER_TYPE.ID;');;;IBQuery3 do.Add('SELECT * FROM USER_TYPE;');;;.Last;:= IBQuery3.RecordCount;.First;i := 0 to t - 1 do.Items.Add(IBQuery3.FieldByName('NAME').AsString);[i] := IBQuery3.FieldByName('ID').AsInteger;.Next;;IBQuery5 do.Add('SELECT SALES.ID,DAT,USERS.FN AS SLR FROM ,USERS '+

'WHERE USERS.ID = SALES.SALER;');;;IBQuery7 do.Add('SELECT PRICE,NAME FROM GOODS ORDER BY PRICE ');;;.Last;:= IBQuery7.RecordCount;.First;i := 0 to t - 1 do.Series[0].Add(IBQuery7.FieldByName('PRICE').AsInteger,.FieldByName('NAME').AsString,clBlue);.Next;;;;.Unit2;

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ComCtrls, ExtCtrls, jpeg, ExtDlgs, IdHashMessageDigest, ,, IBQuery, Grids, DBGrids, Menus;= class(TForm): TButton;: TOpenPictureDialog;: TIBQuery;: TIBQuery;: TIBQuery;: TDataSource;: TDataSource;: TPageControl;: TTabSheet;: TImage;: TImage;: TImage;: TLabel;: TLabel;: TLabel;: TGroupBox;: TLabel;: TLabel;: TImage;: TImage;: TEdit;: TMemo;: TGroupBox;: TLabel;: TLabel;: TLabel;: TImage;: TImage;: TImage;: TEdit;: TEdit;: TEdit;: TGroupBox;: TDBGrid;: TButton;: TGroupBox;: TImage;: TImage;: TButton;: TButton;: TGroupBox;: TImage;: TDBGrid;: TButton;: TGroupBox;: TLabel;: TLabel;: TLabel;: TImage;: TImage;: TImage;: TEdit;: TEdit;: TEdit;: TButton;: TButton;: TPopupMenu;: TMenuItem;: TMenuItem;: TIBQuery;FormCreate(Sender: TObject);DBGrid2CellClick(Column: TColumn);Edit1Change(Sender: TObject);Memo1Change(Sender: TObject);Edit2Change(Sender: TObject);Edit3Change(Sender: TObject);Edit4Change(Sender: TObject);Edit5Change(Sender: TObject);Edit6Change(Sender: TObject);Edit7Change(Sender: TObject);Button4Click(Sender: TObject);Button8Click(Sender: TObject);Button9Click(Sender: TObject);Button1Click(Sender: TObject);Button7Click(Sender: TObject);Button10Click(Sender: TObject);N2Click(Sender: TObject);N1Click(Sender: TObject);Button3Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TAddGoods;: string;: array [0 .. 8] of boolean = (,,,,,,,,

);

{$R *.dfm}Unit1, Unit3, Unit4;md5(SourceString: string): string;: TIdHashMessageDigest5;:= '';:= TIdHashMessageDigest5.Create;:= AnsiLowerCase(md5.HashStringAsHex(SourceString));(md5);;;TAddGoods.Button10Click(Sender: TObject);.ShowModal;.Refresh;.Open;.Refresh;.Open;;TAddGoods.Button1Click(Sender: TObject);: integer;: boolean;, IMG, TMP: string;:= true;i := 0 to 8 doAddGoodTest[i] = false then:= false;;flag thenUnit1.ADDFORMMODE = 0 then:= md5(DateToStr(now) + TimeToStr(now));(TMP, 10);:= 'images\' + TMP + '.jpg';:=

'INSERT INTO (NAME,DESCR,S,V,G,MAT,PRICE,CNT,MIN_PRICE,IMG,CAT

) VALUES('''

+ Edit1.Text + ''',''' + Memo1.Text + ''',''' + Edit2.Text +

''',''' + Edit3.Text + ''',''' + Edit4.Text + ''',''' +.DataSource.DataSet.FieldByName('ID')

.AsString + ''',''' + Edit6.Text + ''',''' + Edit5.Text +

''',''' + Edit7.Text + ''',''' + IMG + ''',''' +.DataSource.DataSet.FieldByName('ID').AsString + ''');';.SQL.Clear;.SQL.Text := SQL;.Open;NOT CopyFile(Pchar(TMPSTR), Pchar(IMG), false) then('Ошибка! Код ошибки: ' + IntToStr(GetLastError)).IBTransaction1.Commit;.Refresh;.Open;.Refresh;.Open;Click(Sender);.Close;:= md5(DateToStr(now) + TimeToStr(now));(TMP, 10);:= 'images\' + TMP + '.jpg';:=

'UPDATE GOODS SET'+

' NAME =''' + Edit1.Text +

''',DESCR =''' + Memo1.Text +

''',S =''' + Edit2.Text +

''',V =''' + Edit3.Text +

''',MAT =''' + DBGrid2.DataSource.DataSet.FieldByName('ID').AsString +

''',PRICE =''' + Edit6.Text +

''',CNT =''' + Edit5.Text +

''',MIN_PRICE =''' + Edit7.Text +

''',IMG =''' + IMG +

''',CAT =''' + DBGrid1.DataSource.DataSet.FieldByName('ID').AsString +

''' WHERE ID = '+IntToStr(Unit1.ADDFORMMODE);.Text := SQL+' '+TMPSTR;.SQL.Clear;.SQL.Text := SQL;.Open;NOT CopyFile(Pchar(TMPSTR), Pchar(IMG), false) then('Ошибка! Код ошибки: ' + IntToStr(GetLastError)).IBTransaction1.Commit;Click(Sender);.Close;;.Refresh;.Open;.Refresh;.Open;

else

ShowMessage('Поля заполнены не верно.');

end;TAddGoods.Button3Click(Sender: TObject);.Close;;TAddGoods.Button4Click(Sender: TObject);.Text := '';.Text := '';.Text := '';.Text := '';.Text := '';.Text := '';.Text := '';.Text := '';:= '';.Picture.LoadFromFile('images/icon/note.jpg');.Picture.LoadFromFile('images/icon/note.jpg');.Picture.LoadFromFile('images/icon/note.jpg');.Picture.LoadFromFile('images/icon/note.jpg');.Picture.LoadFromFile('images/icon/note.jpg');.Picture.LoadFromFile('images/icon/note.jpg');.Picture.LoadFromFile('images/icon/note.jpg');.Picture.LoadFromFile('images/icon/note.jpg');.Picture.LoadFromFile('images/icon/note.jpg');.Picture := nil;.Picture := nil;[8] := false;;TAddGoods.Button7Click(Sender: TObject);.IBQuery1.SQL.Clear;.IBQuery1.SQL.Text := 'SELECT ID,NAME,PARENT FROM ';.IBQuery1.Open;.ShowModal;.Refresh;.Open;.Refresh;.Open;;TAddGoods.Button8Click(Sender: TObject);OpenPictureDialog1.Execute then.Picture.LoadFromFile(OpenPictureDialog1.FileName);:= OpenPictureDialog1.FileName;[8] := true;.Picture.LoadFromFile('images/icon/ok.jpg');;;TAddGoods.Button9Click(Sender: TObject);.Picture.LoadFromFile('images/icon/note.jpg');:= '';[8] := false;.Picture := nil;;TAddGoods.DBGrid2CellClick(Column: TColumn);.Picture.LoadFromFile(DBGrid2.DataSource.DataSet.FieldByName('')

.AsString);;TAddGoods.Edit1Change(Sender: TObject);not(Edit1.Text = '') then.Picture.LoadFromFile('images/icon/ok.jpg');[0] := true;.Picture.LoadFromFile('images/icon/err.jpg');[0] := false;;TAddGoods.Edit2Change(Sender: TObject);: integer;not(Edit2.Text = '') AND TryStrToInt(Edit2.Text, t) AND

(StrToInt(Edit2.Text) > 0) AND (StrToInt(Edit2.Text) < 10000) then.Picture.LoadFromFile('images/icon/ok.jpg');[2] := true;.Picture.LoadFromFile('images/icon/err.jpg');[2] := false;;;TAddGoods.Edit3Change(Sender: TObject);: integer;not(Edit3.Text = '') AND TryStrToInt(Edit3.Text, t) AND

(StrToInt(Edit3.Text) > 0) AND (StrToInt(Edit3.Text) < 10000) then.Picture.LoadFromFile('images/icon/ok.jpg');[3] := true;.Picture.LoadFromFile('images/icon/err.jpg');[3] := false;;;TAddGoods.Edit4Change(Sender: TObject);: integer;not(Edit4.Text = '') AND TryStrToInt(Edit4.Text, t) AND

(StrToInt(Edit4.Text) > 0) AND (StrToInt(Edit4.Text) < 10000) then.Picture.LoadFromFile('images/icon/ok.jpg');[4] := true;.Picture.LoadFromFile('images/icon/err.jpg');[4] := false;;;TAddGoods.Edit5Change(Sender: TObject);: integer;not(Edit5.Text = '') AND TryStrToInt(Edit5.Text, t) AND

(StrToInt(Edit5.Text) > 0) AND (StrToInt(Edit5.Text) < 10000) then.Picture.LoadFromFile('images/icon/ok.jpg');[5] := true;.Picture.LoadFromFile('images/icon/err.jpg');[5] := false;;;TAddGoods.Edit6Change(Sender: TObject);: integer;not(Edit6.Text = '') AND TryStrToInt(Edit6.Text, t) AND

(StrToInt(Edit6.Text) > 0) AND (StrToInt(Edit6.Text) < 999999) then.Picture.LoadFromFile('images/icon/ok.jpg');[6] := true;not(Edit7.Text = '') AND TryStrToInt(Edit7.Text, t) AND

(StrToInt(Edit7.Text) > 0) AND (StrToInt(Edit7.Text) < 999999) then(StrToInt(Edit6.Text) >= StrToInt(Edit7.Text)) then.Picture.LoadFromFile('images/icon/ok.jpg');[7] := true;.Picture.LoadFromFile('images/icon/err.jpg');[7] := false;;.Picture.LoadFromFile('images/icon/err.jpg');[6] := false;;;TAddGoods.Edit7Change(Sender: TObject);: integer;not(Edit7.Text = '') AND TryStrToInt(Edit7.Text, t) AND

(StrToInt(Edit7.Text) > 0) AND (StrToInt(Edit7.Text) < 999999) AND not

(Edit6.Text = '') AND TryStrToInt(Edit6.Text, t) AND

(StrToInt(Edit6.Text) > 0) AND (StrToInt(Edit6.Text) < 999999) AND

(StrToInt(Edit6.Text) >= StrToInt(Edit7.Text)) then.Picture.LoadFromFile('images/icon/ok.jpg');[7] := true;.Picture.LoadFromFile('images/icon/err.jpg');[7] := false;;;TAddGoods.FormCreate(Sender: TObject);.Clear;.SQL.Clear;.SQL.Text := 'SELECT ID,NAME FROM CATALOGS';.Open;.SQL.Clear;.SQL.Text := 'SELECT ID,NAME,MAT,COLOR,IMG FROM ';.Open;.Picture.LoadFromFile(DBGrid2.DataSource.DataSet.FieldByName('')

.AsString);;TAddGoods.Memo1Change(Sender: TObject);not(Memo1.Text = '') then.Picture.LoadFromFile('images/icon/ok.jpg');[1] := true;.Picture.LoadFromFile('images/icon/err.jpg');[1] := false;;;TAddGoods.N1Click(Sender: TObject);.AMMode := .DataSource.DataSet.FieldByName('ID').AsInteger;.EditMatAddName.Text := .DataSource.DataSet.FieldByName('NAME')

.AsString;.EditMatAddMat.Text := .DataSource.DataSet.FieldByName('MAT')

.AsString;.EditMatAddColor.Text := .DataSource.DataSet.FieldByName('COLOR')

.AsString;.EditMatAddImg.Text := .DataSource.DataSet.FieldByName('IMG')

.AsString;.ImageAddMat.Picture.LoadFromFile

(DBGrid2.DataSource.DataSet.FieldByName('IMG').AsString);.ShowModal;.Refresh;.Open;.Refresh;.Open;;TAddGoods.N2Click(Sender: TObject);MessageBox(Handle, 'Удалить материал?', 'Внимание', 35) = 6 then.SQL.Clear;.SQL.Text :=

'DELETE FROM MAT WHERE ID = ' + .DataSource.DataSet.FieldByName

('ID').AsString;.Open;.IBTransaction1.Commit;.Refresh;.Open;.Refresh;.Open;;;.Unit3;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, DBGrids, DB, IBCustomDataSet, IBQuery, StdCtrls, ;= class(TForm): TIBQuery;: TDataSource;: TDBGrid;: TEdit;: TButton;: TButton;: TButton;: TIBQuery;: TPopupMenu;: TMenuItem;: TMenuItem;: TButton;: TEdit;Button2Click(Sender: TObject);Button1Click(Sender: TObject);N1Click(Sender: TObject);Edit1Change(Sender: TObject);DBGrid1CellClick(Column: TColumn);Edit2Change(Sender: TObject);Button4Click(Sender: TObject);Button3Click(Sender: TObject);FormCreate(Sender: TObject);

{ Private declarations }

{ Public declarations };: TAddCat;

{$R *.dfm}Unit1, Unit2;TAddCat.Button1Click(Sender: TObject);.Close;;TAddCat.Button2Click(Sender: TObject);.SQL.Clear;.SQL.Text :=

'INSERT INTO CATALOGS(NAME,PARENT) VALUES(''' + Edit1.Text +

''',''' +.DataSource.DataSet.FieldByName('ID').AsString + ''')';.Open;.IBTransaction1.Commit;.Refresh;.Open;.Text := '';.Close;;TAddCat.Button3Click(Sender: TObject);.SQL.Clear;.SQL.Text :=

'INSERT INTO CATALOGS(NAME,PARENT) VALUES(''' + Edit1.Text +

''',''' +.DataSource.DataSet.FieldByName('ID').AsString + ''')';.Open;.IBTransaction1.Commit;.UR;.Text := '';;TAddCat.Button4Click(Sender: TObject);.SQL.Clear;.SQL.Text :='UPDATE CATALOGS SET NAME =''' + .Text +

''' WHERE ID = ''' + DBGrid1.DataSource.DataSet.FieldByName('ID')

.AsString + ''';';.Open;.IBTransaction1.Commit;.UR;.Text := '';;TAddCat.DBGrid1CellClick(Column: TColumn);.Text := .DataSource.DataSet.FieldByName('NAME').AsString;;TAddCat.Edit1Change(Sender: TObject);Edit1.Text <> '' then.Enabled := true;.Enabled := truebegin.Enabled := false;.Enabled := False;;TAddCat.Edit2Change(Sender: TObject);(Edit2.Text <> '') AND

(Edit2.Text <> .DataSource.DataSet.FieldByName('NAME').AsString).Enabled := true.Enabled := false;;TAddCat.FormCreate(Sender: TObject);;TAddCat.N1Click(Sender: TObject);MessageBox(Handle, 'Удалить каталог?', 'Внимание', 35) = 6 then.SQL.Clear;.SQL.Text :=

'DELETE FROM CATALOGS WHERE ID = ' +.DataSource.DataSet.FieldByName('ID').AsString;.Open;.IBTransaction1.Commit;.UR;;;.Unit4;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtDlgs, ExtCtrls, StdCtrls, IdHashMessageDigest, DB,, IBQuery;= class(TForm): TEdit;: TLabel;: TEdit;: TLabel;: TEdit;: TLabel;: TEdit;: TLabel;: TButton;: TImage;: TButton;: TButton;: TOpenPictureDialog;: TDataSource;: TIBQuery;Button6Click(Sender: TObject);EditMatAddNameChange(Sender: TObject);EditMatAddColorChange(Sender: TObject);EditMatAddImgChange(Sender: TObject);EditMatAddMatChange(Sender: TObject);Button2Click(Sender: TObject);Button1Click(Sender: TObject);FormCreate(Sender: TObject);

{ Private declarations }

{ Public declarations };: TAddMat;: string;: integer;Unit2, Unit1;

{$R *.dfm}

md5(SourceString: string): string;: TIdHashMessageDigest5;:= '';:= TIdHashMessageDigest5.Create;:= AnsiLowerCase(md5.HashStringAsHex(SourceString));(md5);;;TAddMat.Button1Click(Sender: TObject);.Close;;TAddMat.Button2Click(Sender: TObject);: string;AMMode = 0 then:=

'INSERT INTO MAT(NAME,MAT,COLOR,IMG) VALUES(''' +.Text + ''',''' + EditMatAddMat.Text + ''',''' +.Text + ''',''' + EditMatAddImg.Text + ''');';.SQL.Clear;.SQL.Text := SQL;.Open;.IBTransaction1.Commit;NOT CopyFile(Pchar(TMPSTR), Pchar(EditMatAddImg.Text), false) ('Ошибка! Код ошибки: ' + IntToStr(GetLastError));:= 'UPDATE MAT SET NAME = ''' + EditMatAddName.Text + ''', =''' +.Text + ''', COLOR = ''' + EditMatAddColor.Text +

''', IMG = ''' + EditMatAddImg.Text + ''' WHERE ID = '''

+IntToStr(AMMode) +''';';.SQL.Clear;.SQL.Text := SQL;.Open;.IBTransaction1.Commit;NOT CopyFile(Pchar(TMPSTR), Pchar(EditMatAddImg.Text), false) ('Ошибка! Код ошибки: ' + IntToStr(GetLastError));;.Text := '';.Text := '';.Text := '';.Text := '';.Close;;TAddMat.Button6Click(Sender: TObject);: TDateTime;:= Time;OpenPictureDialog1.Execute then.Picture.LoadFromFile(OpenPictureDialog1.FileName);:= OpenPictureDialog1.FileName;.Text := 'images/mats/'+md5(DateToStr(now) + (now)) + '.jpg';;;TAddMat.EditMatAddColorChange(Sender: TObject);(EditMatAddName.Text <> '') AND (EditMatAddMat.Text <> '') AND

(EditMatAddColor.Text <> '') AND (EditMatAddImg.Text <> '') then.Enabled := true;.Enabled := false;;;TAddMat.EditMatAddImgChange(Sender: TObject);(EditMatAddName.Text <> '') AND (EditMatAddMat.Text <> '') AND

(EditMatAddColor.Text <> '') AND (EditMatAddImg.Text <> '') then.Enabled := true;.Enabled := false;;;TAddMat.EditMatAddMatChange(Sender: TObject);(EditMatAddName.Text <> '') AND (EditMatAddMat.Text <> '') AND

(EditMatAddColor.Text <> '') AND (EditMatAddImg.Text <> '') then.Enabled := true;.Enabled := false;;;TAddMat.EditMatAddNameChange(Sender: TObject);(EditMatAddName.Text <> '') AND (EditMatAddMat.Text <> '') AND

(EditMatAddColor.Text <> '') AND (EditMatAddImg.Text <> '') then.Enabled := true;.Enabled := false;;;TAddMat.FormCreate(Sender: TObject);:= 0;;.Unit5;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, DBCtrls, DB, IBCustomDataSet, IBQuery, dblookup;= class(TForm): TEdit;: TLabel;: TLabel;: TIBQuery;: TDataSource;: TComboBox;: TButton;: TButton;FormCreate(Sender: TObject);Button2Click(Sender: TObject);ComboBox1Change(Sender: TObject);Button1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TLogin;Unit1;

{$R *.dfm}TLogin.Button1Click(Sender: TObject);.Close;;TLogin.Button2Click(Sender: TObject);.First;.MoveBy(ComboBox1.ItemIndex);IBQuery1.FieldByName('PASS').AsString = Edit1.Text then

ShowMessage('Авторизация прошла успешно! Вы вошли с правами '+

IBQuery1.FieldByName('NAME').AsString);IBQuery1.FieldByName('SELECT_GOODS').AsInteger = 1 then.MODE[1]:= true else Unit1.MODE[1]:= false;IBQuery1.FieldByName('SELECT_SALES').AsInteger = 1 then.MODE[2]:= true else Unit1.MODE[2]:= false;IBQuery1.FieldByName('EDIT_GOODS').AsInteger = 1 then.MODE[3]:= true else Unit1.MODE[3]:= false;IBQuery1.FieldByName('ADD_GOODS').AsInteger = 1 then.MODE[4]:= true else Unit1.MODE[4]:= false;IBQuery1.FieldByName('SUPER').AsInteger = 1 then.MODE[5]:= true else Unit1.MODE[5]:= false;.MODENAME := IBQuery1.FieldByName('NAME').AsString;.USERNAME := IBQuery1.FieldByName('FN')

.AsString + ' ' + IBQuery1.FieldByName('LN')

.AsString + ' ' + IBQuery1.FieldByName('PN').AsString;.Button5.Caption:= 'Выход';.IDUSER:= IBQuery1.FieldByName('ID').AsInteger;.Clear;.Close;

ShowMessage('Пароль введен неверно, пожалуйста повторите ввод');

end;;TLogin.ComboBox1Change(Sender: TObject);.Clear;;TLogin.FormCreate(Sender: TObject);: byte;: string;IBQuery1 do;.Clear;.Add('SELECT .ID,FN,LN,PN,PASS,NAME,SELECT_GOODS,SELECT_SALES,'

+

'EDIT_GOODS,ADD_GOODS,SUPER FROM USERS,USER_TYPE USERS.TYPE=USER_TYPE.ID');;;i := 0 to IBQuery1.RecordCount do:= IBQuery1.FieldByName('FN')

.AsString + ' ' + IBQuery1.FieldByName('LN')

.AsString + ' ' + IBQuery1.FieldByName('PN').AsString;.Items.Add(t);.Next;;.ItemIndex:=0;;.Unit6;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls;= class(TForm): TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TImage;: TImage;: TImage;: TImage;: TImage;: TButton;Button1Click(Sender: TObject);FormCreate(Sender: TObject);

{ Private declarations }

{ Public declarations };: TAboutR;

{$R *.dfm}TAboutR.Button1Click(Sender: TObject);.Close;;TAboutR.FormCreate(Sender: TObject);

end;

end.

ПРИЛОЖЕНИЕ 3


Программа разработана для менеджера баскетбольного клуба и позволяет ему:

Реализовать следующий функционал:

.   Хранить товары магазина:

·  Просмотр списка товаров

·        Поиск по названию

·        Редактирование товара

·        Загрузка изображений

·        Присвоение материалов для товаров

·        Структурирование по каталогам

2. Разграничивать доступ к функционалу:

·  Возможность создания групп пользователей.

·        Возможность настройки прав доступа для различных групп пользователей

·        Возможность добавления новых пользователей

·        Возможность редактирования групп пользователей, и сами пользователей

3. Управлять заказами:

·  Просмотр заказов

·        Редактирование заказа

·        Редактирование позиции заказа

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

Рис. 10 - Окно программы при запуске

Поиск

Так же при первоначальном запуске доступно поле поиска, которое поддердивает составные запросы:

·  Для задания точносго поиска наобходимо просто ввести наименование искомого товара:

Рис. 11 - Результат ввода поискового запроса «Палермо»

·  Если же необходимо задать только часть запроса, то неизвестные (неважные) части запроса можно заменить на символ процента - %:

Рис. 12 - Результат ввода поискового запроса «%CD»

Авторизация

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

Рис. 13 - Расположение кнопки «Вход»

Рис. 14 - Форма авторизации

После авторизации, в нижней части программы будут отображены: имя польщователя, права которыми он обладает:

Рис. 15 - Пример нижней части прораммы

Для того что бы подробно узнать какими правами обладает пользователья достаточно кликнуть на кнопку со знаком «?» в нижней части программы. По клику на данную кнопку будет отобрадена информация о правах:

Рис. 16 - Пример отображени информации о правах пользователя

Следует заметить что после авторизации, кнопку в ниждей части экрана с надписью «Вход» , изменит свое значение на «Выход», и повторное нажатие на нее, позволит выйти из системы.

Редактирвоание списка товаров

Для редактрования товара, необходимо обладать соответствующими правами. При соблюдении данного условия будут отображены кнопки «Добавить», «Редактировать», «Удалить».

Рис. 17 - Кнопки редактирования списка товаров

При клике по кнопкам «Добавить» или «Редактировать», будет открыто универсально окно, из которого есть возможность добавлять и редкатировать Каталоги и Материалы.

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

Рис. 18 - Окно формы «Добавить»

Рис. 19 - Окно формы «Добавить каталог»

Рис. 20 - Окно формы «Добавить материал»

Интерфейс окон не вызывает вопросов даже у пользователей которые не имеют большого опыта работы на ЭВМ.

Администратирование

Вкладка «Пользователя и права» доступна только для пользоватеелй, которые имеют права на любые действия.

Рис. 21 - Вкладка «Польщователи и права»

В данной вкладке есть возможность редактирования пользователей, а так же групп пользователей:

Рис. 22 - Добавление нового пользователя

Рис. 23 - Добавление новой группы

Другое

Вкладки «Продажи» и «Диаграмма» доступны, при наличии соответствующих прав, и содержат в себе информацию об Совершенных заказах, и Диаграмма распределения цен на товары, соответственно:

Рис. 24 - Вкладка «Продажи»

Рис. 25 - Вкладка «Диаграмма»

Спасибо за использование нашей программы.

Похожие работы на - Информационная система мебельного магазина

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!