2. Экспериментальный раздел
2.1. Описание процесса отладки
Успешное завершение процесса компиляции не означает, что в программе нет ошибок. Убедиться, что программа работает правильно можно только в процессе проверки ее работоспособности, который называется тестирование.
Обычно программа редко сразу начинает работать так, как надо, или работает правильно только на некотором ограниченном наборе исходных данных. Это свидетельствует о том, что в программе есть алгоритмические ошибки. Процесс поиска и устранение ошибок называется отладкой.
Delphi обладает мощнейшим, встроенным в редактор графическим отладчиком, позволяющим находить и устранять ошибки в коде. Мы можем установить точки остановки, проверить и изменить переменные, при помощи пошагового выполнения в точности понять поведение программы.
В процессе отладки программы я столкнулся с ошибкой. Эта ошибка возникла, когда программой не была найдена база данных.
Исправил я эту ошибку, создав папку «BD» и поместил в неё базу «BD». Далее в свойстве DatabaseName компонента IBDatabase1 я написал следуюшее:
BD\BD.gdb
Программа автоматически определяет свое место положения и сообщает компоненту IBDatabase путь до базы данных.
2.2. Характеристика программыРазработанный программный продукт представляет собой программу, которая формирует базу данных и соответствующее приложение для автоматизации ведения кадрового учёта некоторого предприятия.
При запуске программы появляется окошко, содержащее компоненты визуализирующие содержимое базы данных, кнопки, с помощью которых можно добавлять, изменять, удалять записи в базе данных.
Окно о программе
2.4. Инструкция пользователяДля работы в данной программе вам не потребуются большие навыки работы с Windows-приложениями. Сам интерфейс программы прост и ясен.
Для начала работы необходимо в корневой директории диска открыть папку «Анкетные данные», в которой находиться программа и запустить файл Анкетные данные.exe. При запуске программы на экране появиться главное окно в котором вы можите просмотреть все личные данные. При нажатии на кнопку «Поиск» можно произвести поиск по трем полям: фамилия, пол, ИНН. При нажатии на кнопку «Сортировка» можно провести сортировку по полям указанным в программе.
При нажатии на вкладку «Редактировать» возникает окошко с данными той записи, на которой стоит указатель. Здесь можно изменить информацию любую информацию, имеющуюся в базе данных.
При нажатии на кнопку «Фильтрация» можно включить или выключить фильтр. Фильтрация происходит по всем полям базы данных.
При выборе вкладки «Добавление записи» можно добавить в базу свои анкетные данные предварительно заполнив все поля после чего нажимаем на кнопку «Добавить» поля добавляются. Также можно добавить свою фотографию нажав на кнопку «Добавить фото» и прописать путь к своей фотографии.
При нажатии на вкладку «Редактирование записей» возникает окошко с данными той записи, на которой стоит указатель. Здесь можно изменить информацию любую информацию, имеющуюся в базе данных.
Чтобы вывести распечатать анкетные данные в главном окне выбираем нужное поле нажимаем кнопку «Отчет» и распечатываем.
При нажатии на кнопку «О программе» на панели сверху, возникает окно с информацией о разработчике данного программного продукта.
Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить Borland Delphi и Microsoft Visual Basic. В основе систем быстрой разработки (RAD-систем, Rapid Application Development — среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий.
Программный продукт, разработанный в рамках данного курсового проекта, предназначается для проектирования баз данных и соответствующего приложение для автоматизации ведения кадрового учёта некоторого предприятия.
Программа имеет возможности фильтровать записи, осуществлять поиск необходимой записи, печатать записи, содержащиеся в базе.
1. Бобровский С.И. Delphi7. Учебный курс.- СПб.: Питер.2004.
2. Избачков Ю. С., Петров В. Н. Информационные системы: Учебник. - СПб.: Питер, 2005.
3. Волков Ю.С., Петров В.Н. Информационные системы. - СПб.: Питер. 2005.
4. Рудаков А. В. Технология разработки программных продуктов: Учеб. пособие. – М.: Издательский центр «Академия», 2005.
5. Стандартная документация Delphi.
Приложение
Основной модуль приложения
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {DataModule2: TDataModule},
Unit3 in 'Unit3.pas' {Form3},
Unit4 in 'Unit4.pas' {Form4},
Unit5 in 'Unit5.pas' {Form5};
{$R *.res}
begin
Application.Initialize;
Application.Title := 'Àíêåòíûå äàííûå';
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TDataModule2, DataModule2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm5, Form5);
Application.Run;
end.
Модуль хранения невизуальных компонентов
unit Unit2;
interface
uses
SysUtils, Classes, IBDatabase, DB;
type
TDataModule2 = class(TDataModule)
IBDatabase1: TIBDatabase;
IBTransaction1: TIBTransaction;
private
{ Private declarations }
public
{ Public declarations }
end;
var
DataModule2: TDataModule2;
implementation
{$R *.dfm}
end.
Модуль основной формы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, Grids, DBGrids, IBCustomDataSet, IBTable, ExtCtrls,
StdCtrls, Mask, DBCtrls, XPMan, Menus, IBQuery, ComCtrls, ExtDlgs;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
Panel1: TPanel;
Panel2: TPanel;
DBGrid1: TDBGrid;
XPManifest1: TXPManifest;
OpenDialog1: TOpenDialog;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
IBQuery1: TIBQuery;
IBQuery2: TIBQuery;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
GroupBox4: TGroupBox;
Label19: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Edit18: TEdit;
Edit20: TEdit;
Edit21: TEdit;
Edit22: TEdit;
GroupBox5: TGroupBox;
Label24: TLabel;
Label25: TLabel;
Edit23: TEdit;
Edit24: TEdit;
GroupBox2: TGroupBox;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit15: TEdit;
Edit14: TEdit;
GroupBox3: TGroupBox;
Label17: TLabel;
Label18: TLabel;
Label20: TLabel;
Edit16: TEdit;
Edit17: TEdit;
Edit19: TEdit;
GroupBox6: TGroupBox;
Label28: TLabel;
Label29: TLabel;
Edit27: TEdit;
Edit28: TEdit;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label26: TLabel;
Label27: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit5: TEdit;
Edit4: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit25: TEdit;
Edit26: TEdit;
Button1: TButton;
Button3: TButton;
TabSheet3: TTabSheet;
IBQuery1NOM: TSmallintField;
IBQuery1FAM: TIBStringField;
IBQuery1NAME: TIBStringField;
IBQuery1OTCH: TIBStringField;
IBQuery1POL: TIBStringField;
IBQuery1ROST: TIBStringField;
IBQuery1VES: TIBStringField;
IBQuery1FOTO: TBlobField;
IBQuery1DR: TDateField;
IBQuery1ADR_STR: TIBStringField;
IBQuery1ADR_OBL: TIBStringField;
IBQuery1ADR_GOR: TIBStringField;
IBQuery1ADR_YL: TIBStringField;
IBQuery1ADR_DOM: TIBStringField;
IBQuery1ADR_KV: TIBStringField;
IBQuery1ADR_IND: TIBStringField;
IBQuery1ADR_TEL: TIBStringField;
IBQuery1MROZ_STR: TIBStringField;
IBQuery1MROZ_OBL: TIBStringField;
IBQuery1MROZ_GOR: TIBStringField;
IBQuery1GRAZDAN: TIBStringField;
IBQuery1OBRAZOV: TIBStringField;
IBQuery1NOM_STRAX_SVED: TIBStringField;
IBQuery1INN: TIBStringField;
IBQuery1TRYD_KN_SERIYA: TIBStringField;
IBQuery1TRYD_KN_NOMER: TIBStringField;
IBQuery1PASPOST_NOM: TIBStringField;
IBQuery1PASPOST_SER: TIBStringField;
IBQuery1PASPOST_VIDAN: TIBStringField;
IBQuery1PASPOST_DATA: TDateField;
GroupBox8: TGroupBox;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
Label35: TLabel;
Label36: TLabel;
Label37: TLabel;
Label38: TLabel;
Label39: TLabel;
GroupBox9: TGroupBox;
Label40: TLabel;
Label41: TLabel;
GroupBox10: TGroupBox;
Label42: TLabel;
Label43: TLabel;
Label44: TLabel;
GroupBox11: TGroupBox;
Label45: TLabel;
Label46: TLabel;
Label47: TLabel;
Label48: TLabel;
Label49: TLabel;
Label50: TLabel;
Label51: TLabel;
Label52: TLabel;
GroupBox12: TGroupBox;
Label53: TLabel;
Label54: TLabel;
Label55: TLabel;
Label56: TLabel;
GroupBox13: TGroupBox;
Label57: TLabel;
Label58: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
DBEdit12: TDBEdit;
DBEdit13: TDBEdit;
DBEdit14: TDBEdit;
DBEdit15: TDBEdit;
DBEdit16: TDBEdit;
DBEdit17: TDBEdit;
DBEdit18: TDBEdit;
DBEdit19: TDBEdit;
DBEdit20: TDBEdit;
DBEdit21: TDBEdit;
DBEdit22: TDBEdit;
DBEdit23: TDBEdit;
DBEdit24: TDBEdit;
DBEdit25: TDBEdit;
DBEdit26: TDBEdit;
DBEdit27: TDBEdit;
DBEdit28: TDBEdit;
GroupBox7: TGroupBox;
ComboBox1: TComboBox;
Edit500: TEdit;
Button2: TButton;
DBNavigator3: TDBNavigator;
IBQueryFoto: TIBQuery;
OpenPictureDialog1: TOpenPictureDialog;
DBImage2: TDBImage;
DBImage1: TDBImage;
GroupBox14: TGroupBox;
Label59: TLabel;
Label60: TLabel;
Label61: TLabel;
Label62: TLabel;
Label63: TLabel;
Label64: TLabel;
Label65: TLabel;
Label66: TLabel;
Label67: TLabel;
Label68: TLabel;
Edit29: TEdit;
Edit30: TEdit;
Edit31: TEdit;
Edit32: TEdit;
Edit33: TEdit;
Edit34: TEdit;
Edit35: TEdit;
Edit36: TEdit;
Edit37: TEdit;
GroupBox15: TGroupBox;
Label69: TLabel;
Label70: TLabel;
Edit38: TEdit;
Edit39: TEdit;
GroupBox16: TGroupBox;
Label71: TLabel;
Label72: TLabel;
Label73: TLabel;
Edit40: TEdit;
Edit41: TEdit;
Edit42: TEdit;
GroupBox17: TGroupBox;
Label74: TLabel;
Label75: TLabel;
Label76: TLabel;
Label77: TLabel;
Label78: TLabel;
Label79: TLabel;
Label80: TLabel;
Label81: TLabel;
Edit43: TEdit;
Edit44: TEdit;
Edit45: TEdit;
Edit46: TEdit;
Edit47: TEdit;
Edit48: TEdit;
Edit49: TEdit;
Edit50: TEdit;
GroupBox18: TGroupBox;
Label82: TLabel;
Label83: TLabel;
Edit51: TEdit;
Edit52: TEdit;
GroupBox19: TGroupBox;
Label84: TLabel;
Label85: TLabel;
Label86: TLabel;
Label87: TLabel;
Edit53: TEdit;
Edit54: TEdit;
Edit55: TEdit;
Edit56: TEdit;
Button4: TButton;
IBQuery3: TIBQuery;
DBImage3: TDBImage;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
Button5: TButton;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
IBQuery4: TIBQuery;
N18: TMenuItem;
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure IBQuery1AfterScroll(DataSet: TDataSet);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N18Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3, Unit4, Unit5;
{$R *.dfm}
procedure TForm1.FormDestroy(Sender: TObject);
begin
IBQuery1.Close;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute Then
begin
DBImage2.Picture.LoadFromFile(OpenPictureDialog1.FileName);
IBQueryFoto.ParamByName('FOTO').LoadFromFile(OpenPictureDialog1.FileName,ftBlob);
IBQueryFoto.ParamByName('Nom').Value := IBQuery1.FieldByName('Nom').Value;
Try
IBQueryFoto.ExecSQL;
Except
DataModule2.IBTransaction1.RollbackRetaining;
ShowMessage('Ошибка установки фотографии');
Exit;
End;
DataModule2.IBTransaction1.CommitRetaining;
IBQuery1.Close;
IBQuery1.Open;
ShowMessage('Фотография установлена');
end;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
s : String;
begin
case ComboBox1.ItemIndex of
0 : S := 'Fam';
1 : S := 'Pol';
2 : S := 'INN';
end;
IBQuery1.Locate(S, Edit500.Text,[loPartialKey]);
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Form3.QuickRep1.Preview;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
IBQuery2.Params.ParamByName('Fam').Value:=Edit1.Text;
IBQuery2.Params.ParamByName('Name').Value:=Edit2.Text;
IBQuery2.Params.ParamByName('Otch').Value:=Edit3.Text;
IBQuery2.Params.ParamByName('Pol').Value:=Edit4.Text;
IBQuery2.Params.ParamByName('DR').Value:=Edit5.Text;
IBQuery2.Params.ParamByName('Ves').Value:=Edit6.Text;
IBQuery2.Params.ParamByName('Rost').Value:=Edit7.Text;
IBQuery2.Params.ParamByName('Adr_str').Value:=Edit8.Text;
IBQuery2.Params.ParamByName('Adr_obl').Value:=Edit9.Text;
IBQuery2.Params.ParamByName('Adr_gor').Value:=Edit10.Text;
IBQuery2.Params.ParamByName('Adr_yl').Value:=Edit11.Text;
IBQuery2.Params.ParamByName('Adr_dom').Value:=Edit12.Text;
IBQuery2.Params.ParamByName('Adr_kv').Value:=Edit13.Text;
IBQuery2.Params.ParamByName('Adr_ind').Value:=Edit14.Text;
IBQuery2.Params.ParamByName('Adr_tel').Value:=Edit15.Text;
IBQuery2.Params.ParamByName('Mroz_str').Value:=Edit16.Text;
IBQuery2.Params.ParamByName('Mroz_obl').Value:=Edit17.Text;
IBQuery2.Params.ParamByName('Paspost_nom').Value:=Edit18.Text;
IBQuery2.Params.ParamByName('Mroz_gor').Value:=Edit19.Text;
IBQuery2.Params.ParamByName('Paspost_ser').Value:=Edit20.Text;
IBQuery2.Params.ParamByName('Paspost_vidan').Value:=Edit21.Text;
IBQuery2.Params.ParamByName('Paspost_data').Value:=Edit22.Text;
IBQuery2.Params.ParamByName('Tryd_kn_seriya').Value:=Edit23.Text;
IBQuery2.Params.ParamByName('Tryd_kn_nomer').Value:=Edit24.Text;
IBQuery2.Params.ParamByName('Obrazov').Value:=Edit25.Text;
IBQuery2.Params.ParamByName('Grazdan').Value:=Edit26.Text;
IBQuery2.Params.ParamByName('Nom_strax_sved').Value:=Edit27.Text;
IBQuery2.Params.ParamByName('INN').Value:=Edit28.Text;
try
IBQuery2.ExecSQL;
Except
DataModule2.IBTransaction1.RollbackRetaining;
ShowMessage('Невозможно передать запись');
Exit;
end;
DataModule2.IBTransaction1.CommitRetaining;
ShowMessage('Запись добавлена');
IBQuery1.Close;
IBQuery1.Open;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if MessageDlg('Обновить анкетные данные?', mtConfirmation, [mbYes, mbNo],0)=mrYes then
begin
IBQuery4.Params.ParamByName('Nom').Value:=IBQuery1NOM.Value;
IBQuery4.Params.ParamByName('Fam').Value:=Edit29.Text;
IBQuery4.Params.ParamByName('Name').Value:=Edit30.Text;
IBQuery4.Params.ParamByName('Otch').Value:=Edit31.Text;
IBQuery4.Params.ParamByName('Pol').Value:=Edit33.Text;
IBQuery4.Params.ParamByName('DR').Value:=Edit32.Text;
IBQuery4.Params.ParamByName('Ves').Value:=Edit34.Text;
IBQuery4.Params.ParamByName('Rost').Value:=Edit35.Text;
IBQuery4.Params.ParamByName('Adr_str').Value:=Edit43.Text;
IBQuery4.Params.ParamByName('Adr_obl').Value:=Edit44.Text;
IBQuery4.Params.ParamByName('Adr_gor').Value:=Edit45.Text;
IBQuery4.Params.ParamByName('Adr_yl').Value:=Edit46.Text;
IBQuery4.Params.ParamByName('Adr_dom').Value:=Edit47.Text;
IBQuery4.Params.ParamByName('Adr_kv').Value:=Edit48.Text;
IBQuery4.Params.ParamByName('Adr_ind').Value:=Edit50.Text;
IBQuery4.Params.ParamByName('Adr_tel').Value:=Edit49.Text;
IBQuery4.Params.ParamByName('Mroz_str').Value:=Edit40.Text;
IBQuery4.Params.ParamByName('Mroz_obl').Value:=Edit41.Text;
IBQuery4.Params.ParamByName('Paspost_nom').Value:=Edit53.Text;
IBQuery4.Params.ParamByName('Mroz_gor').Value:=Edit42.Text;
IBQuery4.Params.ParamByName('Paspost_ser').Value:=Edit54.Text;
IBQuery4.Params.ParamByName('Paspost_vidan').Value:=Edit55.Text;
IBQuery4.Params.ParamByName('Paspost_data').Value:=Edit56.Text;
IBQuery4.Params.ParamByName('Tryd_kn_seriya').Value:=Edit51.Text;
IBQuery4.Params.ParamByName('Tryd_kn_nomer').Value:=Edit52.Text;
IBQuery4.Params.ParamByName('Obrazov').Value:=Edit36.Text;
IBQuery4.Params.ParamByName('Grazdan').Value:=Edit37.Text;
IBQuery4.Params.ParamByName('Nom_strax_sved').Value:=Edit38.Text;
IBQuery4.Params.ParamByName('INN').Value:=Edit39.Text;
try
IBQuery4.ExecSQL;
Except
DataModule2.IBTransaction1.RollbackRetaining;
ShowMessage('Запись не добавлена');
exit;
end;
DataModule2.IBTransaction1.CommitRetaining;
ShowMessage('Запись обновлена');
IBQuery1.Close;
IBQuery1.Open;
end;
end;
procedure TForm1.IBQuery1AfterScroll(DataSet: TDataSet);
begin
if IBQuery1.FieldValues['Fam']<> null then
Edit29.Text:=IBQuery1.FieldValues['Fam'];
if IBQuery1.FieldValues['Name']<> null then
Edit30.Text:=IBQuery1.FieldValues['Name'];
if IBQuery1.FieldValues['Otch']<> null then
Edit31.Text:=IBQuery1.FieldValues['Otch'];
if IBQuery1.FieldValues['Pol']<> null then
Edit33.Text:=IBQuery1.FieldValues['Pol'];
if IBQuery1.FieldValues['DR']<> null then
Edit32.Text:=IBQuery1.FieldValues['DR'];
if IBQuery1.FieldValues['Ves']<> null then
Edit34.Text:=IBQuery1.FieldValues['Ves'];
if IBQuery1.FieldValues['Rost']<> null then
Edit35.Text:=IBQuery1.FieldValues['Rost'];
if IBQuery1.FieldValues['Adr_str']<> null then
Edit43.Text:=IBQuery1.FieldValues['Adr_str'];
if IBQuery1.FieldValues['Adr_obl']<> null then
Edit44.Text:=IBQuery1.FieldValues['Adr_obl'];
if IBQuery1.FieldValues['Adr_gor']<> null then
Edit45.Text:=IBQuery1.FieldValues['Adr_gor'];
if IBQuery1.FieldValues['Adr_yl']<> null then
Edit46.Text:=IBQuery1.FieldValues['Adr_yl'];
if IBQuery1.FieldValues['Adr_dom']<> null then
Edit47.Text:=IBQuery1.FieldValues['Adr_dom'];
if IBQuery1.FieldValues['Adr_kv']<> null then
Edit48.Text:=IBQuery1.FieldValues['Adr_kv'];
if IBQuery1.FieldValues['Adr_ind']<> null then
Edit50.Text:=IBQuery1.FieldValues['Adr_ind'];
if IBQuery1.FieldValues['Adr_tel']<> null then
Edit49.Text:=IBQuery1.FieldValues['Adr_tel'];
if IBQuery1.FieldValues['Mroz_str']<> null then
Edit40.Text:=IBQuery1.FieldValues['Mroz_str'];
if IBQuery1.FieldValues['Mroz_obl']<> null then
Edit41.Text:=IBQuery1.FieldValues['Mroz_obl'];
if IBQuery1.FieldValues['Paspost_nom']<> null then
Edit53.Text:=IBQuery1.FieldValues['Paspost_nom'];
if IBQuery1.FieldValues['Mroz_gor']<> null then
Edit42.Text:=IBQuery1.FieldValues['Mroz_gor'];
if IBQuery1.FieldValues['Paspost_ser']<> null then
Edit54.Text:=IBQuery1.FieldValues['Paspost_ser'];
if IBQuery1.FieldValues['Paspost_vidan']<> null then
Edit55.Text:=IBQuery1.FieldValues['Paspost_vidan'];
if IBQuery1.FieldValues['Paspost_data']<> null then
Edit56.Text:=IBQuery1.FieldValues['Paspost_data'];
if IBQuery1.FieldValues['Tryd_kn_seriya']<> null then
Edit51.Text:=IBQuery1.FieldValues['Tryd_kn_seriya'];
if IBQuery1.FieldValues['Tryd_kn_nomer']<> null then
Edit52.Text:=IBQuery1.FieldValues['Tryd_kn_nomer'];
if IBQuery1.FieldValues['Obrazov']<> null then
Edit36.Text:=IBQuery1.FieldValues['Obrazov'];
if IBQuery1.FieldValues['Grazdan']<> null then
Edit37.Text:=IBQuery1.FieldValues['Grazdan'];
if IBQuery1.FieldValues['Nom_strax_sved']<> null then
Edit38.Text:=IBQuery1.FieldValues['Nom_strax_sved'];
if IBQuery1.FieldValues['INN']<> null then
Edit39.Text:=IBQuery1.FieldValues['INN'];
end;
procedure TForm1.N5Click(Sender: TObject);
begin
Form4.Notebook1.PageIndex := 0;
Form4.GroupBox1.Caption := ' По фамилии: ';
Form4.ShowModal;
end;
procedure TForm1.N6Click(Sender: TObject);
begin
Form4.Notebook1.PageIndex := 1;
Form4.GroupBox1.Caption := ' По полу: ';
Form4.ShowModal;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
Form4.Notebook1.PageIndex := 2;
Form4.GroupBox1.Caption := ' По дате рождения: ';
Form4.ShowModal;
end;
procedure TForm1.N9Click(Sender: TObject);
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select * from anketa order by fam');
IBQuery1.Open;
end;
procedure TForm1.N10Click(Sender: TObject);
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select * from anketa order by dr');
IBQuery1.Open;
end;
procedure TForm1.N11Click(Sender: TObject);
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select * from anketa order by rost');
IBQuery1.Open;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute Then
begin
DBImage3.Picture.LoadFromFile(OpenPictureDialog1.FileName);
IBQueryFoto.ParamByName('FOTO').LoadFromFile(OpenPictureDialog1.FileName,ftBlob);
IBQueryFoto.ParamByName('Nom').Value := IBQuery1.FieldByName('Nom').Value;
Try
IBQueryFoto.ExecSQL;
Except
DataModule2.IBTransaction1.RollbackRetaining;
ShowMessage('Ошибка установки фотографии');
Exit;
End;
DataModule2.IBTransaction1.CommitRetaining;
IBQuery1.Close;
IBQuery1.Open;
ShowMessage('Фотография установлена');
end;
end;
procedure TForm1.N13Click(Sender: TObject);
begin
PageControl1.ActivePageIndex := 1;
end;
procedure TForm1.N14Click(Sender: TObject);
begin
PageControl1.ActivePageIndex := 2;
end;
procedure TForm1.N15Click(Sender: TObject);
begin
if MessageBox(Handle,'Вы действительно хотите удалить запись?','Подтверждение удаления', MB_YESNO or MB_ICONWARNING)=mrYes then
begin
IBQuery3.ParamByName('NOM').Value := IBQuery1.FieldByName('NOM').Value;
Try
IBQuery3.ExecSQL;
Except
DataModule2.IBTransaction1.RollbackRetaining;
MessageBox(Handle,'Невозможно удалить запись.','Ошибка удаления записи', MB_OK or MB_ICONERROR);
Exit;
End;
DataModule2.IBTransaction1.CommitRetaining;
IBQuery1.Close;
IBQuery1.Open;
MessageBox(Handle,'Запись удалина.','Событие', MB_OK or MB_ICONINFORMATION);
end;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
IBQuery1.Open;
end;
procedure TForm1.N16Click(Sender: TObject);
begin
Form5.ShowModal;
end;
procedure TForm1.N18Click(Sender: TObject);
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('SELECT * FROM ANKETA');
IBQuery1.Open;
end;
end.
Модуль формы с фильтрацией
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm4 = class(TForm)
GroupBox1: TGroupBox;
Notebook1: TNotebook;
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Button4: TButton;
Button5: TButton;
Edit2: TEdit;
Label2: TLabel;
Label3: TLabel;
Edit3: TEdit;
Button6: TButton;
Button7: TButton;
Button8: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit1, Unit2, Unit3;
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
begin
Form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
Form1.IBQuery1.SQL.Add('SELECT * FROM ANKETA WHERE Fam='+#39+Edit1.text+#39'');
Form1.IBQuery1.Open;
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
Form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
Form1.IBQuery1.SQL.Add('SELECT * FROM ANKETA');
Form1.IBQuery1.Open;
end;
procedure TForm4.Button3Click(Sender: TObject);
begin
Edit1.Text:='';
end;
procedure TForm4.Button5Click(Sender: TObject);
begin
Form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
Form1.IBQuery1.SQL.Add('SELECT * FROM ANKETA');
Form1.IBQuery1.Open;
end;
procedure TForm4.Button4Click(Sender: TObject);
begin
Form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
if RadioButton1.Checked=true then
Form1.IBQuery1.SQL.Add('SELECT * FROM ANKETA WHERE POL='+#39+'М'+#39);
if RadioButton2.Checked=true then
Form1.IBQuery1.SQL.Add('SELECT * FROM ANKETA WHERE POL='+#39+'Ж'+#39);
Form1.IBQuery1.Open;
end;
procedure TForm4.Button6Click(Sender: TObject);
begin
Form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
Form1.IBQuery1.SQL.Add('SELECT * FROM ANKETA WHERE(DR>='+#39+Edit2.text+#39+') and (DR<='+#39+Edit3.text+#39+') ');
Form1.IBQuery1.Open;
end;
procedure TForm4.Button8Click(Sender: TObject);
begin
Edit2.Text:='';
Edit3.Text:='';
end;
procedure TForm4.Button7Click(Sender: TObject);
begin
Form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
Form1.IBQuery1.SQL.Add('SELECT * FROM ANKETA');
Form1.IBQuery1.Open;
end;
end.
... разрешено исправлять существенные ошибки предшествующего отчетного года без ретроспективного пересчета. Это новшество существенно упростит составление отчетности. 1.2 Автоматизация бухгалтерского учета на предприятиях малого бизнеса Руководителю российского предприятия сегодня приходится принимать решения в условиях неопределенности и риска, что вынуждает его постоянно держать под ...
... Вид в режиме конструктора: Сам отчет см. приложение№1. Вид отчета в режиме конструктора. Заключение В результате проделанной работы мы создали базу данных по автоматизации учета кадров предприятия, позволяющую выполнять необходимые задачи и функции, связанные с обработкой данных по количеству сотрудников, фонду заработной платы, подразделениям и т.д. На ...
... . В целях обеспечения сопоставимости данных бухгалтерского учета изменения учетной политики должны вводиться с начала финансового года. Глава 2. Действующая организация первичного учета в КГУ «Светлинский лесхоз». 2.1. Виды документов по учету имущества организации. В КГУ «Светлинский лесхоз» применяются следующие документы по учету имущества: Инвентарная карточка учета основных средств ...
... увеличилась на 2 человека и за 2003-2004 г. на 2 человека. Рост числа работников обусловлен в частности с увеличением потребности в обслуживающем и производственном персонале. 2. ОСНОВЫ ОРГАНИЗАЦИИ БУХГАЛТЕРСКОГО УЧЕТА НА ПРЕДПРИЯТИИ В соответствии с Гражданским кодексом РФ юридическим лицом признается организация, которая имеет в собственности, хозяйственном ведении или оперативном управлении ...
0 комментариев