Ребят не понятен. как бд подключать и т.п.
unit Unit1;
{главная форма}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, Grids, DBGrids, CheckLst, ExtCtrls, Buttons,
DBCtrls, ComCtrls, XPMan, Menus, ToolWin;
type
TForm1 = class(TForm)
ComboBox1: TComboBox;
Label1: TLabel;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
ListBox1: TListBox;
ADOQuery2Country: TIntegerField;
ADOQuery1NameC: TWideStringField;
ADOQuery2NameHR: TWideStringField;
ADOQuery1IDC: TAutoIncField;
ADOQuery2IDHR: TAutoIncField;
CheckListBox1: TCheckListBox;
ADOQuery3: TADOQuery;
ADOQuery3HCountry: TIntegerField;
ADOQuery3NameH: TWideStringField;
ADOQuery3HR: TIntegerField;
ADOQuery3Category: TIntegerField;
ADOQuery3IDH: TAutoIncField;
RadioGroup1: TRadioGroup;
ADOQuery1Language: TWideStringField;
ADOQuery1Religion: TWideStringField;
ADOQuery1Currency: TWideStringField;
ADOQuery1Capital: TWideStringField;
ADOQuery1Time: TWideStringField;
ADOQuery4: TADOQuery;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label6: TLabel;
DateTimePicker2: TDateTimePicker;
DateTimePicker1: TDateTimePicker;
Button1: TButton;
ComboBox4: TComboBox;
Label5: TLabel;
ADOQuery5: TADOQuery;
ADOQuery6: TADOQuery;
RadioGroup2: TRadioGroup;
ADOQuery6IDF: TAutoIncField;
ADOQuery4IDT: TAutoIncField;
ADOQuery4DATE: TDateTimeField;
ADOQuery4DayCount: TIntegerField;
ADOQuery4Hotel: TIntegerField;
ADOQuery4Number: TIntegerField;
ADOQuery4TypeFood: TIntegerField;
ADOQuery4Price: TIntegerField;
ADOQuery6TypeF: TWideStringField;
ADOQuery6Comment: TWideStringField;
ADOQuery5IDN: TAutoIncField;
ADOQuery5Type: TWideStringField;
ADOQuery5AdultCount: TIntegerField;
ADOQuery5ChildCount: TIntegerField;
CheckBox1: TCheckBox;
BitBtn1: TBitBtn;
Label7: TLabel;
Label8: TLabel;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
Memo1: TMemo;
procedure ComboBox1Change(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure DateTimePicker2CloseUp(Sender: TObject);
procedure DateTimePicker1CloseUp(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure ComboBox3Change(Sender: TObject);
procedure RadioGroup2Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure CheckListBox1DblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit3, Unit4, Unit5, Unit6;
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
var i:integer;
begin
RadioGroup2.Enabled:=false;
checkbox1.Enabled:=false;
button1.Enabled:=false;
BitBtn1.Enabled:=false;
radiogroup1.Enabled:=false;
memo1.Lines.loadfromfile('config.txt');
{загрузка настроек}
case strtoint(memo1.Lines[0]) of
1: begin
form1.color:=clBtnFace;
form3.color:=clBtnFace;
form4.color:=clBtnFace;
end;
2: begin
form1.color:=clSkyBlue;
form3.color:=clSkyBlue;
form4.color:=clSkyBlue;
end;
3: begin
form1.color:=clMoneyGreen;
form3.color:=clMoneyGreen;
form4.color:=clMoneyGreen;
end;
end;
with adoquery1 do
begin
close;
open;
first;
while not eof do
{заполнение ComboBox странами}
begin
combobox1.Items.add(adoquery1NameC.asstring);
next;
end;
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
form3.caption:=combobox1.Text;
form3.showmodal;
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
var i:integer;
begin
{проверка выбора всех отелей}
if checkbox1.Checked=true then
for i := 0 to checklistbox1.items.count - 1 do
begin
checklistbox1.Checked[i]:=true;
end
else
for i := 0 to checklistbox1.items.count - 1 do
begin
checklistbox1.Checked[i]:=false;
end
end;
procedure TForm1.CheckListBox1DblClick(Sender: TObject);
begin
if checklistbox1.checked[checklistbox1.itemindex]=false then checklistbox1.checked[checklistbox1.itemindex]:=true;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
RadioGroup2.Enabled:=true;
checkbox1.Checked:=false;
bitbtn1.Enabled:=true;
radiogroup1.Enabled:=true;
radiogroup1.ItemIndex:=0;
listbox1.items.Clear;
listbox1.Items[0]:='--все--';
listbox1.Itemindex:=0;
checkListbox1.clear;
with adoquery1 do
{выборка по стране в соответствии со значением Combobox1}
begin
close;
sql.Text:='select * from country where NameC=:ss';
Parameters[0].Value:=combobox1.text;
open;
end;
with adoquery2 do
{отбор курортов соответсвующей страны}
begin
close;
sql.Text:='select * from Resorts where Country=:bb';
Parameters[0].Value:=ADoquery1['IDC'];
open;
first;
while not eof do
{заполнение ListBox Курорты}
begin
Listbox1.Items.add(adoquery2NameHR.asstring);
next;
end;
end;
with adoquery3 do
{ВЫбор отелей по стране}
begin
close;
sql.Text:='select * from Hotel where Hcountry=:r order by category';
Parameters[0].Value:=ADoquery1['IDC'];
open;
first;
while not eof do
begin
checkListbox1.Items.add(adoquery3NameH.asstring);
next;
end;
end;
if CHECKLISTBOX1.Items[0]<>'' then
begin
checkbox1.Enabled:=true;
button1.Enabled:=true;
end;
end;
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
if combobox2.Text='3' then combobox3.Text:='0';
with adoquery5 do
{выборка типа номера в соотв. с кол-м взрослых и детей}
{при изменении кол-ва взрослых}
begin
close;
sql.Text:='select * from Numbers where AdultCount=:r and ChildCount=:j';
Parameters[0].Value:=strtoint(combobox2.text);
Parameters[1].Value:=strtoint(combobox3.text);
open;
end;
end;
procedure TForm1.ComboBox3Change(Sender: TObject);
begin
with adoquery5 do
{выборка типа номера в соотв. с кол-м взрослых и детей}
{при изменении кол-ва детей}
begin
close;
sql.Text:='select * from Numbers where ChildCount=:r and AdultCount=:j';
Parameters[0].Value:=strtoint(combobox3.text);
Parameters[1].Value:=strtoint(combobox2.text);
open;
end;
end;
procedure TForm1.DateTimePicker2CloseUp(Sender: TObject);
begin
{проверка корректности ввода дат}
if datetimepicker2.Date<datetimepicker1.Date then
begin
datetimepicker2.date:=datetimepicker1.Date;
end;
end;
procedure TForm1.DateTimePicker1CloseUp(Sender: TObject);
begin
datetimepicker2.date:=datetimepicker1.Date;
end;
procedure TForm1.ListBox1Click(Sender: TObject);
begin
checkbox1.Checked:=false;
radiogroup1.ItemIndex:=-1;
if listbox1.Items[listbox1.ItemIndex]<>'--все--' then
begin
with adoquery2 do
{отбор курортов по выбранному}
begin
close;
sql.Text:='select * from resorts where NameHR=:ff';
Parameters[0].Value:=listbox1.Items[listbox1.itemindex];
open;
end;
checkListbox1.clear;
with adoquery3 do
{ отбор отелей по курорту}
begin
close;
sql.Text:='select * from Hotel where HR=:ee order by category';
Parameters[0].Value:=ADoquery2['IDHR'];
open;
first;
while not eof do
begin
checkListbox1.Items.add(adoquery3NameH.asstring);
next;
end;
end;
end
else
begin
with adoquery2 do
{отбор курортов по выбранному}
begin
close;
sql.Text:='select * from resorts';
open;
end;
checkListbox1.clear;
with adoquery3 do
{ отбор отелей по стране}
begin
close;
sql.Text:='select * from Hotel where HCountry=
p order by category';
Parameters[0].Value:=ADoquery1['IDC'];
open;
first;
while not eof do
begin
checkListbox1.Items.add(adoquery3NameH.asstring);
next;
end;
end;
end;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
form6.showmodal;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
application.Terminate;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
form5.showmodal;
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
checkListbox1.clear;
checkbox1.Checked:=false;
with adoquery3 do
{выбор отеля по категории}
begin
close;
if (listbox1.ItemIndex=0) or (listbox1.ItemIndex=-1) then
begin
if radiogroup1.ItemIndex=0 then
begin
sql.Text:='select * from Hotel where hcountry=:ww';
parameters[0].value:=adoquery1['IDC'];
end
else
begin
sql.Text:='select * from Hotel where category=:qq and hcountry=:ww order by nameH';
Parameters[0].Value:=Radiogroup1.ItemIndex+1;
parameters[1].value:=adoquery1['IDC'];
end
end
else
begin
if radiogroup1.ItemIndex=0 then
begin
sql.Text:='select * from Hotel where HR=:yy' ;
parameters[0].value:=adoquery2['IDHR'];
end
else
begin
sql.Text:='select * from Hotel where category=:tt and HR=:yy' ;
Parameters[0].Value:=Radiogroup1.ItemIndex+1;
parameters[1].value:=adoquery2['IDHR'];
end;
end;
open;
first;
while not eof do
begin
checkListbox1.Items.add(adoquery3NameH.asstring);
next;
end;
end;
end;
procedure TForm1.RadioGroup2Click(Sender: TObject);
begin
if radiogroup2.ItemIndex=0 then
with adoquery6 do
begin
close;
sql.Text:='select * from Food';
open;
end
else
with adoquery6 do
begin
close;
sql.Text:='select * from Food where IDF=:ee';
Parameters[0].Value:=Radiogroup2.ItemIndex;
open;
end
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,j,k:integer;
begin
for j:=0 to 6 do
{очистка полей таблицы}
begin
form4.StringGrid1.Cells[j,1]:='';
end;
k:=1;
form4.StringGrid1.Height:=100;
form4.stringgrid1.RowCount:=2;
for i := 0 to checklistbox1.items.count - 1 do
if checklistbox1.Checked[i] then
begin
with adoquery3 do
begin
close;
sql.Text:='select * from Hotel where NameH=:rr';
Parameters[0].Value:=checklistbox1.items[i];
open;
end;
with adoquery2 do
begin
close;
sql.Text:='select * from Resorts where IDHR=:mm';
Parameters[0].Value:=adoquery3['HR'];
open;
end;
if radiogroup2.ItemIndex<>0 then
with adoquery4 do
{формирование конечного запроса}
begin
close;
sql.Text:='select * from tour where DayCount=:dc and DATE>=(:xx) and Date<=(:yy)'+ 'and Number=:qq and TypeFood=:zz and hotel=:dd';
Parameters[0].Value:=combobox4.Text;
Parameters[1].Value:=datetimepicker1.DateTime;
Parameters[2].Value:=datetimepicker2.datetime;
Parameters[3].Value:=adoquery5['IDN'];
Parameters[4].Value:=adoquery6['IDF'];
Parameters[5].value:=adoquery3['idh'];
open;
first;
end
else
with adoquery4 do
begin
close;
sql.Text:='select * from tour where DayCount=:dc and DATE>=(:xx) and Date<=(:yy)'+
'and Number=:qq and hotel=:dd';
Parameters[0].Value:=combobox4.Text;
Parameters[1].Value:=datetimepicker1.DateTime;
Parameters[2].Value:=datetimepicker2.datetime;
Parameters[3].Value:=adoquery5['IDN'];
parameters[4].value:=adoquery3['idh'];
open;
first;
end;
with adoquery4 do
while not eof do
begin
if adoquery4['IDT']<>null then
begin
form4.StringGrid1.Cells[0,k]:=adoquery3['NameH'];
if adoquery2['NameHr']<>null then form4.StringGrid1.Cells[1,k]:=adoquery2['NameHR'];
form4.StringGrid1.Cells[2,k]:=adoquery4['Date'];
form4.StringGrid1.Cells[3,k]:=adoquery4['daycount'];
form4.StringGrid1.Cells[4,k]:=adoquery5['Type'];
if adoquery4['typefood']='1' then form4.StringGrid1.Cells[5,k]:='HB';
if adoquery4['typefood']='2' then form4.StringGrid1.Cells[5,k]:='FB';
if adoquery4['typefood']='3' then form4.StringGrid1.Cells[5,k]:='All';
form4.StringGrid1.Cells[6,k]:=adoquery4['Price'];
k:=k+1;
form4.stringgrid1.RowCount:=form4.stringgrid1.RowCount+1;
if form4.StringGrid1.Height+15<450 then form4.StringGrid1.Height:=form4.StringGrid1.Height+14;
end;
next;
end;
end;
for j:=0 to 6 do
begin
form4.StringGrid1.Cells[j,k]:='';
end;
form4.showmodal;
end;
end.