- •Автоматизация товарооборота и услуг косметической компании «Avon»
- •Глава 1. Анализ деятельности предприятия «Avon»
- •Общая информация о предприятии
- •1.2 Автоматизация деятельности компании «Avon»
- •1.3 Выбор среды программирования
- •1.4 Структура базы данных
- •Глава 2. Разработка базы данных для компании «Avon».
- •2.1. Постановка задачи
- •2.2. Создание интерфейсной части
- •2.3. Создание функциональной части
- •2.3.1. Осуществление доступа к базе данных
- •2.3.2. Реализация фильтрации и поиска
- •2.3.3. Создание отчетов
- •Заключение
- •Список используемой литературы
- •Приложение 1
- •Приложение 2
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;