Приложение А. Описание главной формы «Fmain»
Листинг программы
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.XPMan, Vcl.ExtCtrls, Vcl.DBCtrls,
Vcl.Grids, Vcl.DBGrids, Vcl.ComCtrls, Vcl.StdCtrls, Vcl.Mask, Vcl.DBCGrids,
Vcl.DBLookup, Vcl.ActnList, Vcl.Menus, Data.DB, Vcl.ImgList, Vcl.ToolWin, Shellapi;
type
Tfmain = class(TForm)
sb: TStatusBar;
dbgarenda: TDBGrid;
Panel1: TPanel;
Label6: TLabel;
Label7: TLabel;
edog: TEdit;
DBLookupComboBox1: TDBLookupComboBox;
Button1: TButton;
ToolBar1: TToolBar;
tbAdd: TToolButton;
XPManifest1: TXPManifest;
al: TActionList;
fmainactivate: TAction;
arendatrefresh: TAction;
cbfiofill: TAction;
filterfio: TAction;
fsprclose: TAction;
fsprarendatoryopen: TAction;
arendatoryrefresh: TAction;
fsprpomesheniaopen: TAction;
ImageList1: TImageList;
mmfmain: TMainMenu;
N1: TMenuItem;
mmAdd: TMenuItem;
mmDel: TMenuItem;
mmSave: TMenuItem;
N4: TMenuItem;
mmExit: TMenuItem;
N2: TMenuItem;
mmpomeshenya: TMenuItem;
mmarendatory: TMenuItem;
N6: TMenuItem;
mmHTML1: TMenuItem;
N7: TMenuItem;
mmabout: TMenuItem;
tbdel: TToolButton;
tbSave: TToolButton;
ToolButton1: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton2: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
pmArenda: TPopupMenu;
pmAdd: TMenuItem;
pmDel: TMenuItem;
pmSave: TMenuItem;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
Label8: TLabel;
ToolButton13: TToolButton;
|
|
ToolButton14: TToolButton;
ToolButton15: TToolButton;
Panel2: TPanel;
DBEdit4: TDBEdit;
DBEdit3: TDBEdit;
DBEdit2: TDBEdit;
DBEdit1: TDBEdit;
DBLookupComboBox2: TDBLookupComboBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
procedure fmainactivateExecute(Sender: TObject);
procedure arendatrefreshExecute(Sender: TObject);
procedure mmExitClick(Sender: TObject);
procedure filterfioExecute(Sender: TObject);
procedure mmaboutClick(Sender: TObject);
procedure mmarendatoryClick(Sender: TObject);
procedure fsprcloseExecute(Sender: TObject);
procedure fsprarendatoryopenExecute(Sender: TObject);
procedure fsprpomesheniaopenExecute(Sender: TObject);
procedure DBLookupComboBox1CloseUp(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure mmAddClick(Sender: TObject);
procedure mmDelClick(Sender: TObject);
procedure mmSaveClick(Sender: TObject);
procedure dbgarendaEnter(Sender: TObject);
procedure dbgarendaExit(Sender: TObject);
procedure edogKeyPress(Sender: TObject; var Key: Char);
procedure mmHTML1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmain: Tfmain;
implementation
{$R *.dfm}
uses udm, Ufabout, Ufsprarendatory, Ufsprpomeshenia;
procedure Tfmain.arendatrefreshExecute(Sender: TObject);
begin
dm.tarenda.Close;
dm.tarenda.Open;
fmain.sb.Panels[0].Text:='Количество арендованных помещений - '
+inttostr(dm.tarenda.RecordCount);
end;
procedure Tfmain.Button1Click(Sender: TObject);
begin
dm.tarenda.Filter:='';
dm.tarenda.Filtered:=false;
DBLookupComboBox1.KeyValue:=null;
fmain.sb.Panels[0].Text:='Количество арендованных помещений - ' +
inttostr(dm.tarenda.RecordCount);
end;
procedure Tfmain.dbgarendaEnter(Sender: TObject);
begin
tbdel.Enabled:=true;
mmDel.Enabled:=true;
end;
procedure Tfmain.dbgarendaExit(Sender: TObject);
begin
tbdel.Enabled:=false;
mmDel.Enabled:=false;
end;
procedure Tfmain.DBLookupComboBox1CloseUp(Sender: TObject);
var str:string;
begin
if (DBLookupComboBox1.KeyValue=null)and(edog.Text='')
then str:='';
if (DBLookupComboBox1.KeyValue<>null)and(edog.Text='')
then str:='kod_arendatora='+quotedstr(DBLookupComboBox1.KeyValue);
if (DBLookupComboBox1.KeyValue=null)and(edog.Text<>'')
then str:='nomer_dogovora='+quotedstr(edog.Text);
if str<>'' then
begin
dm.tarenda.Filter:=str;
dm.tarenda.Filtered:=true;
fmain.sb.Panels[0].Text:='Найдено записей - '+inttostr(dm.tarenda.RecordCount);
end
else
begin
dm.tarenda.Filtered:=false;
fmain.sb.Panels[0].Text:='Количество арендованных помещений - ' +
|
|
inttostr(dm.tarenda.RecordCount);
end;
end;
procedure Tfmain.edogKeyPress(Sender: TObject; var Key: Char);
begin
if Key in ['a'..'z'] + ['A'..'Z'] then Key:=#0
end;
procedure Tfmain.filterfioExecute(Sender: TObject);
var str:string;
begin
{if (cbfio.Text='Все')and(edog.Text='')
then str:='';
if (cbfio.Text<>'Все')and(edog.Text='')
then str:='FIO_rykovoditela='+quotedstr(fmain.cbfio.Text);
if (cbfio.Text='Все')and(fmain.edog.Text<>'')
then str:='nomer_dogovora='+quotedstr(fmain.edog.Text);
if (cbfio.Text<>'Все')and(fmain.edog.Text<>'')
then str:='(FIO_rykovoditela='+quotedstr(cbfio.Text)+
') and (nomer_dogovora=' + quotedstr(fmain.edog.Text)+')';
if str<>'' then
begin
dm.tarenda.Filter:=str;
dm.tarenda.Filtered:=true;
fmain.sb.Panels[0].Text:='Найдено записей - '+inttostr(dm.tarenda.RecordCount);
end
else
begin
dm.tarenda.Filtered:=false;
fmain.sb.Panels[0].Text:='Количество арендованных помещений - ' + inttostr(dm.tarenda.RecordCount);
end; }
end;
procedure Tfmain.fmainactivateExecute(Sender: TObject);
begin
sb.Panels[0].Text:='Количество арендованных помещений - '+inttostr(dm.tarenda.RecordCount);
end;
procedure Tfmain.fsprarendatoryopenExecute(Sender: TObject);
begin
fsprarendatory.dbg.DataSource:=dm.dsarendatory;
fsprarendatory.dbg.Columns.Clear;
fsprarendatory.dbg.Columns.Add;
fsprarendatory.dbg.Columns[0].Field:=dm.tarendatoryFIO_rykovoditela;
fsprarendatory.dbg.Columns[0].Width:=150;
dm.tarendatory.Sort:=dm.tarendatoryFIO_rykovoditela.FieldName;
fsprarendatory.dbg.Columns.Add;
fsprarendatory.dbg.Columns[1].Field:=dm.tarendatorynazvanie_firmy;
fsprarendatory.dbg.Columns[1].Width:=150;
dm.tarendatory.Sort:=dm.tarendatorynazvanie_firmy.FieldName;
fsprarendatory.dbg.Columns.Add;
fsprarendatory.dbg.Columns[2].Field:=dm.tarendatoryyredicheskiy_adress;
fsprarendatory.dbg.Columns[2].Width:=150;
dm.tarendatory.Sort:=dm.tarendatoryyredicheskiy_adress.FieldName;
fsprarendatory.dbg.Columns.Add;
fsprarendatory.dbg.Columns[3].Field:=dm.tarendatorykontaktniy_telefon;
fsprarendatory.dbg.Columns[3].Width:=150;
dm.tarendatory.Sort:=dm.tarendatorykontaktniy_telefon.FieldName;
fsprarendatory.Width:=600+60;
fsprarendatory.sb.Panels[0].Text:='Количество арендаторов - ' +
inttostr(fsprarendatory.dbg.DataSource.DataSet.RecordCount);
ShowWindow(Handle,SW_HIDE);
fsprarendatory.ShowModal;
AnimateWindow(Handle,300,AW_CENTER);
end;
procedure Tfmain.fsprcloseExecute(Sender: TObject);
begin
if (fsprarendatory.dbg.DataSource.DataSet.State=dsEdit) or
(fsprarendatory.dbg.DataSource.DataSet.State=dsInsert) then
fsprarendatory.dbg.DataSource.DataSet.Cancel;
end;
procedure Tfmain.fsprpomesheniaopenExecute(Sender: TObject);
begin
fsprpomeshenia.dbgpomeshenia.DataSource:=dm.dspomeshenia;
fsprpomeshenia.dbgpomeshenia.Columns.Clear;
fsprpomeshenia.dbgpomeshenia.Columns.Add;
fsprpomeshenia.dbgpomeshenia.Columns[0].Field:=dm.tpomeshenianazvanie_pomeshenia;
fsprpomeshenia.dbgpomeshenia.Columns[0].Width:=150;
//dm.tpomeshenia.Sort:=dm.tpomeshenianazvanie_pomeshenia.FieldName;
fsprpomeshenia.dbgpomeshenia.Columns.Add;
fsprpomeshenia.dbgpomeshenia.Columns[1].Field:=dm.tpomesheniaploshad;
fsprpomeshenia.dbgpomeshenia.Columns[1].Width:=150;
//dm.tpomeshenia.Sort:=dm.tpomesheniaploshad.FieldName;
fsprpomeshenia.sb.Panels[0].Text:='Количество помещений - ' +
inttostr(fsprpomeshenia.dbgpomeshenia.DataSource.DataSet.RecordCount);
fsprpomeshenia.dbgzdania.DataSource:=dm.dszdania;fsprpomeshenia.dbgzdania.Columns.Clear;
fsprpomeshenia.dbgzdania.Columns.Add;
fsprpomeshenia.dbgzdania.Columns[0].Field:=dm.tzdanianazvanie;
fsprpomeshenia.dbgzdania.Columns[0].Width:=150;
//dm.tzdania.Sort:=dm.tzdanianazvanie.FieldName;
fsprpomeshenia.dbgzdania.Columns.Add;
fsprpomeshenia.dbgzdania.Columns[1].Field:=dm.tzdaniaadress;
fsprpomeshenia.dbgzdania.Columns[1].Width:=150;
fsprpomeshenia.Width:=720+60;
fsprpomeshenia.sb.Panels[0].Text:='Количество помещений - ' +
inttostr(fsprpomeshenia.dbgzdania.DataSource.DataSet.RecordCount);
ShowWindow(Handle,SW_HIDE);
fsprpomeshenia.ShowModal;
AnimateWindow(Handle,300,AW_BLEND);
dbgarenda.DataSource:=dm.dsarenda;
end;
procedure Tfmain.mmAddClick(Sender: TObject);
begin
dm.tarenda.Insert;
end;
procedure Tfmain.mmarendatoryClick(Sender: TObject);
begin
fsprarendatory.ShowModal;
end;
procedure Tfmain.mmDelClick(Sender: TObject);
begin
dm.tarenda.Delete;
end;
procedure Tfmain.mmExitClick(Sender: TObject);
begin
ExitProcess(0);
end;
procedure Tfmain.mmHTML1Click(Sender: TObject);
var
tfile:TextFile;
i:integer;
filename:string;
begin
filename:='report.html';
AssignFile(tfile,filename);
rewrite(tfile);
writeln(tfile,'<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">');
writeln(tfile,'<HTML>');
writeln(tfile,'<HEAD>');
writeln(tfile,'<meta http-equiv=Content-Type content=\"text/html; charset=UTF-8\">');
writeln(tfile,'</HEAD>');
writeln(tfile,'<BODY>');
writeln(tfile,'<H2 Align=Center>Отчёт по арендованным помещениям</H2><TABLE BORDER=1 WIDTH=100%><TR><TH>ID<TH>Помещение<TH>№ договора<TH>Дата договора<TH>Начало аренды<TH>Конец аренды<TH>Арендатор</TR>');
i:=1;
dm.tarenda.First;
while not dm.tarenda.Eof do
begin
writeln(tfile,'<TR>');
writeln(tfile,'<TD>'+inttostr(i));
writeln(tfile,'<TD>'+dm.tarendapomeshenia.Value);
writeln(tfile,'<TD>'+inttostr(dm.tarendanomer_dogovora.Value));
writeln(tfile,'<TD>'+datetostr(dm.tarendadata_oformlenia_dogovora.Value));
writeln(tfile,'<TD>'+datetostr(dm.tarendadata_nachala_arendy.Value));
writeln(tfile,'<TD>'+datetostr(dm.tarendadata_okonchania_arendy.Value));
writeln(tfile,'<TD>'+dm.tarendaArendator.Value);
i:=i+1;
dm.tarenda.Next;
end;
writeln(tfile,'</TABLE>');
writeln(tfile,'<P>Количество арендованых помещений - '+inttostr(dm.tarenda.RecordCount)+'</P>');
CloseFile(tfile);
ShellExecute(0,'Open',PWideChar(filename),0,0,SW_SHOW);
end;
procedure Tfmain.mmSaveClick(Sender: TObject);
begin
|
|
dm.tarenda.Post;
tbSave.Enabled:=false;
pmSave.Enabled:=false;
end;
procedure Tfmain.mmaboutClick(Sender: TObject);
begin
ShowWindow(Handle,SW_HIDE);
fabout.ShowModal;
AnimateWindow(Handle,300,AW_BLEND);
end;
end.
Приложение Б. Описание формы «Fsprarendatory»
Листинг программы
unit Ufsprarendatory;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.ExtCtrls, Vcl.DBCtrls,
Vcl.Grids, Vcl.DBGrids, Vcl.StdCtrls, Vcl.Buttons, Vcl.ImgList, Vcl.ToolWin;
type
Tfsprarendatory = class(TForm)
dbg: TDBGrid;
sb: TStatusBar;
ToolBar1: TToolBar;
ImageList1: TImageList;
bAdd: TToolButton;
bDel: TToolButton;
bSave: TToolButton;
tbExit: TToolButton;
procedure bAddClick(Sender: TObject);
procedure bDelClick(Sender: TObject);
procedure bSaveClick(Sender: TObject);
procedure dbgEnter(Sender: TObject);
procedure dbgExit(Sender: TObject);
procedure tbExitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fsprarendatory: Tfsprarendatory;
implementation
{$R *.dfm}
uses udm;
procedure Tfsprarendatory.bAddClick(Sender: TObject);
begin
dm.tarendatory.Insert;
end;
procedure Tfsprarendatory.bDelClick(Sender: TObject);
begin
dm.tarendatory.Delete;
end;
procedure Tfsprarendatory.bSaveClick(Sender: TObject);
begin
dm.tarendatory.Post;
bSave.Enabled:=False;
end;
procedure Tfsprarendatory.dbgEnter(Sender: TObject);
begin
bDel.Enabled:=true;
end;
procedure Tfsprarendatory.dbgExit(Sender: TObject);
begin
bDel.Enabled:=false;
end;
procedure Tfsprarendatory.tbExitClick(Sender: TObject);
begin
close;
end;
end.
Приложение В. Описание формы «Fsprpomeshenia»
Листинг программы
unit Ufsprpomeshenia;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.ExtCtrls, Vcl.DBCtrls,
Vcl.Grids, Vcl.DBGrids, Vcl.StdCtrls, Vcl.Buttons;
type
Tfsprpomeshenia = class(TForm)
dbgpomeshenia: TDBGrid;
sb: TStatusBar;
dbgzdania: TDBGrid;
bAddZdania: TBitBtn;
bDelZdania: TBitBtn;
bSaveZdania: TBitBtn;
bAddpomeshenia: TBitBtn;
bDelPomeshenia: TBitBtn;
bSavepomeshenia: TBitBtn;
BitBtn1: TBitBtn;
procedure bAddZdaniaClick(Sender: TObject);
procedure bAddpomesheniaClick(Sender: TObject);
procedure bDelZdaniaClick(Sender: TObject);
procedure bSaveZdaniaClick(Sender: TObject);
procedure bDelPomesheniaClick(Sender: TObject);
procedure bSavepomesheniaClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fsprpomeshenia: Tfsprpomeshenia;
implementation
{$R *.dfm}
uses udm;
procedure Tfsprpomeshenia.bAddpomesheniaClick(Sender: TObject);
begin
dm.tpomeshenia.Insert;
end;
procedure Tfsprpomeshenia.bAddZdaniaClick(Sender: TObject);
begin
dm.tzdania.Insert;
end;
procedure Tfsprpomeshenia.bDelPomesheniaClick(Sender: TObject);
begin
dm.tpomeshenia.Delete;
end;
procedure Tfsprpomeshenia.bDelZdaniaClick(Sender: TObject);
begin
dm.tzdania.Delete;
end;
procedure Tfsprpomeshenia.BitBtn1Click(Sender: TObject);
begin
close;
end;
procedure Tfsprpomeshenia.bSavepomesheniaClick(Sender: TObject);
begin
dm.tpomeshenia.Post;
|
|
end;
procedure Tfsprpomeshenia.bSaveZdaniaClick(Sender: TObject);
begin
dm.tzdania.Post;
end;
end.
Приложение Г. описание формы «udm»
Листинг программы
unit udm;
interface
uses
System.SysUtils, System.Classes, Data.DB, Data.Win.ADODB;
type
Tdm = class(TDataModule)
ADOData: TADOConnection;
tzdania: TADOTable;
dszdania: TDataSource;
tpomeshenia: TADOTable;
dspomeshenia: TDataSource;
tzdaniakod_zdania: TAutoIncField;
tzdanianazvanie: TWideStringField;
tzdaniaadress: TWideStringField;
tpomesheniakod_pomeshenia: TAutoIncField;
tpomeshenianazvanie_pomeshenia: TWideStringField;
tpomesheniaploshad: TIntegerField;
tpomesheniakod_zdania: TIntegerField;
tarenda: TADOTable;
dsarenda: TDataSource;
tarendatory: TADOTable;
dsarendatory: TDataSource;
tarendatorykod_arendatora: TAutoIncField;
tarendatoryyredicheskiy_adress: TWideStringField;
tarendatoryFIO_rykovoditela: TWideStringField;
tarendatorykontaktniy_telefon: TIntegerField;
tarendatorynazvanie_firmy: TWideStringField;
qtarenda: TADOTable;
dsqtarenda: TDataSource;
qtarendakod_pomeshenia: TIntegerField;
qtarendanomer_dogovora: TIntegerField;
qtarendadata_oformlenia_dogovora: TDateTimeField;
qtarendadata_nachala_arendy: TDateTimeField;
qtarendadata_okonchania_arendy: TDateTimeField;
qtarendakod_arendy: TAutoIncField;
qtarendakod_arendatora: TIntegerField;
qtarendaFIO_rykovoditela: TWideStringField;
qtarendanazvanie_pomeshenia: TWideStringField;
tarendakod_pomeshenia: TIntegerField;
tarendanomer_dogovora: TIntegerField;
tarendadata_oformlenia_dogovora: TDateTimeField;
tarendadata_nachala_arendy: TDateTimeField;
tarendadata_okonchania_arendy: TDateTimeField;
tarendakod_arendy: TAutoIncField;
tarendakod_arendatora: TIntegerField;
tarendaArendator: TStringField;
tarendapomeshenia: TStringField;
procedure tarendaAfterRefresh(DataSet: TDataSet);
procedure tarendatoryAfterRefresh(DataSet: TDataSet);
procedure tarendaAfterEdit(DataSet: TDataSet);
procedure tarendatoryAfterEdit(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;
var
dm: Tdm;
implementation
{%CLASSGROUP 'System.Classes.TPersistent'}
uses Unit1, Ufsprarendatory;
{$R *.dfm}
procedure Tdm.tarendaAfterEdit(DataSet: TDataSet);
begin
fmain.tbSave.Enabled:=true;
fmain.pmSave.Enabled:=true;
end;
procedure Tdm.tarendaAfterRefresh(DataSet: TDataSet);
begin
dm.tarenda.Close;
dm.tarenda.Open;
fmain.sb.Panels[0].Text:='Количество арендованных помещений - '+
inttostr(dm.tarenda.RecordCount);
end;
procedure Tdm.tarendatoryAfterEdit(DataSet: TDataSet);
begin
fsprarendatory.bSave.Enabled:=true;
end;
procedure Tdm.tarendatoryAfterRefresh(DataSet: TDataSet);
begin
fsprarendatory.sb.Panels[0].Text:=' Количество арендаторов - ' +
inttostr(dm.tarendatory.RecordCount);
end;
end.
Приложение Д.Описание формы «fabout»
Листинг программы
unit Ufabout;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Imaging.jpeg,
Vcl.ExtCtrls;
type
Tfabout = class(TForm)
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fabout: Tfabout;
implementation
{$R *.dfm}
procedure Tfabout.Button1Click(Sender: TObject);
begin -
close();
end;
end.