logo
Разработка автоматизированной информационной системы кинотеатра

Список литературы

1. Архангельский А.Я. Программирование в Delphi г. Москва: издательство «Бином», 2005 г. - 332 с.;

2. Ахметов А. Р. Программирование в Delphi 7. г.Москва: издательство «Бином-Пресс», 2003 г. - 780 с.;

3. Бобровский С.И. Delphi7 - Учебный курс. г. Санкт-Петербург: издательство «Питер», 2004 г. - 736 с.;

4. Глушаков С. В. Delphi 2007 г. Москва: издательство «Хранитель», 2008 г. - 635 с.;

5. http://ru.wikipedia.org

6. http://gosotvet.ru

7. http://habrahabr.ru

Приложения

Приложение 1

Листинг программных модулей

{1}unit Unit1;

{2}interface

{3}uses

{4} Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

{5} Dialogs, StdCtrls, ExtCtrls;

{6}type

{7} TForm1 = class(TForm)

{8} cbb1: TComboBox;

{9} lbledt1: TLabeledEdit;

{10} btn1: TButton;

{11} procedure btn1Click(Sender: TObject);

{12} private

{13} { Private declarations }

{14} public

{15}{ Public declarations }

{16} end;

{17}var

{18} Form1: TForm1;

{19}implementation

{20}uses Unit3, Unit5, Unit2;

{21}{$R *.dfm}

{22}procedure TForm1.btn1Click(Sender: TObject);

{23}var v:string;

{24}begin

{25}with DataModule2 do

{1} begin

{1} with qry1 do

{1} begin

{1} SQL.Text:=SELECT *;

{1} SQL.Add(FROM Сотрудники);

{1} SQL.Add(WHERE ((Должность="+cbb1.Text+" AND {1} (Пароль="+lbledt1.Text+"))););

{1} Open;

{1} v:=Fields[1].AsString+ +Fields[2].AsString+ +Fields[3].AsString;

{1} if Fields[0].AsString= then

{1} begin

{1} Application.MessageBox(Пароля, логиня ввадиль, кнопка жаль, а оно бежельме {1}ашельме и не пустиля,Ашипхе насяльника.,0);

{1} Application.MessageBox(Ашипке насяльника...,Ашипке...,0);

{1} lbledt1.Text:=;

{1} lbledt1.SetFocus;

{1} end

{1} else

{1} begin

{1} if Fields[10].AsString=Оператор then

{1} begin

{1} Form3.Caption:=v;

{1} Form3.Show;

{1} end

{1} else

{1} if Fields[10].AsString=Администратор then

{1} begin

{1} Form5.Caption:=v;

{1} Form5.Show;

{1} end

{1} end;

{1} end;

{1} end;

{1}end;

{1}end.

{1}unit Unit2;

{1}interface

{1}uses

{1} SysUtils, Classes, DB, ADODB;

{1}type

{1} TDataModule2 = class(TDataModule)

{1} con1: TADOConnection;

{1}qry1: TADOQuery;

{1} private

{1}{ Private declarations }

{1} public

{1} { Public declarations }

{1} end;

{1}var

{1} DataModule2: TDataModule2;

{1}implementation

{1}{$R *.dfm}

{1}end.

{1}unit Unit3;

{1}interface

{1}uses

{1} Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

{1} Dialogs, StdCtrls, ExtCtrls, Grids;

{1}type

{1} TForm3 = class(TForm)

{1} rg1: TRadioGroup;

{1} rg2: TRadioGroup;

{1} lbledt1: TLabeledEdit;

{1} btn1: TButton;

{1} grp1: TGroupBox;

{1} cbb1: TComboBox;

{1} grp2: TGroupBox;

{1} strngrd1: TStringGrid;

{1} grp3: TGroupBox;

{1} cbb2: TComboBox;

{1} lst1: TListBox;

{1} lst2: TListBox;

{1} lst3: TListBox;

{1} procedure massiv;

{1} procedure FormActivate(Sender: TObject);

{1} procedure FormClose(Sender: TObject; var Action: TCloseAction);

{1}procedure cbb1Change(Sender: TObject);

{1} procedure rg1Click(Sender: TObject);

{1} procedure strngrd1SelectCell(Sender: TObject; ACol, ARow: Integer;

{1} var CanSelect: Boolean);

{1} procedure btn1Click(Sender: TObject);

{1} procedure cbb2Change(Sender: TObject);

{1} procedure rg2Click(Sender: TObject);

{1} private

{1} { Private declarations }

{1} public

{1} { Public declarations }

{1} end;

{1}var

{1} Form3: TForm3;

{1} stb,str:Byte;

{1}implementation

{1}uses Unit2, Unit1, Unit4;

{1}{$R *.dfm}

{1}procedure TForm3.FormActivate(Sender: TObject);

{1}var i:Byte;

{1}begin

{1} rg2.Items.Clear;

{1} with DataModule2 do

{1} begin

{1} with qry1 do

{1} begin

{1} Close;

{1} SQL.Text:=SELECT DISTINCT [Наименование зала], [Ряды];

{1} SQL.Add(FROM [Залы]);

{1} Open;

{1} for i:=0 to RecordCount-1 do

{1} begin

{1} rg2.Items.Add(Fields.Fields[0].Value);

{1} lst3.Items.Add(Fields.Fields[1].Value);

{1} RecNo:=RecNo+1;

{1} end;

{1} rg2.ItemIndex:=0;

{1} rg2Click(Sender);

{1} Close;

{1} SQL.Text:=SELECT DISTINCT [Наименование];

{1} SQL.Add(FROM [Ассортимент]);

{1} Open;

{1} for i:=0 to RecordCount-1 do

{1} begin

{1} cbb1.Items.Add(Fields.Fields[0].Value);

{1} RecNo:=RecNo+1;

{1} end;

{1}Close;

{1}end;

{1} end;

{1}end;

{1}procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);

{1}begin

{1} Form1.Close;

{1}end;

{1}procedure TForm3.cbb1Change(Sender: TObject);

{1}var z:TDateTime;

{1} s:string;

{1} i:Byte;

{1}begin

{1} z:=Now;

{1} DateTimeToString(s,dd.mm.yyyy,z);

{1} cbb2.Clear;

{1} with DataModule2 do

{1} begin

{1} with qry1 do

{1} begin

{1} Close;

{1} SQL.Text:=SELECT [Цена];

{1} SQL.Add(FROM [Ассортимент]);

{1} SQL.Add(WHERE ([Наименование]="+cbb1.Text+"));

{1} Open;

{1} rg1.ItemIndex:=0;

{1} lbledt1.Text:=DataModule2.qry1.Fields.Fields[0].Value;

{1} Close;

{1} SQL.Text:=SELECT [Фильм], [Время], [Дата];

{1} SQL.Add(FROM [Сеансы]);

{1} SQL.Add(WHERE (([Фильм]="+cbb1.Text+"));

{1} SQL.Add(AND ([Дата]="+s+")));

{1} Open;

{1} if Fields.Fields[0].AsString<> then

{1} begin

{1} for i:=0 to RecordCount-1 do

{1} begin

{1} cbb2.Items.Add(Fields.Fields[1].Value);

{1} RecNo:=RecNo+1;

{1} end;

{1} end;

{1} Close;

{1} end;

{1} end;

{1} massiv;

{1}end;

{1}procedure TForm3.rg1Click(Sender: TObject);

{1}var prc:Integer;

{1}begin

{1} with DataModule2 do

{1} begin

{1} with qry1 do

{1} begin

{1} Close;

{1}SQL.Text:=SELECT [Цена] FROM [Ассортимент] WHERE

{1} ([Наименование]="+cbb1.Text+");

{1} Open;

{1} prc:=DataModule2.qry1.Fields.Fields[0].Value;

{1} end;

{1} end;

{1} with lbledt1 do

{1} begin

{1} case rg1.ItemIndex of

{1} 0:Text:=IntToStr(prc);

{1} 1:Text:=FloatToStr(prc-(prc*0.01));

{1} 2:Text:=FloatToStr(prc-(prc*0.03));

{1} 3:Text:=FloatToStr(prc-(prc*0.05));

{1} 4:Text:=FloatToStr(prc-(prc*0.1));

{1} end;

{1} end;

{1}end;

{1}procedure TForm3.strngrd1SelectCell(Sender: TObject; ACol, ARow: Integer;

{1} var CanSelect: Boolean);

{1}begin

{1} stb:=ACol;

{1} str:=ARow;

{1}end;

{1}procedure TForm3.massiv;

{1}var i,j,k:Byte;

{1} z:TDateTime;

{1} s:string;

{1}begin

{1} z:=Now;

{1} DateTimeToString(s,dd.mm.yyyy,z);

{1} lst1.Clear;

{1} lst2.Clear;

{1} for i:=0 to strngrd1.RowCount-1 do

{1} begin

{1} for j:=0 to strngrd1.ColCount-1 do

{1} begin

{1} strngrd1.Cells[j,i]:=;

{1} end;

{1} end;

{1} with DataModule2 do

{1} begin

{1} with qry1 do

{1} begin

{1} Close;

{1} SQL.Text:=SELECT [Место], [Ряд];

{1}SQL.Add(FROM [Продажи]);

{1} SQL.Add(WHERE (([Фильм]="+cbb1.Text+"));

{1} SQL.Add(AND ([Сеанс]="+cbb2.Text+"));

{1} SQL.Add(AND ([Зал]="+rg2.Items[rg2.ItemIndex]+"));

{1}SQL.Add(AND ([Дата]=:qr)));

{1} Parameters.ParamByName(qr).Value:=StrToDate(s);

{1}Open;

{1} if Fields.Fields[0].AsString<> then

{1} begin

{1} for i:=0 to RecordCount-1 do

{1} begin

{1} lst1.Items.Add(Fields.Fields[0].Value);

{1} lst2.Items.Add(Fields.Fields[1].Value);

{1} RecNo:=RecNo+1;

{1} end;

{1} end

{1} else

{1} begin

{1} lst1.Items.Add(IntToStr(strngrd1.RowCount));

{1} lst2.Items.Add(IntToStr(strngrd1.ColCount));

{1} end;

{1} Close;

{1} end;

{1} end;

{1} with strngrd1 do

{1} begin

{1} for i:=0 to RowCount-1 do

{1} begin

{1} for j:=0 to ColCount-1 do

{1} begin

{1} for k:=0 to lst1.Count-1 do

{1} begin

{1} if (StrToInt(lst1.Items.Strings[k])=i) and (StrToInt(lst2.Items.Strings[k])=j) then

{1} begin

{1} Cells[j,i]:=;

{1} Break;

{1} end

{1} else

{1} Cells[j,i]:=lbledt1.Text;

{1} end;

{1} end;

{1} end;

{1} end;

{1}end;

{1}procedure TForm3.btn1Click(Sender: TObject);

{1}var z:TDateTime;

{1} s:string;

{1}begin

{1} if (cbb1.Text<>) and (cbb2.Text<>) and (rg1.ItemIndex<>-1) and (rg2.ItemIndex<>-1) {1}and (lbledt1.Text<>) then

{1} begin

{1} if strngrd1.Cells[stb,str]<> then

{1} begin

{1} z:=Now;

{1} DateTimeToString(s,dd.mm.yyyy,z);

{1} with DataModule2 do

{1} begin

{1} with qry1 do

{1} begin

{1} Close;

{1} SQL.Text:=INSERT INTO

{1} [Продажи]([Сотрудник],[Зал],[Фильм],[Сеанс],[Место], [Ряд], [Стоимость], [Дата]);

{1} SQL.Add(VALUES (q,w,e,r,t,y,u,i));

{1} with Parameters do begin

{1} ParamByName(q).Value:=Form3.Caption;

{1} ParamByName(w).Value:=rg2.Items[rg2.ItemIndex];

{1} ParamByName(e).Value:=cbb1.Text;

{1} ParamByName(r).Value:=cbb2.Text;

{1} ParamByName(t).Value:=str;

{1}ParamByName(y).Value:=stb;

{1} ParamByName(u).Value:=StrToFloat(lbledt1.Text);

{1} ParamByName(i).Value:=s;

{1} end;

{1} ExecSQL;

{1} end;

{1} end;

{1} with Form4 do

{1} begin

{1} qrlbl3.Caption:=cbb1.Text;

{1} qrlbl12.Caption:=cbb2.Text;

{1} qrlbl7.Caption:=rg2.Items[rg2.ItemIndex];

{1} qrlbl8.Caption:=IntToStr(str+1);

{1}qrlbl9.Caption:=IntToStr(stb+1);

{1} qrlbl10.Caption:=lbledt1.Text+ руб.;

{1} qckrp1.PreviewModal;

{1} end;

{1} strngrd1.Cells[stb,str]:=;

{1} end

{1} else

{1} Application.MessageBox(Билет на это место уже продан,Ошибка,0);

{1} end

{1} else

{1} Application.MessageBox(Заполните все поля.,Ошибка,0);

{1}end;

{1}procedure TForm3.cbb2Change(Sender: TObject);

{1}begin

{1} rg1.ItemIndex:=0;

{1} if rg2.ItemIndex>-1 then

{1} massiv;

{1}end;

{1}procedure TForm3.rg2Click(Sender: TObject);

{1}begin

{1} strngrd1.ColCount:=StrToInt(lst3.Items.Strings[rg2.ItemIndex]);

{1} strngrd1.RowCount:=StrToInt(lst3.Items.Strings[rg2.ItemIndex]);

{1} if cbb2.ItemIndex>-1 then

{1} cbb2Change(Sender);

{1}end;

{1}end.

{1}unit Unit4;

{1}interface

{1}uses

{1} Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

{1} Dialogs, QRCtrls, QuickRpt, ExtCtrls;

{1}type

{1} TForm4 = class(TForm)

{1} qckrp1: TQuickRep;

{1} qrbnd1: TQRBand;

{1} qrshp1: TQRShape;

{1} qrlbl1: TQRLabel;

{1} qrlbl2: TQRLabel;

{1} qrlbl3: TQRLabel;

{1} qrlbl4: TQRLabel;

{1} qrlbl5: TQRLabel;

{1} qrlbl6: TQRLabel;

{1} qrlbl7: TQRLabel;

{1} qrlbl8: TQRLabel;

{1}qrlbl9: TQRLabel;

{1} qrlbl10: TQRLabel;

{1} qrlbl11: TQRLabel;

{1}qrlbl12: TQRLabel;

{1} private

{1} { Private declarations }

{1} public

{1} { Public declarations }

{1} end;

{1}var

{1} Form4: TForm4;

{1}implementation

{1}{$R *.dfm}

{1}end.

{1}unit Unit5;

{1}interface

{1}uses

{1} Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

{1} Dialogs, StdCtrls, ExtCtrls, ComCtrls, QuickRpt, QRCtrls;

{1}type

{1} TForm5 = class(TForm)

{1} pgc1: TPageControl;

{1} ts1: TTabSheet;

{1} ts2: TTabSheet;

{1} ts3: TTabSheet;

{1} ts4: TTabSheet;

{1} lbledt1: TLabeledEdit;

{1} lbledt2: TLabeledEdit;

{1} lbledt3: TLabeledEdit;

{1} lbledt4: TLabeledEdit;

{1} lbledt5: TLabeledEdit;

{1} lbledt6: TLabeledEdit;

{1} lbledt7: TLabeledEdit;

{1} lbledt8: TLabeledEdit;

{1} lbledt9: TLabeledEdit;

{1} lbledt10: TLabeledEdit;

{1} cbb1: TComboBox;

{1} btn1: TButton;

{1} btn2: TButton;

{1} btn3: TButton;

{1} lbledt11: TLabeledEdit;

{1} lbledt12: TLabeledEdit;

{1} lbledt13: TLabeledEdit;

{1} lbledt14: TLabeledEdit;

{1} lbledt15: TLabeledEdit;

{1} lbledt16: TLabeledEdit;

{1} lbledt17: TLabeledEdit;

{1}lbledt18: TLabeledEdit;

{1} lbledt19: TLabeledEdit;

{1} lbledt20: TLabeledEdit;

{1} btn4: TButton;

{1} ts5: TTabSheet;

{1} btn5: TButton;

{1} btn6: TButton;

{1} btn7: TButton;

{1} dtp1: TDateTimePicker;

{1}dtp2: TDateTimePicker;

{1} procedure report;

{1} procedure btn1Click(Sender: TObject);

{1} procedure btn2Click(Sender: TObject);

{1} procedure btn3Click(Sender: TObject);

{1} procedure btn4Click(Sender: TObject);

{1} procedure btn5Click(Sender: TObject);

{1} procedure FormClose(Sender: TObject; var Action: TCloseAction);

{1} procedure btn6Click(Sender: TObject);

{1} procedure btn7Click(Sender: TObject);

{1} procedure FormActivate(Sender: TObject);

{1} private

{1} { Private declarations }

{1} public

{1} { Public declarations }

{1} end;

{1}var

{1} Form5: TForm5;

{1}implementation

{1}uses Unit2, Unit3, Unit6, Unit1;

{1}{$R *.dfm}

{1}procedure TForm5.report;

{1}var asd:array of TQRDBText;

{1} ad:array of TQRLabel;

{1} a:array of TQRShape;

{1} dd:array of TQRShape;

{1} qw:TQRLabel;

{1} i:Byte;

{1}begin

{1}Form6.qckrp1.DataSet:=DataModule2.qry1;

{1} with Form6 do

{1} begin

{1} for i:=ComponentCount-1 downto 0 do

{1} if (Components[i] is TQRDBText) then

{1} (Components[i] as TQRDBText).Free;

{1} for i:=ComponentCount-1 downto 0 do

{1} if (Components[i] is TQRLabel) then

{1} (Components[i] as TQRLabel).Free;

{1} for i:=ComponentCount-1 downto 0 do

{1} if (Components[i] is TQRShape) then

(Components[i] as TQRShape).Free;

{1} end;

{1} qw:=TQRLabel.Create(Form6);

{1} qw.Parent:=Form6.qrbnd2;

{1} qw.Left:=296;

qw.Width:=81;

qw.Height:=37;

qw.Top:=0;

qw.Font.Name:=Times New Roman;

qw.Font.Size:=22;

qw.Font.Style:=[fsBold];

qw.Caption:=Отчёт;

with DataModule2 do

begin

SetLength(asd,qry1.FieldCount);

SetLength(ad,qry1.FieldCount);

SetLength(a,qry1.FieldCount);

SetLength(dd,qry1.FieldCount);

for i:=0 to qry1.FieldCount-1 do

begin

asd[i]:=TQRDBText.Create(Form6);

asd[i].Parent:=Form6.qrbnd4;

asd[i].Width:=100;

asd[i].Left:=10+i*150;

asd[i].Top:=8;

asd[i].DataSet:=qry1;

asd[i].DataField:=qry1.Fields.Fields[i].FieldName;

ad[i]:=TQRLabel.Create(Form6);

ad[i].Parent:=Form6.qrbnd3;

ad[i].Width:=100;

ad[i].Left:=10+i*150;

ad[i].Top:=8;

ad[i].Caption:=qry1.Fields.Fields[i].FieldName;

a[i]:=TQRShape.Create(Form6);

a[i].Parent:=Form6.qrbnd4;

a[i].Width:=150;

a[i].Height:=39;

a[i].Left:=0+i*151;

a[i].Top:=0;

a[i].SendToBack;

dd[i]:=TQRShape.Create(Form6);

dd[i].Parent:=Form6.qrbnd3;

dd[i].Width:=150;

dd[i].Height:=39;

dd[i].Left:=0+i*151;

dd[i].Top:=0;

dd[i].SendToBack;

end;

end;

end;

procedure TForm5.btn1Click(Sender: TObject);

begin

if (lbledt1.Text<>) and (lbledt2.Text<>) and (lbledt3.Text<>) and (lbledt4.Text<>) and (lbledt5.Text<>) then

begin

with DataModule2 do

begin

with qry1 do

begin

Close;

SQL.Text:=INSERT INTO [Ассортимент]([Наименование],[Описание],[Цена],[Продолжительность],[Возрастное ограничение]);

SQL.Add(VALUES (q,w,e,r,t));

with Parameters do

begin

ParamByName(q).Value:=lbledt1.Text;

ParamByName(w).Value:=lbledt2.Text;

ParamByName(e).Value:=lbledt3.Text;

ParamByName(r).Value:=lbledt4.Text;

ParamByName(t).Value:=lbledt5.Text;

end;

ExecSQL;

end;

end;

end

else

Application.MessageBox(Заполните все поля.,Ошибка,0);

end;

procedure TForm5.btn2Click(Sender: TObject);

begin

if (lbledt6.Text<>) and (lbledt7.Text<>) and (lbledt8.Text<>) then

begin

with DataModule2 do

begin

with qry1 do

begin

Close;

SQL.Text:=INSERT INTO [Залы]([Наименование зала],[Вместимость],[Ряды],[Места в ряде]);

SQL.Add(VALUES (q,w,e,r));

with Parameters do

begin

ParamByName(q).Value:=lbledt6.Text;

ParamByName(w).Value:=lbledt7.Text;

ParamByName(e).Value:=lbledt8.Text;

ParamByName(r).Value:=lbledt8.Text;

end;

ExecSQL;

end;

end;

end

else

Application.MessageBox(Заполните все поля.,Ошибка,0);

end;

procedure TForm5.btn3Click(Sender: TObject);

begin

if (cbb1.Text<>) and (lbledt9.Text<>) and (lbledt10.Text<>) then

begin

with DataModule2 do

begin

with qry1 do

begin

Close;

SQL.Text:=INSERT INTO [Сеансы]([Дата],[Время]);

SQL.Add(VALUES (q,w,e));

with Parameters do

begin

ParamByName(q).Value:=cbb1.Text;

ParamByName(w).Value:=lbledt9.Text;

ParamByName(e).Value:=lbledt10.Text;

end;

ExecSQL;

end;

end;

end

else

Application.MessageBox(Заполните все поля.,Ошибка,0);

end;

procedure TForm5.btn4Click(Sender: TObject);

begin

if (lbledt11.Text<>) and (lbledt12.Text<>) and (lbledt13.Text<>) and (lbledt14.Text<>) and (lbledt15.Text<>)

and (lbledt16.Text<>) and (lbledt17.Text<>) and (lbledt18.Text<>) and (lbledt19.Text<>) and (lbledt20.Text<>) then

begin

with DataModule2 do

begin

with qry1 do

begin

Close;

SQL.Text:=INSERT INTO [Сотрудники]([Фамилия],[Имя],[Отчество],[Дата приёма],[Адресс], [Телефон], [ИНН], [Дата рождения], [Пароль], [Должность]);

SQL.Add(VALUES (q,w,e,r,t,y,u,i));

with Parameters do

begin

ParamByName(q).Value:=lbledt11.Text;

ParamByName(w).Value:=lbledt12.Text;

ParamByName(e).Value:=lbledt13.Text;

ParamByName(r).Value:=lbledt14.Text;

ParamByName(t).Value:=lbledt15.Text;

ParamByName(y).Value:=lbledt16.Text;

ParamByName(u).Value:=lbledt17.Text;

ParamByName(i).Value:=lbledt18.Text;

ParamByName(o).Value:=lbledt19.Text;

ParamByName(p).Value:=lbledt20.Text;

end;

ExecSQL;

end;

end;

end

{1} else

{1} Application.MessageBox(Заполните все поля.,Ошибка,0);

{1}end;

{1}procedure TForm5.btn5Click(Sender: TObject);

{1}begin

{1} with DataModule2 do

{1} begin

{1} with qry1 do

{1} begin

{1} Close;

{1} SQL.Text:=SELECT (Round(sum([Стоимость])*100)/100) AS [Выручка в рублях];

{1}SQL.Add(FROM [Продажи]);

{1} Open;

{1} report;

{1} Form6.qckrp1.PreviewModal;

{1} end;

{1} end;

{1}end;

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

{1}begin

{1} Form1.Close;

{1}end;

{1}procedure TForm5.btn6Click(Sender: TObject);

{1}begin

{1} with DataModule2 do

{1} begin

{1} with qry1 do

{1} begin

{1} Close;

{1} SQL.Text:=SELECT *;

{1} SQL.Add(FROM [Сеансы]);

{1} Open;

{1} report;

{1} Form6.qckrp1.PreviewModal;

{1} end;

{1} end;

{1}end;

{1}procedure TForm5.btn7Click(Sender: TObject);

{1}var s,t:string;

{1}begin

{1} DateTimeToString(s,dd.mm.yyyy,dtp1.DateTime);

{1} DateTimeToString(t,dd.mm.yyyy,dtp2.DateTime);

{1} with DataModule2 do

{1} begin

{1} with qry1 do

{1} begin

{1} Close;

{1} SQL.Text:=SELECT [Зал], [Фильм], [Сеанс], Round([Стоимость]*100)/100 AS

{1} [Стоимость], [Дата];

{1} SQL.Add(FROM [Продажи]);

{1} SQL.Add(WHERE (([Дата]>=:we));

{1} SQL.Add(AND ([Дата]<=:qr)));

{1} Parameters.ParamByName(we).Value:=StrToDate(s);

{1}Parameters.ParamByName(qr).Value:=StrToDate(t);

{1} Open;

{1} report;

{1} Form6.qckrp1.PreviewModal;

{1} end;

{1} end;

{1}end;

{1}procedure TForm5.FormActivate(Sender: TObject);

{1}var i:Byte;

{1}begin

{1} cbb1.Clear;

{1} with DataModule2 do

{1} begin

{1} with qry1 do

{1} begin

{1} Close;

{1} SQL.Text:=SELECT DISTINCT [Наименование];

{1} SQL.Add(FROM [Ассортимент]);

{1} Open;

{1} for i:=0 to RecordCount-1 do

{1} begin

{1} cbb1.Items.Add(Fields.Fields[0].Value);

{1} RecNo:=RecNo+1;

{1} end;

{1} Close;

{1} end;

{1} end;

{1}end;

{1}end.

{1}unit Unit6;

{1}interface

{1}uses

{1}Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

{1} Dialogs, QuickRpt, QRCtrls, ExtCtrls;

{1}type

{1} TForm6 = class(TForm)

{1} qckrp1: TQuickRep;

{1} qrbnd1: TQRBand;

{1} qrbnd2: TQRBand;

{1} qrbnd3: TQRBand;

{1} qrbnd4: TQRBand;

{1} qrbnd5: TQRBand;

{1} qrsysdt1: TQRSysData;

{1} qrsysdt2: TQRSysData;

{1} private

{1} { Private declarations }

{1} public

{1} { Public declarations }

{1}end;

{1}var

{1} Form6: TForm6;

{1}implementation

{1}{$R *.dfm}

{1}end.

Приложение 2

Скриншоты работы программы.

После запуска приложения, по нажатию на файл Project1.exe открывается форма изображена на рисунке 1.

Рис. 1

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

На которой имеется несколько вкладок.

На вкладке «Ассортимент» производится добавление фильмов в базу данных кинотеатра.

Рис. 2

На вкладке «Залы» производится добавление планов залов в базу данных кинотеатра.

Рис. 3

На вкладке «Сеансы» производится добавление сеансов в базу данных кинотеатра.

Рис. 4

На вкладке «Сотрудники» производится добавление информации о сотрудниках кинотеатра в базу данных кинотеатра.

Рис. 5

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

Рис. 6

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

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

Рис. 7.