Мебельный салон
Содержание
1. Постановка задачи ……………………………………………………..…….3
2. Описание предметной области……………………………………………….4
3. Проектирование интерфейса
3.1. Выбор и назначение
визуальных компонентов………………….
3.2. Формы проекта ..…………………………………………….…..……6
4. Разработка программного обеспечения
4.1. основные процедуры……………………………………..……….…
4.2. Текст программы………………………………………
5. Визуальное представление результатов………………………………..….30
6. Список литературы…………………………………
- Постановка задачи
Задачей данного проекта является разработка программного обеспечения в среде визуального программирования Delphi для информационной системы в конкретной предметной области. Программа рассчитана на пользование сотрудниками салона мебели, и предназначена для хранения информации об имеющихся товарах, их количестве, качестве, о производителе, цене, также возможен поиск товара, сортировка, построение диаграмм для наглядности представления данных. Также возможен ввод, корректировка и сохранение данных.
- Описание предметной области
Даже не в очень больших
фирмах стоит проблема хранения информации,
к которой можно было бы обратиться
в любое время, добавлять новую
информацию, редактировать уже
В настоящее время мебельные
салоны имеют очень большой и
разнообразный ассортимент
Данная база данных хранит информацию о предметах интерьера, которые имеются в продаже мебельного салона. Она позволяет быстро находить и редактировать необходимую информацию.
Структура базы данных:
- Товар
- Материал
- Количество
- Цена
- Страна производителя
Для лучшего представления данных используются графический вывод информации, визуальные компоненты, диаграммы, иллюстрации.
3. Проектирование интерфейса
3.1. Выбор и назначение визуальных компонентов
Button (командная кнопка) - компонент меню Standard, используемый для создания кнопок, которыми пользователь выполняет команды в приложении.
Edit (окно редактирования) - компонент меню Standard, предназначенный для ввода/вывода и редактирования однострочных текстов. Основное свойство — Text. Это свойство можно устанавливать в процессе проектирования или задавать программно.
Label (метка) - компонент меню Standard, используемый для отображения надписи на форме, которая не изменяется пользователем. Никакого оформления текста не предусмотрено, кроме цвета метки и текста. Основное свойство — Caption.
StringGrid (таблица строк) — компонент меню Additional, отображающий информацию в таблице из строк и столбцов с возможностью перемещаться по строкам и столбцам и осуществлять выбор. Основные свойства: RowCount и ColCount — определяют соответственно число строк и столбцов (доступны и в ходе выполнения и на этапе проектирования программы); за содержимое всего столбца или всей строки отвечают свойства Cols и Rows — отвечает за работу с отдельными ячейками (доступно только в ходе выполнения программы).
Image (изображение) — компонент меню Additional. Используется для отображения графики: пиктограмм, битовых матриц, и метафайлов.
MainMenu (главное меню) — невизуальный компонент страницы Standard. Основное свойство — Items(добавление пунктов меню). Свойство Visible отвечает за видимость/невидимость элементов меню на экране.
Chart (диаграммы и графики) – компонент меню Additional. Используется для создания диаграмм и графиков.
TabControl – вкладка, компонент меню вкладка Win32 Палитры компонентов.
Класс TControl обеспечивает основные функциональные атрибуты, такие как положение и размеры элемента, его заголовок, цвет и другие параметры. Класс TControl включает в себя общие для визуальных компонентов свойства, события и методы.
3.2. Формы проекта.
Работа с данными в Microsoft Access осуществляется в основном с помощью форм. Любая форма содержит окна - поля, которые предназначены для ввода информации.
Были созданы следующие формы:
- Form1 (главная форма).
Главная форма позволяет добавлять товары, редактировать, удалять и сохранять все изменения в БД. Также можно отсортировать, имеющиеся данные по цене, материалу и количеству.
Рис.1 Главная форма.
Рис.2 Элементы меню «Файл».
Рис.3 Элементы меню «Сортировка».
- Form2 (форма поиска).
Данная форма позволяет
Рис.4 Окно поиска.
- Form4 (диаграммы)
Представлены диаграммы по товару, материалу и стране производителя.
Рис.5 Окно с диаграммой по товару.
Рис.6 Окно с диаграммой по материалу.
Рис.7 Окно с диаграммой по стране производителя.
4. Разработка программного обеспечения
Основные процедуры.
procedure TForm1.btn1Click(Sender: TObject);- добавление информации в таблицу;
procedure TForm1.N3Click(Sender: TObject); - удаление записи ;
procedure TForm1.N4Click(Sender: TObject); - сохранение изменений;
procedure TForm1.N6Click(Sender: TObject); - сортировка по цене;
procedure TForm1.N10Click(Sender: TObject); - сортировка по материалу;
procedure TForm1.N11Click(Sender: TObject); - сортировка по количеству;
procedure TForm1.N9Click(Sender: TObject) ,
procedure TForm3.Button2Click(Sender: TObject),
procedure TForm4.Button5Click(Sender: TObject); - закрывает программы;
procedure TForm1.N7Click(Sender: TObject); - скрывает главное окно и открывает окно поиска;
procedure TForm1.N8Click(Sender: TObject); - закрывает главную форму и открывает форду с диаграммами;
procedure TForm2.btn1Click(Sender: TObject); - выполняет поиск по заданной категории;
procedure TForm2.btn2Click(Sender: TObject); - скрывает окно поиска и открывает главное окно;
procedure TForm3.Button1Click(Sender: TObject); - скрывает титульный лист и открывает главное окно;
procedure TForm4.Button2Click(Sender: TObject); - открывает диаграмму по материалу;
procedure TForm4.Button3Click(Sender: TObject); - открывает диаграмму по стране производителя;
procedure TForm4.Button1Click(Sender: TObject); - диаграмму по товару;
procedure TForm4.Button4Click(Sender: TObject); - скрывает окно диаграмм и открывает главное окно.
4.2. Текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, DB, Grids, DBGrids, ADODB, jpeg, ExtCtrls;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
btn1: TButton;
MebelName: TADOTable;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
MebelNameКод: TAutoIncField;
MebelNameТовар: TWideStringField;
MebelNameМатериал: TWideStringField;
MebelNameКоличество: TIntegerField;
MebelNameЦена: TIntegerField;
MebelNameСтрана_производитель: TWideStringField;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit4;
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject); {добавление товара}
begin
Form1.MebelName.Insert;
Form1.MebelName.FieldByName(
.AsString := Self.Edit1.Text;
Form1.MebelName.FieldByName(
.AsString := Self.Edit2.Text;
Form1.MebelName.FieldByName(
.AsString := Self.Edit3.Text;
Form1.MebelName.FieldByName(
.AsString := Self.Edit4.Text;
Form1.MebelName.FieldByName(
.AsString := Self.Edit5.Text;
Form1.MebelName.Post;
end;
procedure TForm1.N3Click(Sender: TObject); {удаление товара}
begin
if MessageDlg ('Удалить запись?', mtConfirmation, [mbYes, mbNo], 0)
= mrNO then Abort;
Form1.MebelName.Delete;
end;
procedure TForm1.N4Click(Sender: TObject); {сохранение изменений}
begin
if MessageDlg ('Сохранить изменения?', mtConfirmation, [mbYes, mbNo], 0)
= mrNO then Abort;
if Form1.MebelName.Modified then
Form1.MebelName.Post;
end;
procedure TForm1.N6Click(Sender: TObject); {сортировка по цене}
begin
Form1.MebelName.
end;
procedure TForm1.N10Click(Sender: TObject); {сортировка по материалу}
begin
Form1.MebelName.
end;
procedure TForm1.N11Click(Sender: TObject); {сортировка по количеству}
begin
Form1.MebelName.
end;
procedure TForm1.N9Click(Sender: TObject); {закрытие программы}
begin
close;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
{Открытие окна поиска:}
Form2.Show;
{Вызов панели поиска:}
Form2.pnl1.Show;
{скрытие главного окна:}
Form1.Hide;
end;
procedure TForm1.N8Click(Sender: TObject); {закрывает главное окно, открывает окно с диаграммами}
begin
form1.Hide;
form4.Show;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, Grids, DBGrids, ADODB, ExtCtrls, StdCtrls, jpeg;
type
TForm2 = class(TForm)
pnl1: TPanel;
con1: TADOConnection;
tblMebelName: TADOTable;
ds1: TDataSource;
dbgrd1: TDBGrid;
atncfldMebelNameDSDesigner: TAutoIncField;
tblMebelNameDSDesigner2: TWideStringField;
tblMebelNameDSDesigner3: TWideStringField;
tblMebelNameDSDesigner4: TIntegerField;
tblMebelNameDSDesigner5: TIntegerField;
tblMebelName_: TWideStringField;
Label1: TLabel;
edt1: TEdit;
Label2: TLabel;
rb1: TRadioButton;
rb2: TRadioButton;
rb3: TRadioButton;
btn1: TButton;
btn2: TButton;
Image1: TImage;
Button1: TButton;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.btn1Click(Sender: TObject);
begin
{поиск по материалу}
if rb1.Checked then
begin
if Edt1.Text='' then exit;
Form2.tblMebelName.Filtered := false;
Form2.tblMebelName.Filter := 'Материал LIKE ''*' + Edt1.Text + '*''';
Form2.tblMebelName.Filtered := true;
end;
{поиск по цене}
if rb2.Checked then
begin
if Edt1.Text='' then exit;
Form2.tblMebelName.Filtered := false;
Form2.tblMebelName.Filter := 'Товар LIKE ''*' + Edt1.Text + '*''';
Form2.tblMebelName.Filtered := true;
end;
{поиск по стране производителя:}
if rb3.Checked then
begin
if Edt1.Text='' then exit;
Form2.tblMebelName.Filtered := false;
Form2.tblMebelName.Filter := 'Страна_производитель LIKE ''*' + Edt1.Text + '*''';
Form2.tblMebelName.Filtered := true;
end;
end;
procedure TForm2.btn2Click(Sender: TObject);
begin
{скрываем окно поиска и открываем главное окно}
form2.Hide;
form1.Show;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;
type
TForm3 = class(TForm)
Image1: TImage;
Button1: TButton;
Label8: TLabel;
Label7: TLabel;
Label6: TLabel;
Label5: TLabel;
Label4: TLabel;
Label3: TLabel;
Label2: TLabel;
Label1: TLabel;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit1, Unit2;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
{скрытие титульной формы}
Form3.Hide;
{открытие главного окна:}
Form1.Show;
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
close;
end;
end.
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Series, BubbleCh, TeEngine, ExtCtrls, TeeProcs, Chart, DB,
ADODB, Grids, DBGrids, GanttCh;
type
TForm4 = class(TForm)
DBGrid1: TDBGrid;
MebelName: TADOTable;
MebelNameКод: TAutoIncField;
MebelNameТовар: TWideStringField;
MebelNameМатериал: TWideStringField;
MebelNameКоличество: TIntegerField;
MebelNameЦена: TIntegerField;
MebelNameСтрана_производитель: TWideStringField;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
Chart1: TChart;
Chart2: TChart;
Chart3: TChart;
Series1: TPieSeries;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Series3: TGanttSeries;
Label1: TLabel;
Button5: TButton;
Series2: TBarSeries;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject); {диаграммf по товару}
var
kat: array of string;
kol: array of integer;
I,f: integer;
n:boolean;
begin
chart3.hide;
chart2.hide;
chart1.show;
Chart1.Series[0].Clear;
SetLength(kat, Form4.MebelName.RecordCount);
SetLength(kol, Form4.MebelName.RecordCount);
for I := 0 to length(kat)-1 do
begin
kat[I] := '';
kol[I] := 0;
end;
Form4.MebelName.First;
I := 0;
while not Form4.MebelName.Eof do
begin
if Form4.MebelName.FieldByName('
begin
n:=false;
for f := 0 to length(kat)-1 do
if kat[f] = Form4.MebelName.FieldByName
('товар').AsString then
begin
n:=true;
end;
if n=false then
begin
kat[I] := Form4.MebelName.FieldByName('
kol[I] := 0;
end;
I := I + 1;
end;
Form4.MebelName.Next;
end;
Form4.MebelName.First;
I := 0;
Form4.MebelName.First;
while not Form4.MebelName.Eof do
begin
for I := 0 to length(kat)-1 do
if kat[I] = Form4.MebelName.FieldByName
('товар').AsString then
kol[I] := kol[I] + Form4.MebelName.FieldByName
(Form4.DBGrid1.Columns.Items[
Form4.MebelName.Next;
end;
Form4.MebelName.First;
for I := 0 to length(kat)-1 do
if kat[I] <> '' then
begin
Chart1.Series[0].Add(kol[I], kat[I], clTeeColor);
end;
end;
procedure TForm4.Button2Click(Sender: TObject); {диаграмма по материалу;}
var
kat: array of string;
kol: array of integer;
I,f: integer;
n:boolean;
begin
chart1.hide;
chart3.hide;
Chart2.show;
Chart1.Series[0].Clear;
SetLength(kat, Form4.MebelName.RecordCount);
SetLength(kol, Form4.MebelName.RecordCount);
for I := 0 to length(kat)-1 do
begin
kat[I] := '';
kol[I] := 0;
end;
Form4.MebelName.First;
I := 0;
while not Form4.MebelName.Eof do
begin
if Form4.MebelName.FieldByName('
begin
n:=false;
for f := 0 to length(kat)-1 do
if kat[f] = Form4.MebelName.FieldByName
('материал').AsString then
begin
n:=true;
end;
if n=false then
begin
kat[I] := Form4.MebelName.FieldByName('
kol[I] := 0;
end;
I := I + 1;
end;
Form4.MebelName.Next;
end;
Form4.MebelName.First;
I := 0;
Form4.MebelName.First;
while not Form4.MebelName.Eof do
begin
for I := 0 to length(kat)-1 do
if kat[I] = Form4.MebelName.FieldByName
('материал').AsString then
kol[I] := kol[I] + Form4.MebelName.FieldByName
(Form4.DBGrid1.Columns.Items[
Form4.MebelName.Next;
end;
Form4.MebelName.First;
for I := 0 to length(kat)-1 do
if kat[I] <> '' then
begin
Chart2.Series[0].Add(kol[I], kat[I], clTeeColor);
end;
end;
procedure TForm4.Button3Click(Sender: TObject); {диаграмма по стране производителя}
var
kat: array of string;
kol: array of integer;
I,f: integer;
n:boolean;
begin
chart1.hide;
chart2.hide;
Chart3.show;
Chart1.Series[0].Clear;
SetLength(kat, Form4.MebelName.RecordCount);
SetLength(kol, Form4.MebelName.RecordCount);
for I := 0 to length(kat)-1 do
begin
kat[I] := '';
kol[I] := 0;
end;
Form4.MebelName.First;
I := 0;
while not Form4.MebelName.Eof do
begin
if Form4.MebelName.FieldByName('
begin
n:=false;
for f := 0 to length(kat)-1 do
if kat[f] = Form4.MebelName.FieldByName
('страна_производитель').
begin
n:=true;
end;
if n=false then
begin
kat[I] := Form4.MebelName.FieldByName('
kol[I] := 0;
end;
I := I + 1;
end;
Form4.MebelName.Next;
end;
Form4.MebelName.First;
I := 0;
Form4.MebelName.First;
while not Form4.MebelName.Eof do
begin
for I := 0 to length(kat)-1 do
if kat[I] = Form4.MebelName.FieldByName
('страна_производитель').
kol[I] := kol[I] + Form4.MebelName.FieldByName
(Form4.DBGrid1.Columns.Items[
Form4.MebelName.Next;
end;
Form4.MebelName.First;
for I := 0 to length(kat)-1 do
if kat[I] <> '' then
begin
Chart3.Series[0].Add(kol[I], kat[I], clTeeColor);
end;
end;
procedure TForm4.Button4Click(Sender: TObject);
{скрывает окно диаграмм и открывает главное окно}
begin
form4.Hide;
form1.Show;
end;
procedure TForm4.Button5Click(Sender: TObject);
{закрытие программы}
begin
close;
end;
end.
5. Визуальное представление результатов
Рис.8 Окно с диаграммой по товару.
Рис.9 Окно с диаграммой по материалу.
Рис.10 Окно с диаграммой по стране производителя.
6. Список литературы
1. Гофман В., Хомоненко А. Delphi 7. - Спб.: “BHV”, 2008..
5. Фленов М. Программирование в Delphi глазами Хакера.
3. http://firefox.yandex.ru/

- Мебельный щит
- Мебель торговых залов магазинов, ее типы, назначение, особенности устройства и применения
- Мебель - трансформер
- Мегаполисы в политической жизни Африки
- Медбикелік процесс дегеніміз не
- Медецинские услуги
- Медецинское страхование в России и пути его развития
- Мебельное производство
- Мебельное производство
- Мебельное производство
- Мебельное производство
- Мебельные товары
- Мебельный комбинат «Вильнюс»
- Мебельный магазин торговой площадью 1000м2