Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая Харин О.B..doc
Скачиваний:
10
Добавлен:
09.06.2015
Размер:
117.25 Кб
Скачать
      1. 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;

  1. Заключение

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

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

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

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

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

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

    1. Бобровский С. И. Delphi 7. Учебный курс. – СПб.: Питер, 2006.

    2. Фаронов В. В. Delphi 5. Руководство программиста. – М.: «Нолидж», 2001.

    3. Гофман В. Э., Хомоненко А. Д. Delphi 6. – СПб.: БХВ-Петербург, 2001.

    4. Цветков В.Д. Системно-структурное моделирование и автоматизация проектирования – М.: «Нолидж», 2001г.

    5. Шкрыль А. А. Delphi. Народные советы. – СПб.: БХВ-Петербург, 2007.

    6. Шпак Ю. А. Разработка приложений в Delphi 2005/2006. – К.: «МК-Пресс», 2006.

  1. Приложение 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;