Курсовая работа на тему: Автоматизация товарооборота и услуг косметической компании «Avon» по дисциплине «Базы данных»
Вид материала | Курсовая |
- Курсовая работа по дисциплине: «Базы данных», 162.45kb.
- Курсовая работа по дисциплине «Базы данных» на тему: «Разработка базы данных для учета, 154.05kb.
- Пояснительная записка Курсовая работа по дисциплине «информатика» на тему: Ссылочные, 322.5kb.
- Курсовая работа по дисциплине «Логистика» На тему: «Направления совершенствования транспортной, 82.57kb.
- Курсовая работа по дисциплине «Экономика предприятия» на тему: Роль лизинга в обновлении, 372.68kb.
- Курсовая работа, 52.16kb.
- Реферат на тему: Access. Базы данных, 274.77kb.
- Курсовая работа по базам данных (6-й семестр) Возможна постановка задачи в области, 107.15kb.
- Практическая работа № «Создание базы данных», 21.96kb.
- Методические указания по выполнению курсовой работы по дисциплине "Информатика" для, 188.01kb.
Курсовая работа
на тему:
Автоматизация товарооборота и услуг косметической компании «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 Автоматизация деятельности компании «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».
При разработке программного продукта был пройден полный цикл проектирования программы от постановки задачи до тестирования программного продукта.
Данный программный продукт отвечает на поставленные цели: реализован ввод, редактирование и удаление данных, поиск и фильтрация данных. Кроме того, разработана форма, помогающая получить основную информацию о состоянии поставок и заказов, обеспеченности фирмой товаров, осуществлении программы «Отчет».
Недостатком является то, что данные обновлять и заносить приходиться вручную.
Список используемой литературы
- Бобровский С. И. Delphi 7. Учебный курс. – СПб.: Питер, 2006.
- Фаронов В. В. Delphi 5. Руководство программиста. – М.: «Нолидж», 2001.
- Гофман В. Э., Хомоненко А. Д. Delphi 6. – СПб.: БХВ-Петербург, 2001.
- Цветков В.Д. Системно-структурное моделирование и автоматизация проектирования – М.: «Нолидж», 2001г.
- Шкрыль А. А. Delphi. Народные советы. – СПб.: БХВ-Петербург, 2007.
- Шпак Ю. А. Разработка приложений в 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»
- DBEdit.DataField – поле базы данных, для отображения которого используется компонент.
- Query.SQL – записанный на языке SQL-запрос к базе данных.
- Query.SQL.Add – добавление SQL-запроса.
- Query.Active – вывод содержимого SQL-запроса.
- Table1.Locate(Table1.Locate('Familiya',Edit1.Text,[LoCaseInsensitive,LoPartialKey]) – поиск записи, удовлетворяющей критерию поиска.
- Table1.Lookup('Kod_Tovar',Edit1.Text,'Kod_Tovar; Name_Tovar') – поиск записей и вывод данных в отдельном окне
- Table1.Filter – задает фильтр для данных.
- Table1.Filtered – свойство, определяющее, будут ли профильтрованы данные
- Table1.IndexName – определяет поле, по которому будут отсортированы данные таблицы
- RVProject.ExecuteReport('Report') – выполнение отчета.
- Query1.SQL.Add('WHERE (A.Kod_Tovar=Z.Kod_Tovar) and Z.Code_Client='+ Table2.Fields[0].AsString + ' and Z.Date_Custom="'+ Edit1.Text + '"') – выбирает только тот товар, который соответствует веденной дате.