Курсовая работа на тему: Автоматизация товарооборота и услуг косметической компании «Avon» по дисциплине «Базы данных»

Вид материалаКурсовая

Содержание


Объект курсовой работы: косметическая компания«Avon». Предметом
Цель работы: создать базу данных в среде Delphi для автоматизации работы «Avon» с клиентами и товаром. Задачи
Глава 1. Анализ деятельности предприятия «Avon» Общая информация о предприятии
1.2 Автоматизация деятельности компании «Avon»
1.3 Выбор среды программирования
1.4 Структура базы данных
Наименование поля на англ. языке
Система скидок
Характеристика товара
Глава 2. Разработка базы данных для компании «Avon». 2.1. Постановка задачи
2.2. Создание интерфейсной части
2.3. Создание функциональной части
2.3.2. Реализация фильтрации и поиска
2.3.3. Создание отчетов
Список используемой литературы
Подобный материал:

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

на тему:

Автоматизация товарооборота и услуг косметической компании «Avon»


по дисциплине «Базы данных»


Оглавление





Оглавление 2

Введение 3

Глава 1. Анализ деятельности предприятия «Avon» 5

Общая информация о предприятии 5

1.2 Автоматизация деятельности компании «Avon» 6

1.3 Выбор среды программирования 7

1.4 Структура базы данных 8

Глава 2. Разработка базы данных для компании «Avon». 11

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

2.2. Создание интерфейсной части 12

2.3. Создание функциональной части 13

2.3.1. Осуществление доступа к базе данных 13

2.3.2. Реализация фильтрации и поиска 15

2.3.3. Создание отчетов 17

Заключение 18

Список используемой литературы 19

Приложение 1 20

Приложение 2 26

Введение


На сегодняшний день, существует огромное количество косметических компаний. Услугами таких компаний, мы пользуемся ежедневно (покупая косметику и пользуясь косметическими средствами). Основное структурное подразделение косметических компаний, которое требует автоматизации – учет товара.

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

Объект курсовой работы: косметическая компания«Avon».

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

Цель работы: создать базу данных в среде Delphi для автоматизации работы «Avon» с клиентами и товаром.

Задачи работы:

1. Проанализировать основную деятельность организации

2. Изучить организационную структуру предприятия;

3. Выделить информацию, необходимую для автоматизации;

4. Создание базы данных, состоящей из нескольких таблиц;

5. Разработка интерфейсной части;

6. Создание функциональной части;

7. Оформление выводов по проделанной работе.

Актуальность данной темы вызвана тем, что качественно разработанная программа значительно облегчит работу с заказами.

Существуют альтернативные программы учета товара «1С: Торговля и склад» и конфигурация «1С: Производство + Услуги + Бухгалтерия».

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

Эффективность

Глава 1. Анализ деятельности предприятия «Avon»

Общая информация о предприятии


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

Расположенный близ Дублина – столицы Ирландии – Глобальный Технический Центр Avon занимается разработками в области косметического производства. В технологии, которые создаются на базе ГТЦ, его сотрудники вкладывают все свои знания о современных научных разработках, тенденциях рынка и нуждах потребителя. За последние 24 года сотрудники Центра накопили огромный опыт по выпуску средств для лица и тела, солнцезащитной косметики, ароматов и косметики для мужчин.

Сегодня «Avon Косметикс» — одна из самых быстрорастущих косметических компаний в мире. Она работает в 59 странах мира, в 30 из которых является одним из лидеров на рынке прямых продаж. «Avon» предлагает широкий спектр высококачественных средств по уходу за кожей, парфюмерии и декоративной косметики. Продукция компании «Avon» распространяется методом прямых продаж через Консультантов. Так же сочетает в себе прямые продажи и сетевой маркетинг.

Однако данная компания имеет ряд недостатков, которые необходимо исправить.
  1. Отсутствие базы данных для каждого консультанта
  2. Работа с клиентами и поставщиками не автоматизирована и требует доработки в соответствии с современными стандартами.

Но это лишь те проблемы, которые решатся после автоматизации работы предприятия.


1.2 Автоматизация деятельности компании «Avon»


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

Автоматизируемая область компании «Avon» представлена на следующей схеме.

Схема 1. Автоматизация товарооборота и услуг компании Avon


Возможности программы учета товаров косметической компании включает:
  • Автоматизированный учет реализованного товара;
  • Учет товаров на складе;
  • Учет заказов от заказчиков;
  • Получение отчетной и аналитической информации о движении товаров;



1.3 Выбор среды программирования


Для разработки программного продукта была выбрана система программирования Borland Delphi и язык SQL.

Разработка интерфейса в Delphi является простой задачей для программиста.

Cреда Delphi включает полный набор визуальных инструментов для скоростной разработки приложений (RAD - rapid application development), поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных.

Благодаря открытой компонентной архитектуре приложения, изготовленные при помощи Delphi, работают надежно и устойчиво. Архитектура Delphi позволяет добавлять компоненты и оперировать ими в визуальном построителе. Разработчики могут добавлять CASE-инструменты, кодовые генераторы, доступные через меню Delphi.

Визуальный построитель интерфейсов (Visual User-interface builder) дает возможность быстро создавать клиент-серверные приложения визуально, просто выбирая компоненты из соответствующей палитры.

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

Язык SQL широко используется в программах. Он помогает создать базу данных, состоящую из большого числа таблиц, имеющих сложные взаимосвязи. Наиболее существенным свойством SQL является возможность доступа к реляционным БД.

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


1.4 Структура базы данных


База данных состоит из взаимосвязанных таблиц, каждая из которых содержит информацию об объектах одного типа.

Имеющиеся данные:

Наименование поля на англ. языке

Наименование поля на рус. языке

Тип данных

Описание

Kod_tovar

Код товара

Integer

Поле содержит код товара. Ключевое поле.

Name_tovar

Наименование товара

String

Поле содержит наименование товара.

Type_production

Наименование вида продукции

String

Поле содержит наименование вида продукции.

seria

Наименование категории

String

Поле содержит наименование категории товара. Индексное поле.

Price

Цена товара

Money

Поле содержит цену товара в рублях.

Amount

Количество товара

Integer

Поле содержит количество товара в штуках.

Amount_custom

Количество заказанного товара

Integer

Поле содержит количество заказанного товара.

Date_custom

Дата заказа

Date

Поле содержит дату заказа.

Code_client

Код клиента

Integer

Поле содержит код клиента. Ключевое поле.

Name_client

Наименование клиента

String

Поле содержит фамилию клиента.

Address_client

Адрес клиента

String

Поле содержит адрес клиента.

Discount

Скидка

Integer

Поле содержит скиду на данный товар

Phone_client

Телефон клиента

Integer

Поле содержит телефон клиента.


При проектировании структуры данных был использован следующий подход: сбор информации об объекте в рамках одной таблицы и последующее разбиение ее на несколько взаимосвязанных таблиц на основе нормализации отношений.

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

Первая нормальная форма (1NF) требует, чтобы каждое поле таблицы БД:
  • Было неделимым;
  • Не содержало повторяющихся групп;

Таким образом, 1NF будет в виде таблицы, содержащей 13 полей, в каждом из которых находится одно значение, и все не ключевые атрибуты будут зависеть от ключа. Ключевым полем является поле «Код товара».

Чтобы перейти ко второй нормальной форме (2NF), необходимо выполнить ограничения 1NF, а также необходимо выполнить условие, чтобы каждый не ключевой атрибут функционально полно зависел от первичного ключа. В итоге получаем таблицу:

Ассортимент

Код товара

Наименование

Тип продукции

Цена

Количество имеющегося товара


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


Первая таблица:

Ассортимент

Код товара

Наименование

Тип продукции

Цена

Количество имеющегося товара


Вторая таблица

Заказы

код товара

дата заказа

код заказчика

количество


Третья таблица:

Клиент

Код заказчика

Фамилия

Адрес

Телефон


Четвертая таблица:

Система скидок

код товара

Стоимость

Скидка


Пятая таблица:

Характеристика товара

Код товара

Серия

наименование


Структура базы данных косметической компании, будет иметь вид:


Глава 2. Разработка базы данных для компании «Avon».

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


Для разработки базы данных для «Avon» необходимо выполнить следующие технические задачи:
  • создать БД;
  • автоматизировать учет клиентов;
  • выполнить анализ учета заказов.

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

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

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

2.2. Создание интерфейсной части


На основной форме (рис.2.1.1.), использовался компонент Image из категории Additional. Для того чтобы выбрать рисунок, необходимо в свойствах этого компонента найти свойство Picture, после чего выбираем фоновый рисунок. Данный компонент используется три раза. Так же на форме присутствует компонент Label из категории Standard, в свойстве Caption задаем необходимый для нас текст. Чтобы перейти на остальные формы, и было удобнее работать, используем компонент MainMenu из категории Standard, щелкая по этому компоненту, пишем необходимые для закладки в меню. Для того чтобы изменить название самой формы, в свойстве Form находим Caption и задаем текст.

Чтобы форма выглядела интереснее, поменяем иконку формы. Для этого используем свойство Icon для Form, выбираем необходимую для формы иконку и вставляем ее.


Рис. 2.2.1. Главная форма

Пункт меню «Справка» содержит в себе вкладку «О программе» (рис.2.2.2), где приводится название, имя разработчика, время создание программного продукта. Для этого используется компонент AboutBox.


Рис. 2.2.2. Форма «О программе»


На форме (рис. 2.2.3.), где осуществляется поиск товара, использовались такие компоненты, как DataSource1 (Data Access), Table1 (BDE), DBGrid1 (Data Controls), DBRadioGroup1(Data Controls), Image1 (Additional), Edit1 (Standard).


Рис. 2.2.3. Форма «Клиент-заказ»


На форме (рис 2.2.4.) где осуществляется фильтрация компонентов, использовались следующие компоненты: Image1: TImage; DataSource1: TDataSource; DBGrid1: TDBGrid; DBNavigator1: TDBNavigator; Table1: TTable; DataSource2: TDataSource; DBGrid2: TDBGrid; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Query1: TQuery; RadioGroup1: TRadioGroup;


Рис. 2.2.4. Форма «Подать заказ»


На другой форме (рис.2.2.5.), где осуществляется запрос, использовали компоненты: DBNavigator1 (Data Controls), Label1 (Standard), Edit1 (Standard), DBEdit1(Data Controls), Table2 (BDE), Query1(BDE), Query2 (BDE), DataSource1 (Data Access), DataSource2 (Data Access), DataSource4 (Data Access), Button1 (Standart). И для того, чтобы создать фон, используем компонент Image из категории Additional. На этой же форме осуществляется вывод отчета.


Рис. 2.2.5. Форма «Клиент-заказ»


Вид отчета имеет следующий вид:

2.3. Создание функциональной части

2.3.1. Осуществление доступа к базе данных


Изначально, необходимо создать таблицы в Database Desktop. Для этого в пуске выбираем Borland Delphi 7 и находим этот компонент. После этого выбираем File -> New -> Table -> Paradox7, вводим название полей таблицы и выбираем их тип. Так же необходимо выбрать ключевое поле таблицы, для этого ставим « * » в поле Key.Созданные таблицы мы сохраняем в отдельной папке на диске С (C:\orf). Связи между объектами осуществляются вручную.

Чтобы созданные нами таблицы можно было вывести на форме, необходимо вставить такие компоненты как: DataSource1 (Data Access), Table1 или Query1 (BDE), DBGrid1 (Data Controls). В свойстве Table1 (Query1) выбираем DatabaseName и прописываем путь, где находятся наши таблицы C:\orf, а в свойстве TableName выбираем название нужной нам таблицы. После этого, у компонента DataSource1 находим свойство DataSet и выбираем Table(Query). У компонента DBGrid1, в свойстве DataSource, выбираем DataSource1. Для того, чтобы во время работы программы можно было добавлять поля в таблицу, на форму ставим компонент DBNavigator1 (Data Controls). Связываем данный компонент с таблицей, для этого в свойстве DataSource, выбираем DataSource1.

Отображение расчета итогов связано со свойством SQL компонента Query. Для расчета итога формируем динамический запрос:

procedure TForm5.Button1Click(Sender: TObject);

begin

Query1.SQL.Clear;

Query1.SQL.Add('SELECT A.Kod_Tovar, A.Name_Tovar, A.Price, Z.Amount_Custom');

Query1.SQL.Add('From assortiment as A, zakaz as Z');

Query1.SQL.Add('WHERE (A.Kod_Tovar=Z.Kod_Tovar) and Z.Code_Client='+ Table2.Fields[0].AsString + ' and Z.Date_Custom="'+ Edit1.Text + '"');

Query1.Open;

Query2.SQL.Clear;

Query2.SQL.Add('SELECT SUM(A.Price*Z.Amount_Custom)');

Query2.SQL.Add('FROM assortiment as A, zakaz as Z');

Query2.SQL.Add('WHERE (A.Kod_Tovar=Z.Kod_Tovar) and Z.Code_Client='+ Table2.Fields[0].AsString);

Query2.Open;

end;

2.3.2. Реализация фильтрации и поиска


Для сокращения времени нахождения нужного товара, на форме «Ассортимент» используем поиск. Поиск товара, осуществляем через Locate и Lookup. Для этого, создаем DBRadioGroup1, щелкая по нему два раза, прописываем следующий код:

procedure TForm2.DBRadioGroup1Click(Sender: TObject);

var

Res:Variant;

s : string;

begin

with Table1 do

begin

case DBRadioGroup1.ItemIndex of

0: begin

if not Table1.Locate('Kod_Tovar',Edit1.Text,[loCaseInsensitive, loPartialKey])then

ShowMessage('Запись не найдена');

end;

1: begin

Res := Table1.Lookup('Kod_Tovar',Edit1.Text,'Kod_Tovar; Name_Tovar');

if VarIsNull(Res) then

ShowMessage('не найдено')

else

begin

s := string (Res [0]) + ' ' + string (Res [1]);

ShowMessage(s);

end;

end;

end;

end;

end;

Для того чтобы осуществить фильтрацию, на форме «Подать заказ» создаем RadioGroup1 (Standard), щелкаем по компоненту два раза и прописываем следующий код:

procedure TForm7.RadioGroup1Click(Sender: TObject);

begin

{Для начала, очищаем табличку}

Query1.SQL.Clear;

{Выбираем все поля из таблицы assortiment.db}

Query1.SQL.Add('Select * FROM assortiment.db');

Case RadioGroup1.ItemIndex of

{Если будет нажата 1 строчка, тогда просто выводим все поля из таблицы assortiment.db}

0: begin

Query1.Close;

Query1.SQL.Clear;

Query1.SQL.Add('Select * FROM assortiment.db');

end;

{Если будет нажата вторая строчка, то фильтруем данные таблички, по полю Type_Product, фильтрация производиться по тексту, который введен в Edit1}

1: Query1.SQL.Add('Where Type_Product = "' + Edit1.Text +'"');

{Если же будет нажата третья строка, то мы производим фильтрацию по диапазону, диапазон будет вводиться в Edit2 и Edit3}

2: Query1.SQL.Add('Where Price between '+ Edit2.Text +' and ' + Edit3.Text +'');

end;

{Теперь открываем таблицу}

Query1.Open;

end;

end.

2.3.3. Создание отчетов


Чтобы предоставить отчет главному бухгалтеру фирмы Mr.Doors необходимо перенести данные в более адаптированную среду. На наш взгляд, универсальной средой для подсчета данных является Rave Designer. Разместим на нужной нам форме компонент RvProject и RvDataSetCjnnection категории Rave, и в обработчике события ProjectFile запишем путь: C:\Ychet\1\Project1.rav

На кнопку «Выполнить отчет» в обработчике события OnClick записали следующий код:

procedure TForm5.Button2Click(Sender: TObject);

begin

RvProject1.ExecuteReport('report2');

end;


Заключение


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

Была разработана и автоматизирована работа дистрибьюторов компании «Avon».

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

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

Недостатком является то, что данные обновлять и заносить приходиться вручную.

Список используемой литературы




    1. Бобровский С. И. Delphi 7. Учебный курс. – СПб.: Питер, 2006.
    2. Фаронов В. В. Delphi 5. Руководство программиста. – М.: «Нолидж», 2001.
    3. Гофман В. Э., Хомоненко А. Д. Delphi 6. – СПб.: БХВ-Петербург, 2001.
    4. Цветков В.Д. Системно-структурное моделирование и автоматизация проектирования – М.: «Нолидж», 2001г.
    5. Шкрыль А. А. Delphi. Народные советы. – СПб.: БХВ-Петербург, 2007.
    6. Шпак Ю. А. Разработка приложений в Delphi 2005/2006. – К.: «МК-Пресс», 2006.

Приложение 1


Листинг программы «Учет»


unit Unit1;

interface

uses

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

Dialogs, ExtCtrls, Menus, Unit2, Unit3,Unit4,Unit5,Unit6,Unit7,Unit8, Unit9, Unit10, jpeg, StdCtrls;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

Image1: TImage;

Label1: TLabel;

N9: TMenuItem;

Image2: TImage;

Image3: TImage;

N10: TMenuItem;

N11: TMenuItem;

N6: TMenuItem;

N12: TMenuItem;

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N12Click(Sender: TObject);

procedure N8Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

// открытие формы «Ассортимент»

procedure TForm1.N2Click(Sender: TObject);

begin

form2.Show;

end;


// открытие формы «Характеристика товара»

procedure TForm1.N3Click(Sender: TObject);

begin

form3.Show;

end;


// открытие формы «Система скидок»

procedure TForm1.N4Click(Sender: TObject);

begin

form4.show;

end;


// открытие формы «Клиент-заказ»

procedure TForm1.N10Click(Sender: TObject);

begin

form5.Show;

end;


// открытие формы «Список клиентов»

procedure TForm1.N11Click(Sender: TObject);

begin

form6.Show;

end;


// открытие формы «Подать заказ»

procedure TForm1.N6Click(Sender: TObject);

begin

form7.Show;

end;

// открытие формы «Количество товара»

procedure TForm1.N12Click(Sender: TObject);

begin

form8.Show;

end;


// Закрываем основную форму

procedure TForm1.N14Click(Sender: TObject);

begin

form1.Close;

end;


// Открываем форму «О программе»

procedure TForm1.N9Click(Sender: TObject);

begin

AboutBox.Show;

end;


//Открытие формы «О товаре»

procedure TForm1.N15Click(Sender: TObject);

begin

form10.Show;

end;

end.


// Процедура для поиска товара

procedure TForm2.DBRadioGroup1Click(Sender: TObject);

var

Res:Variant;

s : string;

begin

{Связываемся с табличкой 1}

with Table1 do

begin

case DBRadioGroup1.ItemIndex of

{Если нажали ItemIndex=0, то происходит поиск через Locate}

0: begin

if not Table1.Locate('Kod_Tovar',Edit1.Text,[loCaseInsensitive, loPartialKey])then

ShowMessage('Запись не найдена');

end;

{Если нажали ItemIndex=1, то происходит поиск через Lookup}

1: begin

Res:=Table1.Lookup('Kod_Tovar',Edit1.Text,'Kod_Tovar; Name_Tovar');

if VarIsNull(Res) then

ShowMessage('не найдено')

else

begin

s := string (Res [0]) + ' ' + string (Res [1]);

ShowMessage(s);

end;

end;

end;

end;

end;

procedure TForm2.FormCreate(Sender: TObject);

begin

Table1.Open;

end;

end.


// Расчет процентов

procedure TForm4.Table1CalcFields(DataSet: TDataSet);

begin

Table1Itog.AsFloat := (table1.fields[1].AsFloat* (100-Table1.fields[2].AsFloat))/100;

end;


// Подача запроса по дате товара

procedure TForm5.Button1Click(Sender: TObject);

begin

{производим вывод товара по дате заказа и коду клиента}

Query1.SQL.Clear;

Query1.SQL.Add('SELECT A.Kod_Tovar, A.Name_Tovar, A.Price, Z.Amount_Custom');

Query1.SQL.Add('From assortiment as A, zakaz as Z');

Query1.SQL.Add('WHERE (A.Kod_Tovar=Z.Kod_Tovar) and Z.Code_Client='+ Table2.Fields[0].AsString + ' and Z.Date_Custom="'+ Edit1.Text + '"');

Query1.Open;

{Подсчитываем общую сумму}

Query2.SQL.Clear;

Query2.SQL.Add('SELECT SUM(A.Price*Z.Amount_Custom)');

Query2.SQL.Add('FROM assortiment as A, zakaz as Z');

Query2.SQL.Add('WHERE (A.Kod_Tovar=Z.Kod_Tovar) and Z.Code_Client='+ Table2.Fields[0].AsString);

Query2.Open;

end;


//Производим вывод отчета

procedure TForm5.Button2Click(Sender: TObject);

begin

RvProject1.ExecuteReport('report2');

end;


// Производим выгрузку данных в Exele

procedure TForm5.Button3Click(Sender: TObject);

Var

ExcelApp, Workbook, Range, Cell1, Cell2, ArrayData: Variant;

BeginCol, BeginRow, j: integer;

RowCount, ColCount: Integer;

SFile: String;

begin

BeginCol := 1;

BeginRow := 2;


RowCount := Form5.Query1.RecordCount;

ColCount := Form5.Query1.FieldDefs.Count;


ExcelApp := CreateOleObject('Excel.Application');


ExcelApp.Application.EnableEvents := False;


Workbook := ExcelApp.WorkBooks.Add(SFile);

For j := 1 to Form5.Query1.Fields.Count do

Begin

ExcelApp.Workbooks[1].WorkSheets[1].Cells[1,j].Value := Form5.Query1.Fields[j-1].FieldName;

End;

ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant);


Form5.Query1.DisableControls;

Form5.Query1.First;

While Not Form5.Query1.Eof Do

Begin

For j := 1 to Form5.Query1.FieldDefs.Count do

Begin

ArrayData[Form5.Query1.RecNo, J] := Form5.Query1.FieldbyName(Form5.Query1.FieldDefs.Items[j - 1].DisplayName).Value;

End;

Form5.Query1.Next;

End;

Form5.Query1.EnableControls;


Cell1 := WorkBook.WorkSheets[1].Cells[BeginRow, BeginCol];


Cell2 := WorkBook.WorkSheets[1].Cells[BeginRow + RowCount - 1, BeginCol + ColCount - 1];


Range := WorkBook.WorkSheets[1].Range[Cell1, Cell2];


Range.Value := ArrayData;

ExcelApp.Visible := True;

end;


//Фильтрация данных

procedure TForm7.RadioGroup1Click(Sender: TObject);

begin

Query1.Close;

Query1.SQL.Clear;

Query1.SQL.Add('Select * FROM assortiment.db');

Case RadioGroup1.ItemIndex of

{ Выводим все имеющиеся данные}

0: begin

Query1.Close;

Query1.SQL.Clear;

Query1.SQL.Add('Select * FROM assortiment.db');

end;

{Делаем фильтрацию по типу продукции}

1: Query1.SQL.Add('Where Type_Product = "' + Edit1.Text +'"');

{Делаем фильтрацию по диапазону, по цене}

2: Query1.SQL.Add('Where Price between '+Edit2.Text +' and ' + Edit3.Text +'');

end;

Query1.Open;

end;


//Вычисление оставшегося товара

procedure TForm8.Button1Click(Sender: TObject);

begin

Query2.Close;

Query2.SQL.Clear;

Query2.SQL.Add('UPDATE assortiment.db');

Query2.SQL.Add('SET Amount = "'+ Query1.Fields[3].AsString +'"') ;

Query2.SQL.Add('Where Kod_Tovar = "' + Query1.Fields[0].AsString +'"');

Query2.Open;

end;

Приложение 2


Основные процедуры, функции и операторы, используемые при разработке программы «Avon»

  1. DBEdit.DataField – поле базы данных, для отображения которого используется компонент.
  2. Query.SQL – записанный на языке SQL-запрос к базе данных.
  3. Query.SQL.Add – добавление SQL-запроса.
  4. Query.Active – вывод содержимого SQL-запроса.
  5. Table1.Locate(Table1.Locate('Familiya',Edit1.Text,[LoCaseInsensitive,LoPartialKey]) – поиск записи, удовлетворяющей критерию поиска.
  6. Table1.Lookup('Kod_Tovar',Edit1.Text,'Kod_Tovar; Name_Tovar') – поиск записей и вывод данных в отдельном окне
  7. Table1.Filter – задает фильтр для данных.
  8. Table1.Filtered – свойство, определяющее, будут ли профильтрованы данные
  9. Table1.IndexName – определяет поле, по которому будут отсортированы данные таблицы
  10. RVProject.ExecuteReport('Report') – выполнение отчета.
  11. Query1.SQL.Add('WHERE (A.Kod_Tovar=Z.Kod_Tovar) and Z.Code_Client='+ Table2.Fields[0].AsString + ' and Z.Date_Custom="'+ Edit1.Text + '"') – выбирает только тот товар, который соответствует веденной дате.