Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KR2.doc
Скачиваний:
1
Добавлен:
17.09.2019
Размер:
1.04 Mб
Скачать

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

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

При нажатии на элемент меню «справочники» появляется всплывающее меню, отображающее 3 базы данных: БД клиентов, БД товаров, БД типов товаров. В базах данных реализована возможность сортировки и поиска необходимых записей

При нажатии на элемент меню «прокат» появляется всплывающее меню, в котором можно выбрать 2 операции: взять вещь в прокат . и возврат вещей

Элемент меню «Информация» содержит базу данных содержащую информацию о том, какие вещи находятся в прокате на данный момент и у какого клиента.

Также, в этом же элементе меню, можно осуществить построение диаграмм, причем предусмотрена возможность смены вида диаграмм. Были использованы 3 основных типа диаграмм: круговая, столбиковая и горизонтальная столбиковая.

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

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

Unit1 –вывод главного меню

Unit2 –осуществление процедур сортировки и поиска

Unit3 –форма взятия в прокат

Unit4 –форма возврата проката

Unit5 – вывод информации по прокату

Unit6 – вывод диаграмм

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

unit Unit1;

interface

uses

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

Dialogs, DB, Grids, DBGrids, ADODB, TeEngine, Series, ExtCtrls, TeeProcs,

Chart, DbChart, DBCtrls, Menus, jpeg, StdCtrls;

type

TForm1 = class(TForm)

ADOConnection1: TADOConnection;

DataSource1: TDataSource;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

ADOQuery2: TADOQuery;

DataSource2: TDataSource;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

ADOQuery1: TADOQuery;

Image1: TImage;

Label1: TLabel;

procedure FormCreate(Sender: TObject);

procedure SetDictionary(TableName: string);

procedure MakeChart(sql:string;v:string;n:string);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N15Click(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure N17Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2, Unit3, Unit4, Unit5, Unit6;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=BD.mdb;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;';

ADOConnection1.Connected := true;

DataSource1.DataSet := ADOQuery1;

ADOQuery1.Active := true;

//ADOTable1.FieldByName('1').Visible = false;

end;

procedure TForm1.SetDictionary(TableName: string);

begin

Form2.Caption := 'Справочник - ' + TableName;

//Form1.DataSource1.DataSet := Form1.ADOTable1;

//Form1.ADOTable1.TableName := TableName;

Form1.DataSource1.DataSet := Form1.ADOQuery1;

Form2.DBGrid1.DataSource := Form1.DataSource1;

Form2.DBNavigator1.DataSource := Form1.DataSource1;

//ADOTable1.Active := true;

//ADOTable1.FieldByName('Код').Visible := false;

//-------------

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text := 'SELECT * FROM ' + TableName;

ADOQuery1.Active := true;

ADOQuery1.FieldByName('Код').Visible := false;

//ADOQuery1.Sort := 'Название';

//-------------

Form2.ShowModal;

end;

procedure TForm1.N4Click(Sender: TObject);

begin

Form2.ComboBox1.Items.Clear;

Form2.ComboBox1.Items.Add('ФИО');

Form2.ComboBox1.Items.Add('ДатаРождения');

Form2.ComboBox1.Items.Add('Паспорт');

Form2.ComboBox1.Items.Add('Затраты');

Form2.ComboBox2.Items.Clear;

Form2.ComboBox2.Items.Add('ФИО');

Form2.ComboBox2.Items.Add('ДатаРождения');

Form2.ComboBox2.Items.Add('Паспорт');

Form2.ComboBox2.Items.Add('Затраты');

SetDictionary('Клиент');

end;

procedure TForm1.N5Click(Sender: TObject);

begin

//------------

Form2.ComboBox1.Items.Clear;

Form2.ComboBox1.Items.Add('Название');

Form2.ComboBox1.Items.Add('Цена');

Form2.ComboBox1.Items.Add('Количество');

Form2.ComboBox1.Items.Add('Эксплуатация');

Form2.ComboBox2.Items.Clear;

Form2.ComboBox2.Items.Add('Название');

Form2.ComboBox2.Items.Add('Цена');

Form2.ComboBox2.Items.Add('Количество');

Form2.ComboBox2.Items.Add('Эксплуатация');

Form1.DataSource1.DataSet := Form1.ADOQuery1;

Form2.DBGrid1.DataSource := Form1.DataSource1;

Form2.DBNavigator1.DataSource := Form1.DataSource1;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT * FROM ' + 'Товар');

ADOQuery1.Active := true;

ADOQuery1.FieldByName('Код').Visible := false;

//-----------

Form1.DataSource2.DataSet := Form1.ADOQuery2;

with AdoQuery2 do

begin

Connection := AdoConnection1;

//SQL.Text := 'SELECT Name, Email FROM Authors';

SQL.Text := 'SELECT Код, Название FROM ТипТовара';

Open;

FieldByName('Код').DisplayWidth:=3;

FieldByName('Название').DisplayWidth:=7;

end;

with Form2.DBLookupComboBox1 do

begin

DataSource := DataSource1; // -> Table1 -> DBGrid1

ListSource := DataSource2;

DataField := 'Тип'; // from Table1 - displayed in the DBGrid

KeyField := 'Код';

//ListField := 'Название; Код';

ListField := 'Название';

Color := clCream;

Visible := False;

DropDownWidth := 200;

end;

Form2.ShowModal;

end;

procedure TForm1.N6Click(Sender: TObject);

begin

Form2.ComboBox1.Items.Clear;

Form2.ComboBox1.Items.Add('Название');

Form2.ComboBox2.Items.Clear;

Form2.ComboBox2.Items.Add('Название');

SetDictionary('ТипТовара');

end;

procedure TForm1.N8Click(Sender: TObject);

begin

Form3.ADOQuery1.Connection := Form1.ADOConnection1;

Form3.ShowModal;

end;

procedure TForm1.N9Click(Sender: TObject);

begin

Form4.ADOQuery1.Connection := Form1.ADOConnection1;

Form4.ShowModal;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.N10Click(Sender: TObject);

begin

Form5.ADOQuery1.Connection := Form1.ADOConnection1;

// Form5.ADOQuery1.SQL.Text := 'SELECT Товар.Название, Клиент.ФИО,Прокат.Длительность

Form5.ADOQuery1.Active := true;

Form5.ShowModal;

end;

procedure TForm1.MakeChart(sql:string;v:string;n:string);

var i: integer;

value: double;

name: string;

begin

Form6.Series1.Clear;

Form6.Series2.Clear;

Form6.Series3.Clear;

Form6.ADOQuery1.Connection := Form1.ADOConnection1;

Form6.ADOQuery1.SQL.Text := sql;

Form6.ADOQuery1.Active := true;

for i:=1 to Form6.ADOQuery1.RecordCount do

begin

name := Form6.ADOQuery1.FieldByName(n).AsString;

value := Form6.ADOQuery1.FieldByName(v).AsFloat;

Form6.Series1.Add(value,name);

Form6.Series2.Add(value,name);

Form6.Series3.Add(value,name);

//Form6.Chart1.SeriesList.Series[0].Add(value,name);

//Form6.Chart1.SeriesList.Series[1].Add(value,name);

//Form6.Chart1.SeriesList.Series[2].Add(value,name);

Form6.ADOQuery1.Next;

end;

//Form6.Chart1.SeriesList.Series[0].Add(8,'Aidar');

Form6.ADOQuery1.Active := false;

// Chart1.SeriesList.Series[0].Add(5,'муму');

Form6.ShowModal;

end;

procedure TForm1.N13Click(Sender: TObject);

begin

MakeChart('SELECT Товар.Название, Товар.Эксплуатация FROM Товар','Эксплуатация','Название');

Form6.Chart1.Title.Text.Clear;

Form6.Chart1.Title.Text.Add('Популярность товаров');

end;

procedure TForm1.N15Click(Sender: TObject);

begin

MakeChart('SELECT Товар.Название, Товар.Количество FROM Товар','Количество','Название');

Form6.Chart1.Title.Text.Clear;

Form6.Chart1.Title.Text.Add('Перечень товаров');

end;

procedure TForm1.N16Click(Sender: TObject);

begin

MakeChart('SELECT ТипТовара.Название,tt.Сумма FROM ( SELECT Товар.Тип, Sum(Товар.Количество) AS Сумма FROM Товар GROUP BY Товар.Тип ) tt, ТипТовара WHERE ТипТовара.Код = tt.тип','Сумма','Название');

Form6.Chart1.Title.Text.Clear;

Form6.Chart1.Title.Text.Add('Перечень видов товаров');

end;

procedure TForm1.N17Click(Sender: TObject);

begin

MakeChart('SELECT Клиент.ФИО, Клиент.Затраты FROM Клиент','Затраты','ФИО');

end;

end.

unit Unit2;

interface

uses

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

Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls,db, ADODB;

type

TForm2 = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

DBLookupComboBox1: TDBLookupComboBox;

ComboBox1: TComboBox;

Label1: TLabel;

Label2: TLabel;

ComboBox2: TComboBox;

Edit1: TEdit;

Button1: TButton;

Button2: TButton;

ADOQuery1: TADOQuery;

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

procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumn; State: TGridDrawState);

procedure DBGrid1ColExit(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

procedure ComboBox2Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormShow(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

map: array[1..1000] of string;

sql: string;

ok: boolean;

implementation

uses Unit1;

{$R *.dfm}

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

begin

Form1.DataSource1.DataSet.Active := false;

Form1.ADOQuery2.Active := false;

DBLookupComboBox1.DataField := '';

DBLookupComboBox1.DataField := '';

DBLookupComboBox1.KeyField := '';

DBLookupComboBox1.ListField := '';

DBLookupComboBox1.Visible := False;

Edit1.Hide;

Button1.Hide;

Button2.Hide;

if ok = false then Form1.ADOQuery1.SQL.Text := sql;

end;

procedure TForm2.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumn; State: TGridDrawState);

begin

if(gdFocused in State) then

begin

if (Column.Field.FieldName = DBLookupComboBox1.DataField) then

with DBLookupComboBox1 do begin

Left := Rect.Left + DBGrid1.Left + 2;

Top := Rect.Top + DBGrid1.Top + 2;

Width := Rect.Right - Rect.Left;

Height := Rect.Bottom - Rect.Top;

Visible := True;

end

end;

end;

procedure TForm2.DBGrid1ColExit(Sender: TObject);

begin

if DBGrid1.SelectedField.FieldName = DBLookupComboBox1.DataField then DBLookupComboBox1.Visible := False;

end;

procedure TForm2.ComboBox1Change(Sender: TObject);

begin

Form1.ADOQuery1.Sort := ComboBox1.Items[ComboBox1.ItemIndex];

end;

procedure TForm2.ComboBox2Change(Sender: TObject);

begin

Edit1.Show;

Button1.Show;

Button2.Show;

end;

procedure TForm2.Button1Click(Sender: TObject);

var nn: integer;

s: string;

begin

if ok = true then sql := Form1.ADOQuery1.SQL.Text;

ok := false;

Form1.ADOQuery1.SQL.Text := sql;

s := copy(Form1.ADOQuery1.SQL.Text,0,length(Form1.ADOQuery1.SQL.Text) - 1);

Form1.ADOQuery1.SQL.Text := Form1.ADOQuery1.SQL.Text + ' WHERE ' + ComboBox2.Items[ComboBox2.ItemIndex] + ' LIKE "%' + edit1.Text +'%"';

//Form1.ADOQuery1.SQL.Text := copy(Form1.ADOQuery1.SQL.Text,0,length(Form1.ADOQuery1.SQL.Text) - 2) +' WHERE ' + ComboBox2.Text + ' LIKE "*'+ Edit1.Text + '*"';

//Form1.ADOQuery1.SQL.Text := 'SELECT * FROM ТипТовара WHERE Название LIKE "%Л%"';

Form1.ADOQuery1.Active := true;

Form1.ADOQuery1.FieldByName('Код').Visible := false;

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

Form1.ADOQuery1.SQL.Text := sql;

Form1.ADOQuery1.Active := true;

Form1.ADOQuery1.FieldByName('Код').Visible := false;

ok := true;

end;

procedure TForm2.FormShow(Sender: TObject);

begin

ok := true;

end;

end.

unit Unit3;

interface

uses

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

Dialogs, StdCtrls, DB, ADODB, ComCtrls;

type

TForm3 = class(TForm)

ComboBox1: TComboBox;

Label1: TLabel;

ComboBox2: TComboBox;

Label2: TLabel;

Button1: TButton;

ADOQuery1: TADOQuery;

Label3: TLabel;

ComboBox3: TComboBox;

UpDown1: TUpDown;

Edit1: TEdit;

Label4: TLabel;

procedure LoadTypes;

procedure LoadItems;

procedure LoadClients;

procedure MakeOrder;

procedure FormShow(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

procedure ComboBox2Change(Sender: TObject);

procedure ComboBox3Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

ItemTypes: array[1..1000] of string;

LoadedItems: array[1..1000] of string;

Clients: array[1..1000] of string;

SelectedIdx: string;

SelectedClient: string;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm3.LoadTypes;

var i: integer;

begin

ComboBox1.Items.Clear;

ComboBox1.Text := '';

ADOQuery1.SQL.Text := 'SELECT * FROM ТипТовара';

ADOQuery1.Active := true;

for i:=1 to ADOQuery1.RecordCount do

begin

ComboBox1.Items.Add(ADOQuery1.FieldByName('Название').Value);

ItemTypes[i] := ADOQuery1.FieldByName('Код').AsString;

ADOQuery1.Next;

end;

ADOQuery1.Active := false;

end;

procedure TForm3.LoadItems;

var i: integer;

begin

ComboBox2.Items.Clear;

ComboBox2.Text := '';

Button1.Enabled := false;

ADOQuery1.SQL.Text := 'SELECT * FROM Товар WHERE Товар.Тип = ' + ItemTypes[ComboBox1.ItemIndex + 1] + ' AND Товар.Количество > 0';

ADOQuery1.Active := true;

for i:=1 to ADOQuery1.RecordCount do

begin

ComboBox2.Items.Add(ADOQuery1.FieldByName('Название').Value);

LoadedItems[i] := ADOQuery1.FieldByName('Код').AsString;

ADOQuery1.Next;

end;

ADOQuery1.Active := false;

end;

procedure TForm3.LoadClients;

var i: integer;

begin

ComboBox3.Items.Clear;

ComboBox3.Text := '';

Button1.Enabled := false;

ADOQuery1.SQL.Text := 'SELECT * FROM Клиент';

ADOQuery1.Active := true;

for i:=1 to ADOQuery1.RecordCount do

begin

ComboBox3.Items.Add(ADOQuery1.FieldByName('ФИО').Value);

Clients[i] := ADOQuery1.FieldByName('Код').AsString;

ADOQuery1.Next;

end;

ADOQuery1.Active := false;

end;

procedure TForm3.MakeOrder;

begin

ADOQuery1.SQL.Text := 'INSERT INTO Прокат (КодТовара, КодКлиента, Длительность) VALUES (' + SelectedIdx + ',' + SelectedClient + ',' + edit1.Text + ')';

//ADOQuery1.Active := true;

ADOQuery1.ExecSQL;

ADOQuery1.SQL.Text := 'UPDATE Товар SET Товар.Количество = Товар.Количество-1 WHERE Код = ' + SelectedIdx;

ADOQuery1.ExecSQL;

ShowMessage('Операция успешно завершена');

Close;

end;

procedure TForm3.FormShow(Sender: TObject);

begin

ComboBox1.Items.Clear;

ComboBox2.Items.Clear;

Button1.Enabled := false;

ComboBox1.Text := '';

ComboBox2.Text := '';

LoadTypes;

LoadClients;

end;

procedure TForm3.ComboBox1Change(Sender: TObject);

begin

if ComboBox1.Items.Count <> 0 then

begin

LoadItems;

end;

end;

procedure TForm3.ComboBox2Change(Sender: TObject);

begin

if ComboBox2.ItemIndex <> -1 then

begin

if ComboBox3.ItemIndex <> -1 then

button1.Enabled := true;

SelectedIdx := LoadedItems[ComboBox2.ItemIndex + 1];

end;

end;

procedure TForm3.ComboBox3Change(Sender: TObject);

begin

if ComboBox3.ItemIndex <> -1 then

begin

if ComboBox2.ItemIndex <> -1 then

button1.Enabled := true;

SelectedClient := Clients[ComboBox3.ItemIndex + 1];

end;

end;

procedure TForm3.Button1Click(Sender: TObject);

begin

MakeOrder;

end;

end.

unit Unit4;

interface

uses

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

Dialogs, StdCtrls, DB, ADODB;

type

TForm4 = class(TForm)

Label3: TLabel;

ComboBox3: TComboBox;

Label2: TLabel;

ComboBox2: TComboBox;

Button1: TButton;

Label4: TLabel;

ComboBox1: TComboBox;

ADOQuery1: TADOQuery;

procedure LoadClients;

procedure LoadItems;

procedure LoadLength;

procedure MakeOrder;

procedure FormShow(Sender: TObject);

procedure ComboBox3Change(Sender: TObject);

procedure ComboBox2Change(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

Clients: array[1..1000] of string;

SelectedClient: string;

SelectedIdx: string;

LoadedItems: array[1..1000] of string;

ConcreteItem: array[1..1000] of string;

SelectedItem: string;

implementation

{$R *.dfm}

procedure TForm4.LoadClients;

var i: integer;

begin

ComboBox3.Items.Clear;

ComboBox3.Text := '';

Button1.Enabled := false;

ADOQuery1.SQL.Text := 'SELECT * FROM Клиент';

ADOQuery1.Active := true;

for i:=1 to ADOQuery1.RecordCount do

begin

ComboBox3.Items.Add(ADOQuery1.FieldByName('ФИО').Value);

Clients[i] := ADOQuery1.FieldByName('Код').AsString;

ADOQuery1.Next;

end;

ADOQuery1.Active := false;

end;

procedure TForm4.LoadItems;

var i: integer;

begin

ComboBox2.Items.Clear;

ComboBox2.Text := '';

Button1.Enabled := false;

ADOQuery1.SQL.Text := 'SELECT Товар.Код, Товар.Название FROM Товар, Прокат WHERE Товар.Код = Прокат.КодТовара' + ' AND Прокат.КодКлиента =' + SelectedClient;

ADOQuery1.Active := true;

for i:=1 to ADOQuery1.RecordCount do

begin

ComboBox2.Items.Add(ADOQuery1.FieldByName('Название').Value);

LoadedItems[i] := ADOQuery1.FieldByName('Код').AsString;

ADOQuery1.Next;

end;

ADOQuery1.Active := false;

end;

procedure TForm4.LoadLength;

var i: integer;

begin

ComboBox1.Items.Clear;

ComboBox1.Text := '';

Button1.Enabled := false;

ADOQuery1.SQL.Text := 'SELECT Прокат.Код, Прокат.Длительность FROM Прокат WHERE Прокат.КодТовара = ' + SelectedIdx + ' AND Прокат.КодКлиента =' + SelectedClient;

ADOQuery1.Active := true;

for i:=1 to ADOQuery1.RecordCount do

begin

ComboBox1.Items.Add(ADOQuery1.FieldByName('Длительность').Value);

ConcreteItem[i] := ADOQuery1.FieldByName('Код').AsString;

ADOQuery1.Next;

end;

ADOQuery1.Active := false;

end;

procedure TForm4.MakeOrder;

var bill: string;

i: integer;

begin

ADOQuery1.SQL.Text := 'SELECT (Прокат.Длительность*Товар.Цена) as Стоимость FROM Прокат, Товар WHERE Прокат.Код = ' + SelectedItem + ' AND Товар.Код = Прокат.КодТовара';

ADOQuery1.Active := true;

for i:=1 to ADOQuery1.RecordCount do

begin

bill := (ADOQuery1.FieldByName('Стоимость').Value);

ADOQuery1.Next;

end;

//ADOQuery1.SQL.Text := 'INSERT INTO Прокат (КодТовара, КодКлиента, Длительность) VALUES (' + SelectedIdx + ',' + SelectedClient + ',' + edit1.Text + ')';

ADOQuery1.SQL.Text:= 'DELETE * FROM Прокат WHERE Прокат.Код =' + SelectedItem;

//ADOQuery1.Active := true;

ADOQuery1.ExecSQL;

ADOQuery1.SQL.Text := 'UPDATE Товар SET Товар.Количество = Товар.Количество+1 WHERE Код = ' + SelectedIdx;

ADOQuery1.ExecSQL;

ADOQuery1.SQL.Text := 'UPDATE Товар SET Товар.Эксплуатация = Товар.Эксплуатация + ' + ComboBox1.Text + ' WHERE Код = ' + SelectedIdx;

ADOQuery1.ExecSQL;

//ADOQuery1.Active := false;

ADOQuery1.SQL.Text := 'UPDATE Клиент SET Клиент.Затраты = Клиент.Затраты + ' + bill + ' WHERE Клиент.Код = ' + SelectedClient;

ADOQuery1.ExecSQL;

ShowMessage('Операция успешно завершена');

Close;

end;

procedure TForm4.FormShow(Sender: TObject);

begin

ComboBox1.Items.Clear;

ComboBox2.Items.Clear;

ComboBox3.Items.Clear;

Button1.Enabled := false;

ComboBox1.Text := '';

ComboBox2.Text := '';

ComboBox3.Text := '';

LoadClients;

end;

procedure TForm4.ComboBox3Change(Sender: TObject);

begin

if ComboBox3.ItemIndex <> -1 then

begin

SelectedClient := Clients[ComboBox3.ItemIndex + 1];

LoadItems;

end;

end;

procedure TForm4.ComboBox2Change(Sender: TObject);

begin

if ComboBox2.ItemIndex <> -1 then

begin

SelectedIdx := LoadedItems[ComboBox2.ItemIndex + 1];

LoadLength;

end;

end;

procedure TForm4.ComboBox1Change(Sender: TObject);

begin

if ComboBox1.ItemIndex <> -1 then

begin

if ComboBox3.ItemIndex <> -1 then

if ComboBox2.ItemIndex <> -1 then

button1.Enabled := true;

SelectedItem := ConcreteItem[ComboBox1.ItemIndex + 1];

end;

end;

procedure TForm4.Button1Click(Sender: TObject);

begin

MakeOrder;

end;

end.

unit Unit5;

interface

uses

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

Dialogs, DB, ADODB, Grids, DBGrids;

type

TForm5 = class(TForm)

DBGrid1: TDBGrid;

ADOQuery1: TADOQuery;

DataSource1: TDataSource;

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

{$R *.dfm}

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

begin

ADOQuery1.Active := false;

end;

end.

unit Unit6;

interface

uses

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

Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, DB, ADODB, StdCtrls,

Menus;

type

TForm6 = class(TForm)

Chart1: TChart;

Series1: TPieSeries;

ADOQuery1: TADOQuery;

Series2: TBarSeries;

Series3: THorizBarSeries;

PopupMenu1: TPopupMenu;

Pie1: TMenuItem;

Bar1: TMenuItem;

HorizontalBar1: TMenuItem;

Chart2: TChart;

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

procedure Pie1Click(Sender: TObject);

procedure Bar1Click(Sender: TObject);

procedure HorizontalBar1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

{$R *.dfm}

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

begin

ADOQuery1.Active := false;

end;

procedure TForm6.Pie1Click(Sender: TObject);

begin

Series1.ParentChart := Chart1;

Series2.ParentChart := Chart2;

Series3.ParentChart := Chart2;

end;

procedure TForm6.Bar1Click(Sender: TObject);

begin

Series1.ParentChart := Chart2;

Series2.ParentChart := Chart1;

Series3.ParentChart := Chart2;

end;

procedure TForm6.HorizontalBar1Click(Sender: TObject);

begin

Series1.ParentChart := Chart2;

Series2.ParentChart := Chart2;

Series3.ParentChart := Chart1;

end;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]