Список литературы
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.
- Введение
- 1. Основная часть
- 1.1 Проектирование структуры базы данных
- 1.2 Проектирование базы данных
- 1.3 Основные этапы проектирования баз данных
- 2. Практическая часть
- 2.1 Постановка задачи
- 2.2 Описание схем
- 2.2.2 Схема алгоритма работы программного модуля “Авторизация”
- 2.3 Листинг программных модулей
- 2.3.1 Процедура “Авторизация”
- 2.3.2 Процедура “Оператор”
- 2.3.4 Мероприятия по технике безопасности
- Список литературы