9 СПИСОК ЛИТЕРАТУРЫ
Бурлачук Л.Ф., Морозов С.М. (1999) Словарь – справочник по психологической диагностике.- Киев; изд.2-ое – СПб
Фаронов В “Система программирования Delphi” – СПб 2007
Дарахвелидзе П., Марков Е., Котенок О “Программирование в Delphi 5” – СПб 2000
Советов Б.Я., Цехановский В.В., Чертовской В.Д “Теоретические основы автоматизированного управления” – Москва 2006
Ковязин А., Востриков С “Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase” – СПб 2005
ПРИЛОЖЕНИЕ 1
Фрагменты листинга программы:
unit Anna;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, DB, IBCustomDataSet, IBTable, IBDatabase,
Grids, DBGrids, ComCtrls, Provider, DBClient, DBLocal, DBLocalI,
StdCtrls, Mask, ToolWin, Menus, ImgList, Buttons, IBQuery;
type
TFormMain = class(TForm)
MainMenu1: TMainMenu;
Start1: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
N6: TMenuItem;
PageControl2: TPageControl;
DBGrid1: TDBGrid;
DBEdit1: TDBEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
Label7: TLabel;
DBEdit7: TDBEdit;
GroupBox1: TGroupBox;
DBGrid2: TDBGrid;
EditFamily: TEdit;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
EditName: TEdit;
EditSecondName: TEdit;
ButtonFind: TButton;
N3: TMenuItem;
N4: TMenuItem;
IBDatabase1: TIBDatabase;
IBTransaction1: TIBTransaction;
IBTableApplicantsID_APPLICANT: TIntegerField;
IBTableApplicantsFAMILIY: TIBStringField;
IBTableApplicantsNAME: TIBStringField;
IBTableApplicantsSECOND_NAME: TIBStringField;
IBTableApplicantsCOMMENTS: TIBStringField;
IBTableApplicantsVOZRAST: TIntegerField;
OpenDialog1: TOpenDialog;
IBTableApplicants: TIBTable;
IBTablePassport: TIBTable;
IBQuery1: TIBQuery;
DataSourceTestRes: TDataSource;
DataSourceApplicants: TDataSource;
DataSourcePassport: TDataSource;
IBQueryFind: TIBQuery;
DBNavigator1: TDBNavigator;
N5: TMenuItem;
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure IBTableApplicantsAfterScroll(DataSet: TDataSet);
procedure ButtonFindClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormMain: TFormMain;
implementation
uses Form2, Form3, FormAbout, FormRemoteDB1;
{$R *.dfm}
procedure TFormMain.N3Click(Sender: TObject);
begin
if IBDatabase1.Connected = false then
Exit;
Application.CreateForm(TFormApplicants, FormApplicants);
FormApplicants.Initialize(IBDatabase1, IBTransaction1);
FormApplicants.ShowModal;
end;
procedure TFormMain.N4Click(Sender: TObject);
begin
if IBDatabase1.Connected = false then
Exit;
Application.CreateForm(TFormTestRes, FormTestRes);
FormTestRes.Initialize(IBDatabase1, IBTransaction1);
FormTestRes.ShowModal;
end;
procedure TFormMain.IBTableApplicantsAfterScroll(DataSet: TDataSet);
begin
IBQuery1.Close;
IBQuery1.ParamByName('pm_appl_id').AsInteger := IBTableApplicants.Fieldbyname('ID_APPLICANT').AsInteger;
IBQuery1.Open;
end;
procedure TFormMain.ButtonFindClick(Sender: TObject);
var
app_id : Integer;
begin
if IBDatabase1.Connected = false then
Exit;
IBQueryFind.Close;
IBQueryFind.ParamByName('pm_family').AsString := EditFamily.Text + '%';
IBQueryFind.ParamByName('pm_name').AsString := EditName.Text + '%';
IBQueryFind.ParamByName('pm_sec_name').AsString := EditSecondName.Text + '%';
IBQueryFind.Open;
app_id := IBQueryFind.fieldbyname('ID_APPLICANT').AsInteger;
if app_id <> 0 then
begin
IBTableApplicants.Locate('ID_APPLICANT', app_id, [loPartialKey]);
end;
end;
procedure TFormMain.N1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
IBDatabase1.Connected := false;
IBDatabase1.DatabaseName := OpenDialog1.FileName;
IBDatabase1.Connected := true;
IBTableApplicants.Active := true;
IBTablePassport.Active := true;
IBQuery1.Active := true;
end;
end;
procedure TFormMain.N6Click(Sender: TObject);
begin
FormAbout1.ShowModal;
IBTableApplicants.Active := true;
IBTablePassport.Active := true;
IBQuery1.Active := true;
end;
procedure TFormMain.N5Click(Sender: TObject);
begin
FormRemoteDB.Initialize(IBDatabase1);
FormRemoteDB.ShowModal;
if(IBDatabase1.Connected) then
begin
IBTableApplicants.Active := true;
IBTablePassport.Active := true;
IBQuery1.Active := true;
end;
end;
end.
unit Form3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, IBCustomDataSet, IBTable,
IBDatabase;
type
TFormTestRes = class(TForm)
DataSourceTestRes: TDataSource;
DataSourceTests: TDataSource;
DBGrid2: TDBGrid;
DBNavigator1: TDBNavigator;
DBNavigator2: TDBNavigator;
DataSourceSpec: TDataSource;
DBGrid1: TDBGrid;
DBGrid3: TDBGrid;
DBNavigator3: TDBNavigator;
IBTableTestRes: TIBTable;
IBTableTests: TIBTable;
IBTableSpec: TIBTable;
private
{ Private declarations }
public
{ Public declarations }
procedure Initialize(const ADataBase: TIBDatabase; const ATransaction: TIBTransaction);
end;
var
FormTestRes: TFormTestRes;
implementation
{$R *.dfm}
procedure TFormTestRes.Initialize(const ADataBase: TIBDatabase; const ATransaction: TIBTransaction);
begin
IBTableTestRes.Database := ADataBase;
IBTableTests.Database := ADataBase;
IBTableSpec.Database := ADataBase;
IBTableTestRes.Transaction := ATransaction;
IBTableTests.Transaction := ATransaction;
IBTableSpec.Transaction := ATransaction;
IBTableTestRes.Active := true;
IBTableTests.Active := true;
IBTableSpec.Active := true;
end;
end.
unit FormAbout;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TFormAbout1 = class(TForm)
Memo1: TMemo;
BitBtn1: TBitBtn;
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormAbout1: TFormAbout1;
implementation
{$R *.dfm}
end.
unit FormRemoteDB1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, IBDatabase;
type
TFormRemoteDB = class(TForm)
BitBtnConnect: TBitBtn;
BitBtnExit: TBitBtn;
EditHost: TEdit;
EditPath: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure BitBtnConnectClick(Sender: TObject);
private
{ Private declarations }
DataBase: TIBDatabase;
public
{ Public declarations }
procedure Initialize(const ADataBase: TIBDatabase);
end;
var
FormRemoteDB: TFormRemoteDB;
implementation
{$R *.dfm}
procedure TFormRemoteDB.Initialize(const ADataBase: TIBDatabase);
begin
DataBase := ADataBase;
end;
procedure TFormRemoteDB.BitBtnConnectClick(Sender: TObject);
var
DataBaseName: string;
begin
if(EditHost.Text = '') then
Exit;
if(EditPath.Text = '') then
Exit;
DataBaseName := EditHost.Text + ':' + EditPath.Text;
DataBase.Connected := false;
DataBase.DatabaseName := DataBaseName;
DataBase.Connected := true;
if(DataBase.Connected) then
Close;
end;
end.
unit Form2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, DB, IBDatabase, IBCustomDataSet, IBTable, ExtCtrls,
DBCtrls, Grids, DBGrids, StdCtrls, IBQuery;
type
TFormApplicants = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
DBGrid2: TDBGrid;
Button1: TButton;
Edit4: TEdit;
Edit3: TEdit;
Edit2: TEdit;
Edit1: TEdit;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label8: TLabel;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
EditFamilyA: TEdit;
EditNameA: TEdit;
EditSecNameA: TEdit;
EditCityA: TEdit;
ButtonFindA: TButton;
Label5: TLabel;
Label6: TLabel;
EditStreetA: TEdit;
DBGrid12: TDBGrid;
GroupBox5: TGroupBox;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
EditFamilyT: TEdit;
EditNameT: TEdit;
EditSecNameT: TEdit;
EditPhoneT: TEdit;
ButtonFindT: TButton;
DBGrid5: TDBGrid;
GroupBox2: TGroupBox;
Label7: TLabel;
Label12: TLabel;
Label13: TLabel;
EditFamilyO: TEdit;
EditNameO: TEdit;
EditSecNameO: TEdit;
ButtonFindO: TButton;
DBGrid1: TDBGrid;
DBGrid3: TDBGrid;
DBGrid4: TDBGrid;
DataSourceTel: TDataSource;
DataSourceEduc: TDataSource;
DataSourceApplicants: TDataSource;
DataSourceAddr: TDataSource;
IBTableTel: TIBTable;
IBTableEduc: TIBTable;
IBTableApplicants: TIBTable;
IBTableAddresses: TIBTable;
IBQuery1: TIBQuery;
procedure ButtonFindTClick(Sender: TObject);
procedure ButtonFindOClick(Sender: TObject);
procedure ButtonFindAClick(Sender: TObject);
private
{ Private declarations }
public
procedure Initialize(const ADataBase: TIBDatabase; const ATransaction: TIBTransaction);
{ Public declarations }
end;
var
FormApplicants: TFormApplicants;
implementation
{$R *.dfm}
procedure TFormApplicants.Initialize(const ADataBase: TIBDatabase; const ATransaction: TIBTransaction);
begin
IBTableTel.Database := ADataBase;
IBTableEduc.Database := ADataBase;
IBTableApplicants.Database := ADataBase;
IBTableAddresses.Database := ADataBase;
IBQuery1.Database := ADataBase;
IBTableTel.Transaction := ATransaction;
IBTableEduc.Transaction := ATransaction;
IBTableApplicants.Transaction := ATransaction;
IBTableAddresses.Transaction := ATransaction;
IBQuery1.Transaction := ATransaction;
IBTableTel.Active := true;
IBTableEduc.Active := true;
IBTableApplicants.Active := true;
IBTableAddresses.Active := true;
end;
procedure TFormApplicants.ButtonFindTClick(Sender: TObject);
var
app_id : Integer;
begin
IBQuery1.Close;
IBQuery1.SQL.SetText(
'SELECT tels.ID_APPLICANT, appl.* ' +
'FROM TELEFONS tels, APPLICANTS appl ' +
'WHERE tels.ID_APPLICANT=appl.ID_APPLICANT ' +
'and (tels.DOMASHNI like :pm_tel ' +
'or tels.RABOCHI like :pm_tel ' +
'or tels.SOTOVY like :pm_tel) ' +
'and appl.FAMILIY like :pm_family ' +
'and appl.NAME like :pm_name ' +
'and appl.SECOND_NAME like :pm_sec_name');
IBQuery1.ParamByName('pm_tel').AsString := EditPhoneT.Text + '%';
IBQuery1.ParamByName('pm_family').AsString := EditFamilyT.Text + '%';
IBQuery1.ParamByName('pm_name').AsString := EditNameT.Text + '%';
IBQuery1.ParamByName('pm_sec_name').AsString := EditSecNameT.Text + '%';
IBQuery1.Open;
app_id := IBQuery1.fieldbyname('ID_APPLICANT').AsInteger;
if app_id <> 0 then
begin
IBTableApplicants.Locate('ID_APPLICANT', app_id, [loPartialKey]);
end;
end;
procedure TFormApplicants.ButtonFindOClick(Sender: TObject);
var
app_id : Integer;
begin
IBQuery1.Close;
IBQuery1.SQL.Text :=
'SELECT appl.ID_APPLICANT ' +
'FROM APPLICANTS appl ' +
'WHERE appl.FAMILIY like :pm_family ' +
'and appl.NAME like :pm_name ' +
'and appl.SECOND_NAME like :pm_sec_name';
IBQuery1.ParamByName('pm_family').AsString := EditFamilyO.Text + '%';
IBQuery1.ParamByName('pm_name').AsString := EditNameO.Text + '%';
IBQuery1.ParamByName('pm_sec_name').AsString := EditSecNameO.Text + '%';
IBQuery1.Open;
app_id := IBQuery1.fieldbyname('ID_APPLICANT').AsInteger;
if app_id <> 0 then
begin
IBTableApplicants.Locate('ID_APPLICANT', app_id, [loPartialKey]);
end;
end;
procedure TFormApplicants.ButtonFindAClick(Sender: TObject);
var
app_id : Integer;
begin
IBQuery1.Close;
IBQuery1.SQL.Text :=
'SELECT addr.ID_APPLICANT, appl.ID_APPLICANT ' +
'FROM ADDRESSES addr, APPLICANTS appl ' +
'WHERE addr.ID_APPLICANT=appl.ID_APPLICANT ' +
'and appl.FAMILIY like :pm_family ' +
'and appl.NAME like :pm_name ' +
'and appl.SECOND_NAME like :pm_sec_name ' +
'and addr.GOROD like :pm_city ' +
'and addr.ULICA like :pm_street';
IBQuery1.ParamByName('pm_family').AsString := EditFamilyA.Text + '%';
IBQuery1.ParamByName('pm_name').AsString := EditNameA.Text + '%';
IBQuery1.ParamByName('pm_sec_name').AsString := EditSecNameA.Text + '%';
IBQuery1.ParamByName('pm_city').AsString := EditCityA.Text + '%';
IBQuery1.ParamByName('pm_street').AsString := EditStreetA.Text + '%';
IBQuery1.Open;
app_id := IBQuery1.fieldbyname('ID_APPLICANT').AsInteger;
if app_id <> 0 then
begin
IBTableApplicants.Locate('ID_APPLICANT', app_id, [loPartialKey]);
end;
end;
end.
|