- •Содержание
- •Постановка задачи
- •2. Описание предметной области
- •3. Проектирование интерфейса
- •3.1 Выбор и назначение визуальных компонентов
- •3.2 Формы проекта
- •4. Разработка программного обеспечения
- •4.1 Модули, процедуры и функции проекта
- •4.2 Листинг программного кода
- •5.Визуальное представление результатов
- •6. Список использованной литературы
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.