Разработка программного обеспечения для автоматизации учета договоров купли-продажи новых автомобилей в автосалоне

Описание учета договоров купли-продажи автомобилей. База данных в MS Access, формы проекта, выбор и назначение компонентов. Разработка модулей, процедур, функций проекта и их назначение. Листинг программного кода и визуальное представление результатов.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 29.05.2014
Размер файла 870,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

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

2. Описание предметной области

3. Проектирование интерфейса

3.1 Выбор и назначение визуальных компонентов

3.2 Формы проекта

4. Разработка программного обеспечения

4.1 Модули, процедуры, функции проекта и их назначение

4.2 Листинг программного кода

5. Визуальное представление результатов

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

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

программный база данные договор

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

База данных должна быть реализована в СУБД MS Access. Для создания интерфейса и программного кода необходимо использовать среду программирования Delphi.

Программа должна содержать следующие элементы:

1. Окно (форма) - заставка, которая должна содержать следующие данные: тему работы, кто выполнил, кто проверил, год выполнения, графический рисунок (фото), соответствующий теме работы.

2. Создание базы данных. Редактирование, добавление, удаление элементов БД.

3. Три вида поиска по определенным параметрам.

4. Три вида сортировки по определенным характеристикам

5. Три вида диаграмм и графиков.

2. Описание предметной области

Факт заключения сделки о передачи любого транспортного средства от владельца в собственность другому лицу (физическому или юридическому) должен быть подтвержден документально. Купля продажа автомобилей сопровождается оформлением соответствующего договора, основные положения которого регламентированы гражданским законодательством, и некоторых сопутствующих документов.

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

1. В соответствии с указанными Правилами продажи отдельных видов товаров автомобили, мотоциклы и другие виды мототехники, прицепы и номерные агрегаты к ним должны пройти предпродажную подготовку, виды и объемы которой определяются изготовителями продукции. В сервисной книжке на товар или ином заменяющем ее документе продавец обязан сделать отметку о проведении такой подготовки.

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

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

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

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

5. Вместе с товаром покупателю передается также товарный чек, в котором указываются наименование товара и продавца, марка товара, номера его агрегатов, дата продажи и цена товара, а также подпись лица, непосредственно осуществляющего продажу.

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

- номер договора;

- дата договора;

- продаваемый автомобиль;

- покупатель;

- сумма договора;

- вид оплата (оплата сразу или в кредит);

- состояние договора (оплачен, закрыт по исполнению, расторгнут).

Минимальной информацией, необходимой от покупателя, является:

- ФИО покупателя;

- его паспортные данные;

- адрес;

- телефон.

Минимальным набором характеристик для автомобиля является:

- модельный ряд;

- комплектация;

- исполнение;

- цена;

- уникальные идентификаторы: № ПТС, № двигателя, № кузова;

- наличие автомобиля в автосалоне.

Помимо этого необходима информация о менеджерах салона, осуществляющих непосредственную продажу автомобилей.

Для отчетности следует визуально отображать:

- анализ объемов выручки по месяцам;

- соотношение договоров с кредитом и без;

- соотношение продаж в различных ценовых категориях.

3. Проектирование интерфейса

3.1 Выбор и назначение визуальных компонентов

Все использованные визуальные компоненты можно разделить на три типа:

1) Компоненты для обеспечения функционала программы:

Button из набора Standart - используется для размещения на форме кнопки, нажатие которой вызовет к действию заданную процедуру.

DBGrid из набора DataControls - размещает на форме табличную сетку, привязанную к таблице базы данных, с возможностями управления записями БД.

DBEdit из набора DataControls - размещает на форме поле ввода, связанное с определенным полем таблицы базы данных.

DBComboBox из набора DataControls - размещает на форме выпадающий список, возможные значения которого задаются статично, выбранное значение записывается в связанное поле БД.

DBLookupComboBox из набора DataControls - размещает на форме выпадающий список, возможные значения которого задаются из таблицы БД, выбранное значение записывается в связанное поле БД.

MainMenu из набора Standart - размещает на форме основное меню. Пункты меню исполняют заданные алгоритмы.

PopupMenu из набора Standart - размещает на форме контекстное меню. Пункты меню исполняют заданные алгоритмы.

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

2) Компоненты для доступа к базе данных

ADOConnection из набора ADO - компонент позволяет произвести подключение к базе данных. Настройки подключения прописываются в свойстве ConnectionString.

ADOTable из набора ADO - компонент обеспечивает доступ к определенной таблице БД.

DataSource из набора DataAccess - компонент служит для связи между соединением с базой данных и компонентами отображения и обработки записей базы данных.

3) Компоненты для визуального оформления

Label из набора Standart - размещает на форме статичную надпись.

Image из набора Standart - размещает на форме поле рисунка.

3.2 Формы проекта

Проект содержит 16 форм, часть которых однотипна.

Основная форма проекта представлена на рис.1. Она содержит

Рис. 1. Основная форма проекта

Пункт «Справочники» контекстного меню позволяет перейти к формам редактирования справочников базы данных.

Форма для работы со справочником «Автомобили» представлена на рис.2.

Рис. 2. Форма справочника «Автомобили»

Добавление записи происходит на отдельной форме (рис.3), вызываемой нажатием кнопки «Добавить».

Рис. 3. Форма добавления записи в справочник «Автомобили»

Кнопка «Изменить» открывает отдельную форму для редактирования текущей записи (рис. 4).

Рис. 4. Форма редактирования записи справочника «Автомобили»

Работа со справочником «Клиенты» ведется в форме, представленной на рис. 5.

Рис. 5. Форма справочника «Клиенты».

Добавление и редактирования записей происходит в отдельных формах, аналогичных представленным на рис.3-4.

Работа со справочником «Договоры» ведется в форме, приведенной на рис. 6.

Рис. 6. Форма справочника «Договоры»

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

Работа со справочником «Менеджеры» ведется в форме, приведенной на рис. 7.

Рис. 7. Форма справочника «Менеджеры»

Добавление и редактирование записей ведется непосредственно в таблице.

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

Рис. 8. Форма поиска информации

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

Для визуального представления отчетности предназначено три формы с диаграммами, вызываемые через пункт «отчеты» меню основной формы. Экранные копии форм с диаграммами приведены на рис.9-11 в п.5.

4. Разработка программного обеспечения

4.1 Модули, процедуры, функции проекта и их назначение

Программа содержит 17 модулей:

MainUnit - основная форма проекта, содержит титульную информацию и основное меню для перехода к другим формам.

DataModulUnit - модуль для размещения компонентов соединения с базой данных.

KlientUnit - форма отображения справочника «Клиенты».

KlientAddUnit - форма добавления записи в справочник «Клиенты».

KlientRewUnit - форма редактирования записи справочника «Клиенты».

AvtoFUnit - форма отображения справочника «Автомобили».

AvtoAddUnit - форма добавления записи в справочник «Автомобили».

AvtoRewUnit - форма редактирования записи справочника «Автомобили».

DogUnit - форма отображения справочника «Договоры».

DogAddUnit - форма добавления записи в справочник «Договоры».

DogRewUnit - форма редактирования записи справочника «Договоры».

ManUnit - форма работы со справочником «Менеджеры».

PoiskUnit - форма поиска информации в БД.

AnalizUnit, ProdaziUnit, VidiUnit - формы с диаграммами.

Интерес представляют некоторые процедуры программы (весь листинг приведен в п.4.2).

Процедура удаления записи из справочника предварительно выдает запрос предупреждения. Листинг процедуры приведен ниже:

procedure TDog.Button3Click(Sender: TObject);

begin

if Application.MessageBox(PChar('Удалить запись '

+DataModul.DogTDSDesigner2.AsString+'?'),'Подтверждение',

MB_OKCANCEL)=id_OK then

DataModul.DogT.Delete;

end;

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

procedure TDogAdd.DBLookupComboBox1CloseUp(Sender: TObject);

var id, price:integer;

begin

id:=DBLookupComboBox1.KeyValue;

DataModul.AvtoT.First;

while DataModul.AvtoT.Eof <> True do

begin

if DataModul.AvtoTDSDesigner.AsInteger=id then

price:=DataModul.AvtoTDSDesigner9.AsInteger;

DataModul.AvtoT.Next;

end;

DBEdit3.Text:=InttoStr(price);

end;

При нажатии кнопки «Сохранить» на формах добавления или редактирования записей происходит проверка изменений и их сохранение. Листинг процедуры представлен ниже:

procedure TDogRew.Button2Click(Sender: TObject);

begin

if DataModul.DogT.Modified then

DataModul.DogT.Post;

DogRew.Close;

end;

Процедура построения диаграммы по справочнику «Договоры» с суммированием продаж за каждый месяц представлена ниже:

procedure TAnaliz.FormCreate(Sender: TObject);

var sum:array[1..12] of integer;

i:integer;

d:string;

s:real;

begin

Analiz.Chart1.Series[0].Active:=True;

Analiz.Chart1.Series[0].Clear;

for i:=1 to 12 do

sum[i]:=0;

DataModul.DogT.First;

while DataModul.DogT.Eof <> True do

begin

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='01' then

sum[1]:=sum[1]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='02' then

sum[2]:=sum[2]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='03' then

sum[3]:=sum[3]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='04' then

sum[4]:=sum[4]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='05' then

sum[5]:=sum[5]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='06' then

sum[6]:=sum[6]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='07' then

sum[7]:=sum[7]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='08' then

sum[8]:=sum[8]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='09' then

sum[9]:=sum[9]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='10' then

sum[10]:=sum[10]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='11' then

sum[11]:=sum[11]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='12' then

sum[12]:=sum[12]+DataModul.DogTDSDesigner9.AsInteger;

DataModul.DogT.Next;

end;

s:=sum[1]/1000;

Analiz.Series1.Add(s,'январь');

s:=sum[2]/1000;

Analiz.Series1.Add(s,'февраль');

s:=sum[3]/1000;

Analiz.Series1.Add(s,'март');

s:=sum[4]/1000;

Analiz.Series1.Add(s,'апрель');

s:=sum[5]/1000;

Analiz.Series1.Add(s,'май');

s:=sum[6]/1000;

Analiz.Series1.Add(s,'июнь');

s:=sum[7]/1000;

Analiz.Series1.Add(s,'июль');

s:=sum[8]/1000;

Analiz.Series1.Add(s,'август');

s:=sum[9]/1000;

Analiz.Series1.Add(s,'сентябрь');

s:=sum[10]/1000;

Analiz.Series1.Add(s,'октябрь');

s:=sum[11]/1000;

Analiz.Series1.Add(s,'ноябрь');

s:=sum[12]/1000;

Analiz.Series1.Add(s,'декабрь');

end;

4.2 Листинг программного кода

MainUnit

unit MainUnit;

interface

uses

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

Dialogs, ExtCtrls, StdCtrls, jpeg, Menus;

type

TMain = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Image1: TImage;

Label10: TLabel;

Label11: TLabel;

Button1: TButton;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N5: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

procedure Button1Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N5Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Main: TMain;

implementation

uses DataModulUnit, KlientUnit, AvtoFUnit, KlientAddUnit, KlientRewUnit,

AvtoAddUnit, AvtoRewUnit, DogAddUnit, DogUnit, DogRewUnit, ManUnit,

PoiskUnit, AnalizUnit, ProdaziUnit, VidiUnit;

{$R *.dfm}

procedure TMain.Button1Click(Sender: TObject);

begin

Main.Close;

end;

procedure TMain.N9Click(Sender: TObject);

begin

Main.Close;

end;

procedure TMain.N3Click(Sender: TObject);

begin

Klient.ShowModal;

end;

procedure TMain.N2Click(Sender: TObject);

begin

AvtoF.ShowModal;

end;

procedure TMain.N4Click(Sender: TObject);

begin

Dog.ShowModal;

end;

procedure TMain.N6Click(Sender: TObject);

begin

Man.ShowModal;

end;

procedure TMain.N11Click(Sender: TObject);

begin

Poisk.ShowModal;

end;

procedure TMain.N8Click(Sender: TObject);

begin

Analiz.ShowModal;

end;

procedure TMain.N10Click(Sender: TObject);

begin

Vidi.ShowModal;

end;

procedure TMain.N5Click(Sender: TObject);

begin

Prodazi.ShowModal;

end;

end.

DataModulUnit DataModulUnit

unit DataModulUnit;

interface

uses

SysUtils, Classes, DB, ADODB;

type

TDataModul = class(TDataModule)

Connect: TADOConnection;

KlientT: TADOTable;

AvtoT: TADOTable;

DogT: TADOTable;

ManT: TADOTable;

KlientS: TDataSource;

AvtoS: TDataSource;

DogS: TDataSource;

ManS: TDataSource;

KlientTDSDesigner: TAutoIncField;

KlientTDSDesigner2: TWideStringField;

KlientTDSDesigner3: TWideStringField;

KlientTDSDesigner4: TWideStringField;

KlientTDSDesigner5: TWideStringField;

AvtoTDSDesigner: TAutoIncField;

AvtoTDSDesigner2: TWideStringField;

AvtoTDSDesigner3: TWideStringField;

AvtoTDSDesigner4: TWideStringField;

AvtoTDSDesigner5: TWideStringField;

AvtoTDSDesigner6: TWideStringField;

AvtoTDSDesigner7: TWideStringField;

AvtoTDSDesigner8: TWideStringField;

AvtoTDSDesigner9: TBCDField;

DogTDSDesigner: TAutoIncField;

DogTDSDesigner2: TWideStringField;

DogTDSDesigner3: TDateTimeField;

DogTDSDesigner4: TIntegerField;

DogTDSDesigner5: TIntegerField;

DogTDSDesigner6: TWideStringField;

DogTDSDesigner7: TWideStringField;

DogTDSDesigner8: TIntegerField;

ManTDSDesigner: TAutoIncField;

ManTDSDesigner2: TWideStringField;

DogTDSDesigner9: TBCDField;

AvtoTDSDesigner10: TWideStringField;

DogTField: TStringField;

DogTField2: TStringField;

DogTField3: TStringField;

procedure KlientTFilterRecord(DataSet: TDataSet; var Accept: Boolean);

private

{ Private declarations }

public

{ Public declarations }

end;

var

DataModul: TDataModul;

implementation

uses PoiskUnit;

{$R *.dfm}

procedure TDataModul.KlientTFilterRecord(DataSet: TDataSet;

var Accept: Boolean);

begin

Accept:=False;

if copy (KlientTDSDesigner2.AsString,1,Length(Poisk.Edit1.Text))=Poisk.Edit1.Text then

Accept:=True;

end;

end.

KlientUnit

unit KlientUnit;

interface

uses

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

Dialogs, Grids, DBGrids, StdCtrls;

type

TKlient = class(TForm)

DBGrid1: TDBGrid;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button6: TButton;

procedure Button1Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Klient: TKlient;

implementation

uses DataModulUnit, MainUnit, KlientAddUnit, KlientRewUnit;

{$R *.dfm}

procedure TKlient.Button1Click(Sender: TObject);

begin

DataModul.KlientT.Insert;

KlientAdd.ShowModal;

end;

procedure TKlient.Button6Click(Sender: TObject);

begin

Klient.Close;

end;

procedure TKlient.Button2Click(Sender: TObject);

begin

KlientRew.ShowModal;

end;

procedure TKlient.Button3Click(Sender: TObject);

begin

if Application.MessageBox(PChar('Удалить запись '

+DataModul.KlientTDSDesigner2.AsString+'?'),'Подтверждение',

MB_OKCANCEL)=id_OK then

DataModul.KlientT.Delete;

end;

end.

KlientAddUnit

unit KlientAddUnit;

interface

uses

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

Dialogs, StdCtrls, Mask, DBCtrls;

type

TKlientAdd = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

Button2: TButton;

Button1: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

KlientAdd: TKlientAdd;

implementation

uses DataModulUnit, KlientUnit, MainUnit;

{$R *.dfm}

procedure TKlientAdd.Button1Click(Sender: TObject);

begin

KlientAdd.Close;

end;

procedure TKlientAdd.Button2Click(Sender: TObject);

begin

if DataModul.KlientT.Modified then

DataModul.KlientT.Post;

KlientAdd.Close;

end;

end.

KlientRewUnit

unit KlientRewUnit;

interface

uses

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

Dialogs, StdCtrls, Mask, DBCtrls;

type

TKlientRew = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

Button2: TButton;

Button1: TButton;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

KlientRew: TKlientRew;

implementation

uses DataModulUnit;

{$R *.dfm}

procedure TKlientRew.Button2Click(Sender: TObject);

begin

if DataModul.KlientT.Modified then

DataModul.KlientT.Post;

KlientRew.Close;

end;

procedure TKlientRew.Button1Click(Sender: TObject);

begin

KlientRew.Close;

end;

end.

AvtoFUnit

unit AvtoFUnit;

interface

uses

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

Dialogs, StdCtrls, Grids, DBGrids;

type

TAvtoF = class(TForm)

DBGrid1: TDBGrid;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button6: TButton;

procedure Button6Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

AvtoF: TAvtoF;

implementation

uses DataModulUnit, KlientAddUnit, KlientRewUnit, KlientUnit, MainUnit,

AvtoAddUnit, AvtoRewUnit;

{$R *.dfm}

procedure TAvtoF.Button6Click(Sender: TObject);

begin

AvtoF.Close;

end;

procedure TAvtoF.Button3Click(Sender: TObject);

begin

if Application.MessageBox(PChar('Удалить запись '

+DataModul.AvtoTDSDesigner.AsString+'?'),'Подтверждение',

MB_OKCANCEL)=id_OK then

DataModul.AvtoT.Delete;

end;

procedure TAvtoF.Button1Click(Sender: TObject);

begin

DataModul.AvtoT.Insert;

AvtoAdd.ShowModal;

end;

procedure TAvtoF.Button2Click(Sender: TObject);

begin

AvtoRew.ShowModal;

end;

end.

AvtoAddUnit

unit AvtoAddUnit;

interface

uses

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

Dialogs, StdCtrls, Mask, DBCtrls;

type

TAvtoAdd = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit5: TDBEdit;

DBEdit6: TDBEdit;

DBEdit7: TDBEdit;

DBEdit8: TDBEdit;

Button2: TButton;

Button1: TButton;

DBComboBox1: TDBComboBox;

DBComboBox2: TDBComboBox;

Label9: TLabel;

DBComboBox3: TDBComboBox;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

AvtoAdd: TAvtoAdd;

implementation

uses AvtoFUnit, DataModulUnit, KlientAddUnit, KlientRewUnit, KlientUnit,

MainUnit;

{$R *.dfm}

procedure TAvtoAdd.Button2Click(Sender: TObject);

begin

if DataModul.AvtoT.Modified then

DataModul.AvtoT.Post;

AvtoAdd.Close;

end;

procedure TAvtoAdd.Button1Click(Sender: TObject);

begin

AvtoAdd.Close;

end;

end.

AvtoRewUnit

unit AvtoRewUnit;

interface

uses

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

Dialogs, StdCtrls, Mask, DBCtrls;

type

TAvtoRew = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

Button2: TButton;

Button1: TButton;

DBComboBox1: TDBComboBox;

DBComboBox2: TDBComboBox;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

DBEdit5: TDBEdit;

DBEdit6: TDBEdit;

DBEdit7: TDBEdit;

DBEdit8: TDBEdit;

Label9: TLabel;

DBComboBox3: TDBComboBox;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

AvtoRew: TAvtoRew;

implementation

uses AvtoAddUnit, AvtoFUnit, DataModulUnit, KlientAddUnit, KlientRewUnit,

KlientUnit, MainUnit;

{$R *.dfm}

procedure TAvtoRew.Button2Click(Sender: TObject);

begin

if DataModul.AvtoT.Modified then

DataModul.AvtoT.Post;

AvtoRew.Close;

end;

procedure TAvtoRew.Button1Click(Sender: TObject);

begin

AvtoRew.Close;

end;

end.

DogUnit

unit DogUnit;

interface

uses

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

Dialogs, StdCtrls, Grids, DBGrids, Menus;

type

TDog = class(TForm)

DBGrid1: TDBGrid;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button6: TButton;

PopupMenu1: TPopupMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

procedure Button6Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Dog: TDog;

implementation

uses AvtoAddUnit, AvtoFUnit, AvtoRewUnit, DataModulUnit, KlientAddUnit,

KlientRewUnit, KlientUnit, MainUnit, DogAddUnit, DogRewUnit;

{$R *.dfm}

procedure TDog.Button6Click(Sender: TObject);

begin

Dog.Close;

end;

procedure TDog.Button1Click(Sender: TObject);

begin

DataModul.DogT.Insert;

DogAdd.ShowModal;

end;

procedure TDog.Button2Click(Sender: TObject);

begin

DogRew.ShowModal;

end;

procedure TDog.Button3Click(Sender: TObject);

begin

if Application.MessageBox(PChar('Удалить запись '

+DataModul.DogTDSDesigner2.AsString+'?'),'Подтверждение',

MB_OKCANCEL)=id_OK then

DataModul.DogT.Delete;

end;

procedure TDog.N1Click(Sender: TObject);

begin

DataModul.DogT.IndexFieldNames:='Номер';

end;

procedure TDog.N2Click(Sender: TObject);

begin

DataModul.DogT.IndexFieldNames:='Дата';

end;

procedure TDog.N3Click(Sender: TObject);

begin

DataModul.DogT.IndexFieldNames:='Сумма';

end;

end.

DogAddUnit

unit DogAddUnit;

interface

uses

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

Dialogs, DBCtrls, StdCtrls, Mask;

type

TDogAdd = class(TForm)

Label1: TLabel;

DBEdit1: TDBEdit;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

DBEdit2: TDBEdit;

DBLookupComboBox1: TDBLookupComboBox;

DBLookupComboBox2: TDBLookupComboBox;

DBEdit3: TDBEdit;

DBComboBox1: TDBComboBox;

DBComboBox2: TDBComboBox;

DBLookupComboBox3: TDBLookupComboBox;

Button2: TButton;

Button1: TButton;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure DBLookupComboBox1CloseUp(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

DogAdd: TDogAdd;

implementation

uses AvtoAddUnit, AvtoFUnit, AvtoRewUnit, DataModulUnit, DogUnit,

KlientAddUnit, KlientRewUnit, KlientUnit, MainUnit;

{$R *.dfm}

procedure TDogAdd.Button2Click(Sender: TObject);

begin

if DataModul.DogT.Modified then

DataModul.DogT.Post;

DogAdd.Close;

end;

procedure TDogAdd.Button1Click(Sender: TObject);

begin

DogAdd.Close;

end;

procedure TDogAdd.DBLookupComboBox1CloseUp(Sender: TObject);

var id, price:integer;

begin

id:=DBLookupComboBox1.KeyValue;

DataModul.AvtoT.First;

while DataModul.AvtoT.Eof <> True do

begin

if DataModul.AvtoTDSDesigner.AsInteger=id then

price:=DataModul.AvtoTDSDesigner9.AsInteger;

DataModul.AvtoT.Next;

end;

DBEdit3.Text:=InttoStr(price);

end;

end.

DogRewUnit

unit DogRewUnit;

interface

uses

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

Dialogs, StdCtrls, DBCtrls, Mask;

type

TDogRew = class(TForm)

Label1: TLabel;

DBEdit1: TDBEdit;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

DBEdit2: TDBEdit;

DBLookupComboBox1: TDBLookupComboBox;

DBLookupComboBox2: TDBLookupComboBox;

DBEdit3: TDBEdit;

DBComboBox1: TDBComboBox;

DBComboBox2: TDBComboBox;

DBLookupComboBox3: TDBLookupComboBox;

Button2: TButton;

Button1: TButton;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure DBLookupComboBox1CloseUp(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

DogRew: TDogRew;

implementation

uses AvtoAddUnit, AvtoFUnit, AvtoRewUnit, DataModulUnit, DogAddUnit,

DogUnit, KlientAddUnit, KlientRewUnit, KlientUnit, MainUnit;

{$R *.dfm}

procedure TDogRew.Button2Click(Sender: TObject);

begin

if DataModul.DogT.Modified then

DataModul.DogT.Post;

DogRew.Close;

end;

procedure TDogRew.Button1Click(Sender: TObject);

begin

DogRew.Close;

end;

procedure TDogRew.DBLookupComboBox1CloseUp(Sender: TObject);

var id, price:integer;

begin

id:=DBLookupComboBox2.KeyValue;

DataModul.AvtoT.First;

while DataModul.AvtoT.Eof <> True do

begin

if DataModul.AvtoTDSDesigner.AsInteger=id then

price:=DataModul.AvtoTDSDesigner9.AsInteger;

DataModul.AvtoT.Next;

end;

DBEdit3.Text:=InttoStr(price);

end;

end.

ManUnit

unit ManUnit;

interface

uses

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

Dialogs, StdCtrls, Grids, DBGrids;

type

TMan = class(TForm)

DBGrid1: TDBGrid;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button6: TButton;

procedure Button6Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Man: TMan;

implementation

uses AvtoAddUnit, AvtoFUnit, AvtoRewUnit, DataModulUnit, DogAddUnit,

DogRewUnit, DogUnit, KlientAddUnit, KlientRewUnit, KlientUnit, MainUnit;

{$R *.dfm}

procedure TMan.Button6Click(Sender: TObject);

begin

Man.Close;

end;

procedure TMan.Button1Click(Sender: TObject);

begin

DataModul.ManT.Insert;

end;

procedure TMan.Button3Click(Sender: TObject);

begin

if Application.MessageBox(PChar('Удалить запись '

+DataModul.ManTDSDesigner2.AsString+'?'),'Подтверждение',

MB_OKCANCEL)=id_OK then

DataModul.ManT.Delete;

end;

procedure TMan.Button2Click(Sender: TObject);

begin

DataModul.ManT.Post;

end;

end.

PoiskUnit

unit PoiskUnit;

interface

uses

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

Dialogs, Grids, DBGrids, StdCtrls;

type

TPoisk = class(TForm)

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

Edit1: TEdit;

Label1: TLabel;

Button3: TButton;

Button6: TButton;

DBGrid1: TDBGrid;

DBGrid2: TDBGrid;

DBGrid3: TDBGrid;

procedure Button3Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Button6Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Poisk: TPoisk;

implementation

uses AvtoAddUnit, AvtoFUnit, AvtoRewUnit, DataModulUnit, DogAddUnit,

DogRewUnit, DogUnit, KlientAddUnit, KlientRewUnit, KlientUnit, MainUnit,

ManUnit;

{$R *.dfm}

procedure TPoisk.Button3Click(Sender: TObject);

var filters: string;

begin

DBGrid1.Visible:=False;

DBGrid2.Visible:=False;

DBGrid3.Visible:=False;

if (length(Poisk.Edit1.Text)<>0) and (Poisk.RadioButton1.Checked) then

begin

Filters:=DataModul.DogT.Fields[1].DisplayName+'='''+Poisk.Edit1.Text+'''';

DBGrid1.Visible:=True;

DataModul.DogT.Filter:=Filters;

DataModul.DogT.Filtered:=True;

end;

if (length(Poisk.Edit1.Text)<>0) and (Poisk.RadioButton2.Checked) then

begin

Filters:=DataModul.KlientT.Fields[1].DisplayName+'>'''+Poisk.Edit1.Text+'''';

DBGrid2.Visible:=True;

DataModul.KlientT.Filter:=Filters;

DataModul.KlientT.Filtered:=True;

end;

if (length(Poisk.Edit1.Text)<>0) and (Poisk.RadioButton3.Checked) then

begin

Filters:=DataModul.AvtoT.Fields[5].DisplayName+'<'''+Poisk.Edit1.Text+'''';

DBGrid3.Visible:=True;

DataModul.AvtoT.Filter:=Filters;

DataModul.AvtoT.Filtered:=True;

end;

if filters='' then

ShowMessage('Не заданы параметры поиска');

end;

procedure TPoisk.FormClose(Sender: TObject; var Action: TCloseAction);

begin

DBGrid1.Visible:=False;

DBGrid2.Visible:=False;

DBGrid3.Visible:=False;

DataModul.DogT.Filter:='';

DataModul.DogT.Filtered:=False;

DataModul.KlientT.Filter:='';

DataModul.KlientT.Filtered:=False;

DataModul.AvtoT.Filter:='';

DataModul.AvtoT.Filtered:=False;

end;

procedure TPoisk.Button6Click(Sender: TObject);

begin

Poisk.Close;

end;

end.

AnalizUnit

unit AnalizUnit;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series;

type

TAnaliz = class(TForm)

Label1: TLabel;

Chart1: TChart;

Button1: TButton;

Series1: TLineSeries;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Analiz: TAnaliz;

implementation

uses AvtoAddUnit, AvtoFUnit, AvtoRewUnit, DataModulUnit, DogAddUnit,

DogRewUnit, DogUnit, KlientAddUnit, KlientRewUnit, KlientUnit, MainUnit,

ManUnit, PoiskUnit;

{$R *.dfm}

procedure TAnaliz.FormCreate(Sender: TObject);

var sum:array[1..12] of integer;

i:integer;

d:string;

s:real;

begin

Analiz.Chart1.Series[0].Active:=True;

Analiz.Chart1.Series[0].Clear;

for i:=1 to 12 do

sum[i]:=0;

DataModul.DogT.First;

while DataModul.DogT.Eof <> True do

begin

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='01' then

sum[1]:=sum[1]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='02' then

sum[2]:=sum[2]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='03' then

sum[3]:=sum[3]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='04' then

sum[4]:=sum[4]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='05' then

sum[5]:=sum[5]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='06' then

sum[6]:=sum[6]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='07' then

sum[7]:=sum[7]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='08' then

sum[8]:=sum[8]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='09' then

sum[9]:=sum[9]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='10' then

sum[10]:=sum[10]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='11' then

sum[11]:=sum[11]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='12' then

sum[12]:=sum[12]+DataModul.DogTDSDesigner9.AsInteger;

DataModul.DogT.Next;

end;

s:=sum[1]/1000;

Analiz.Series1.Add(s,'январь');

s:=sum[2]/1000;

Analiz.Series1.Add(s,'февраль');

s:=sum[3]/1000;

Analiz.Series1.Add(s,'март');

s:=sum[4]/1000;

Analiz.Series1.Add(s,'апрель');

s:=sum[5]/1000;

Analiz.Series1.Add(s,'май');

s:=sum[6]/1000;

Analiz.Series1.Add(s,'июнь');

s:=sum[7]/1000;

Analiz.Series1.Add(s,'июль');

s:=sum[8]/1000;

Analiz.Series1.Add(s,'август');

s:=sum[9]/1000;

Analiz.Series1.Add(s,'сентябрь');

s:=sum[10]/1000;

Analiz.Series1.Add(s,'октябрь');

s:=sum[11]/1000;

Analiz.Series1.Add(s,'ноябрь');

s:=sum[12]/1000;

Analiz.Series1.Add(s,'декабрь');

end;

procedure TAnaliz.Button1Click(Sender: TObject);

begin

Analiz.Chart1.Series[0].Active:=False;

Analiz.Close;

end;

end.

ProdaziUnit

unit ProdaziUnit;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series;

type

TProdazi = class(TForm)

Label1: TLabel;

Button1: TButton;

Chart1: TChart;

Series1: TBarSeries;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Prodazi: TProdazi;

implementation

uses AnalizUnit, AvtoAddUnit, AvtoFUnit, AvtoRewUnit, DataModulUnit,

DogAddUnit, DogRewUnit, DogUnit, KlientAddUnit, KlientRewUnit,

KlientUnit, MainUnit, ManUnit, PoiskUnit;

{$R *.dfm}

procedure TProdazi.Button1Click(Sender: TObject);

begin

Analiz.Chart1.Series[0].Active:=False;

Prodazi.Close;

end;

procedure TProdazi.FormCreate(Sender: TObject);

var p:real;

begin

Analiz.Chart1.Series[0].Active:=True;

Analiz.Chart1.Series[0].Clear;

p:=0;

DataModul.DogT.First;

while DataModul.DogT.Eof <> True do

begin

if (DataModul.DogTDSDesigner9.AsInteger>=200000) and (DataModul.DogTDSDesigner9.AsInteger<300000) then

p:=p+1;

DataModul.DogT.Next;

end;

Series1.Add(p, '200-299 тыс.руб.');

p:=0;

DataModul.DogT.First;

while DataModul.DogT.Eof <> True do

begin

if (DataModul.DogTDSDesigner9.AsInteger>=300000) and (DataModul.DogTDSDesigner9.AsInteger<400000) then

p:=p+1;

DataModul.DogT.Next;

end;

Series1.Add(p, '300-399 тыс.руб.');

p:=0;

DataModul.DogT.First;

while DataModul.DogT.Eof <> True do

begin

if (DataModul.DogTDSDesigner9.AsInteger>=400000) and (DataModul.DogTDSDesigner9.AsInteger<500000) then

p:=p+1;

DataModul.DogT.Next;

end;

Series1.Add(p, '400-499 тыс.руб.');

end;

end.

VidiUnit

unit VidiUnit;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series;

type

TVidi = class(TForm)

Label1: TLabel;

Chart1: TChart;

Button1: TButton;

Series1: TPieSeries;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Vidi: TVidi;

implementation

uses AnalizUnit, AvtoAddUnit, AvtoFUnit, AvtoRewUnit, DataModulUnit,

DogAddUnit, DogRewUnit, DogUnit, KlientAddUnit, KlientRewUnit,

KlientUnit, MainUnit, ManUnit, PoiskUnit, ProdaziUnit;

{$R *.dfm}

procedure TVidi.FormCreate(Sender: TObject);

var k,o:integer;

begin

Analiz.Chart1.Series[0].Active:=True;

Analiz.Chart1.Series[0].Clear;

k:=0;

o:=0;

DataModul.DogT.First;

while DataModul.DogT.Eof <> True do

begin

if copy (DataModul.DogTDSDesigner6.AsString,1,1)='К' then

k:=k+1;

if copy (DataModul.DogTDSDesigner6.AsString,1,1)='О' then

o:=o+1;

DataModul.DogT.Next;

end;

Series1.Add(k, 'Кредит');

Series1.Add(o, 'Оплата');

end;

procedure TVidi.Button1Click(Sender: TObject);

begin

Vidi.Close;

end;

end.

5. Визуальное представление результатов

Диаграмма «Анализ продаж» позволяет увидеть график объемов продаж в тыс. руб. по месяцам за текущий год. Экранная копия формы с диаграммой приведена на рис. 9.

Рис. 9 Диаграмма «Анализ продаж»

Диаграмма «Ценовые категории» отражает количество продаж автомобилей различных ценовых категорий. Экранная копия формы с диаграммой приведена на рис. 10.

Рис. 10 Диаграмма «Ценовые категории»

Диаграмма «Виды договоров» отражает долю договоров по кредитам и без кредита в общей доле продаж. Экранная копия формы с диаграммой приведена на рис. 11.

Рис. 11 Диаграмма «Виды договоров»

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

1. Microsoft Office Access 2003. Шаг за шагом. Официальный учебный курс. - Microsoft, 2004. - 432 с.

2. Архангельский А.Я. Приемы программирования в Delphi. - М.: ООО «Бином-Пресс», 2003 г. - 784 стр.

3. Бобровский С. И. Технологии Delphi. Разработка приложений для бизнеса. Учебный курс. - СПб.: Питер, 2006.

4. Гончаров А.Ю. Access 2003. Самоучитель с примерами. - М.: Кудиц-Образ, 2004. - 272 с.

5. Диго С.М. Создание баз данных в среде СУБД Access'2000. - М., 2001 - 139 с.

6. Золотова С.И. Практикум по Access. - М.: Финансы и статистика, 2007. - 144 с.

7. Карчевская М.П., Рамбургер О.Л., Тархов С.В.. Хамзина Е.А. Разработка приложений в среде Borland Delphi. Лабораторный практикум по дисциплине "Информатика".

8. Кошелев BE. Access 2007. - M.: ООО «Бином-Пресс», 2008 г. - 592 с.

9. Попов В. Б. Паскаль и Дельфи. Самоучитель. - СПб.: Питер, 2004.

10. Финансы, денежное обращение и кредит. Учебник./Под редакцией В. К. Сенчагова, А. И. Архипова.- М.: "Проспект", 1999. - 496 с.

11. Фленов М. Е. Библия Delphi. - СПб.: БХВ-Петербург, 2004.

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.