Автоматизація ведення бази даних індивідуальних програм реабілітації інвалідів

Проектування бази даних та інтерфейсу програми. Розробка бази даних за допомогою Firebird 2.5. Контроль коректності вхідних та вихідних даних. Додавання та редагування інформації. Вплив електронно-обчислювальних машин на стан здоров'я користувачів.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 12.10.2015
Размер файла 4,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

dali:=true;

if dali=true then

begin

with DataModule1.IBQuery do

begin

Active := False;

SQL.Clear;

SQL.Add('SELECT GEN_ID(GEN_OS_KARTA_ID,1) FROM RDB$DATABASE');

Active := True;

fio.Tag:=FieldByName('GEN_ID').AsInteger;

Close;

SQL.Clear;

SQL.Add('INSERT INTO OS_karta(fio, osvita, dr, index1, sex, gr_inv, id_prof, obl, r_obl, punkt, r_punkt, tel, street, work, id_chel)');

SQL.Add('VALUES(:fio, :osvita, :dr, :index1, :sex, :gr_inv, :id_prof, :obl, :r_obl, :punkt, :r_punkt, :tel, :street, :work, :id_chel)');

ParamByName('fio').Value:=fio.Text;

ParamByName('osvita').Value:=c_osv.Tag;

ParamByName('dr').AsDate:=DateTimePicker1.Date;

ParamByName('index1').Value:=StrToInt(index.text);

ParamByName('sex').Value:=c_sex.Tag;

ParamByName('gr_inv').Value:=c_gr.Tag;

ParamByName('id_prof').Value:=c_prof.Tag;

ParamByName('obl').Value:=c_obl.Tag;

ParamByName('r_obl').Value:=c_r_obl.Tag;

ParamByName('punkt').Value:=c_nas_punkt.Tag;

ParamByName('r_punkt').Value:=c_r_nas_punkt.Tag;

ParamByName('tel').value:=tel.Text;

ParamByName('street').value:=street.Text;

ParamByName('work').value:=work.Text;

ParamByName('id_chel').Value:=fio.Tag;

try

ExecSQL;

Application.MessageBox('Дані записано','Увага!',MB_OK+MB_Iconinformation);

m_dd_ipr.Enabled:=true;

m_add_pac.Enabled:=false;

Except

Application.MessageBox('Не вдалося додати запис','Увага!',MB_OK+MB_Iconerror);

end;

end;

end;

end

else Application.MessageBox('Ви невірно заповнили дату народження','Увага!',MB_OK+MB_Iconerror);

end

else Application.MessageBox('Ви заповнили не всі поля','Увага!',MB_OK+MB_Iconerror);

DataModule1.IBQuery3.Active:=false;

DataModule1.IBQuery3.Active:=true;

DataModule1.IBQuery3.Last;

MainForm.StatusBar1.Panels[0].Text := 'Кількість пацієнтів: '+IntToStr(DataModule1.IBQuery3.RecordCount);

end;

procedure TFormAddPacient.FormCreate(Sender: TObject);

begin

DataModule1.IBTable_Sex.Active:=true;

with DataModule1 do

begin

c_sex.Clear;

ibquery4.close();

if not(ibquery4.active) then ibquery4.open();

ibquery4.first();

while not(ibquery4.eof) do

begin

c_sex.items.add(Trim(ibquery4.fieldbyname('SEX').asstring));

ibquery4.next;

end;

ibquery4.first();

end;

procedure TFormAddPacient.FormCreate(Sender: TObject);

begin

DataModule1.IBTable_Sex.Active:=true;

with DataModule1 do

begin

c_sex.Clear;

ibquery4.close();

if not(ibquery4.active) then ibquery4.open();

ibquery4.first();

while not(ibquery4.eof) do

begin

c_sex.items.add(Trim(ibquery4.fieldbyname('SEX').asstring));

ibquery4.next;

end;

ibquery4.first();

end;

...

with DataModule1 do

begin

c_r_nas_punkt.Clear;

if not(ibquery_rajon.active) then ibquery_rajon.open();

ibquery_rajon.first();

while not(ibquery_rajon.eof) do

begin

c_r_nas_punkt.items.add(ibquery_rajon.fieldbyname('RAJON').asstring);

ibquery_rajon.next;

end;

ibquery_rajon.first();

end;

end;

procedure TFormAddPacient.c_sexChange(Sender: TObject);

var

i:integer;

begin

DataModule1.ibquery4.first();

for i:=0 to c_sex.itemindex-1 do begin

DataModule1.ibquery4.Next;

end;

c_sex.Tag:=DataModule1.IBQuery4.fieldbyname('ID_SEX').Value;

end;

...

procedure TFormAddPacient.c_r_nas_punktChange(Sender: TObject);

var

i:integer;

begin

if not DataModule1.IBQuery_rajon.active then DataModule1.IBQuery_rajon.active:=true;

DataModule1.ibquery_rajon.first();

for i:=0 to c_r_nas_punkt.itemindex-1 do begin

DataModule1.ibquery_rajon.Next;

end;

c_r_nas_punkt.Tag:=DataModule1.IBQuery_rajon.fieldbyname('ID_RAJON').Value;

SpeedButton_r_punkt.Visible:=true;

end;

procedure TFormAddPacient.m_dd_iprClick(Sender: TObject);

begin

if ((DataModule1.IBQuery3.RecordCount>0) and (DataModule1.IBQuery3.RecNo>0)) then

begin

if (not Assigned(FormAddIPR)) then

FormAddIPR:=TFormAddIPR.Create(Self);

FormAddIPR.fio.Text:=FormAddPacient.fio.Text;

FormAddIPR.fio.Tag:=FormAddPacient.fio.Tag;

FormAddIPR.Tag:=11;

FormAddIPR.ShowModal();

end;

end;

...

procedure TFormAddPacient.SpeedButton_r_punktClick(Sender: TObject);

begin

if (not Assigned(FormDovidnik)) then

FormDovidnik:=TFormDovidnik.Create(Self);

FormDovidnik.TabSheet2.TabVisible:=true;

FormDovidnik.PageControl1.ActivePage:=FormDovidnik.PageControl1.Pages[1];

FormDovidnik.PageControl1.Pages[1].Caption:='Райони населеного пункту';

DataModule1.IBQuery_rajon.Active:=true;

FormDovidnik.DBGrid7.DataSource:=DataModule1.ds_rajon;

FormDovidnik.Tag:=11;

FormDovidnik.ShowModal();

end;

procedure TFormAddPacient.indexKeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9', #8]) then Key:=#0; end;

procedure TFormAddPacient.telKeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9', #8, '-', ')', '+', '(' ]) then Key:=#0; end;

end.

//Текст модуля Avtoriz

unit Avtoriz;

procedure TFormAvtoriz.m_exitClick(Sender: TObject);

begin

FormAvtoriz.tag:=2;

FormAvtoriz.Visible:=false;

if (not Assigned(MainForm)) then

MainForm:=TMainForm.Create(Self);

MainForm.Show;

FormAvtoriz.Visible:=false;

end;

procedure TFormAvtoriz.m_enterClick(Sender: TObject);

var

f:Textfile;

path,s, key: string;

old_pas, result:string;

i,q:integer;

begin

Key:='9';

path:=ExtractFilePath(Application.ExeName)+'pas.toc';

AssignFile(f,path);

if not FileExists(path) then

begin

Rewrite(f);

Application.MessageBox('Не задано пароль. Будь ласка задайте пароль для програми','Увага',mb_Ok+mb_Iconinformation);

Read(f,s);

CloseFile(f);

end

else

begin

Reset(f);

s:=pas.text;

Read(f,old_pas);

//дешифрование

for i := 1 to Length(old_pas) do

begin

q:=(Ord(old_pas[i])-(Ord(Key[(Pred(i) mod Length(Key))+1])-Ord('0')));

if q<0 then Inc(q,256);

old_pas[i]:=Chr(q);

Result:=old_pas;

end;

CloseFile(f);

//if pas.text='5' then

if pas.text=old_pas then

begin

FormAvtoriz.tag:=1;

FormAvtoriz.Visible:=false;

if (not Assigned(MainForm)) then

MainForm:=TMainForm.Create(Self);

MainForm.Show;

FormAvtoriz.Visible:=false;

end

else

begin

Application.MessageBox('Невірно введено пароль!','Увага',mb_Ok+mb_Iconinformation);

pas.Clear;

m_enter.enabled:=false;

m_exit.enabled:=false;

end;

end;

end;

procedure TFormAvtoriz.RGClick(Sender: TObject);

begin

if RG.ItemIndex=0 then

begin

GroupBox1.Visible:=true;

m_enter.enabled:=true;

m_exit.enabled:=false;

end

else

begin

GroupBox1.Visible:=false;

m_enter.enabled:=false;

m_exit.enabled:=true;

end;

end;

procedure TFormAvtoriz.FormCreate(Sender: TObject);

begin

GroupBox1.Visible:=false;

m_enter.enabled:=false;

m_exit.enabled:=false;

end;

end.

//Текст модуля Dovidnik

unit Dovidnik;

procedure TFormDovidnik.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

TabSheet1.TabVisible:=false;

TabSheet2.TabVisible:=false;

end;

procedure TFormDovidnik.BitBtn_add_mClick(Sender: TObject);

begin

if (not Assigned(FormAddDovMKH)) then

FormAddDovMKH:=TFormAddDovMKH.Create(Self);

if DBGrid8.DataSource=DataModule1.ds_mkh then

begin

FormDovidnik.Tag:=1;

FormAddDovMKH.edit1.Clear;

FormAddDovMKH.edit2.Clear;

end;

if DBGrid8.DataSource=DataModule1.ds_mkh10 then

begin

FormDovidnik.Tag:=2;

FormAddDovMKH.edit1.Clear;

FormAddDovMKH.edit2.Clear;

end;

FormAddDovMKH.ShowModal();

end;

procedure TFormDovidnik.BitBtn_del_mClick(Sender: TObject);

var

i:integer;

begin

if ((FormDovidnik.Tag=1) or (FormDovidnik.Tag=13)) then

begin

if Application.MessageBox('Ви дійсно бажаєте видалити цей запис? Це також видалить всі зв`язані з ним дані','Увага!',mb_YesNo+mb_Iconquestion)=idYes then

begin

with DataModule1 do

begin

IBQuery.Close;

i:=DataModule1.IBQuery_mkh.FieldByName('id_diagnoz').AsInteger;

IBQuery.SQL.Clear;

IBQuery.SQL.Add('Delete From SPR_DIAGNOZ WHERE id_diagnoz='+IntToStr(i));

IBQuery.ExecSQL;

IBQuery_mkh.active:=false;

IBQuery_mkh.active:=true;

end;

end;

end

else if ((FormDovidnik.Tag=2) or (FormDovidnik.Tag=14)) then

begin

if Application.MessageBox('Ви дійсно бажаєте видалити цей запис? Це також видалить всі зв`язані з ним дані','Увага!',mb_YesNo+mb_Iconquestion)=idYes then

begin

with DataModule1 do

begin

IBQuery.Close;

i:=DataModule1.IBQuery_mkh10.FieldByName('id_mkh_10').AsInteger;

IBQuery.SQL.Clear;

IBQuery.SQL.Add('Delete From SPR_MKH_10 WHERE id_mkh_10='+IntToStr(i));

IBQuery.ExecSQL;

IBQuery_mkh10.active:=false;

IBQuery_mkh10.active:=true;

end;

end;

end;

end;

procedure TFormDovidnik.BitBtn_addClick(Sender: TObject);

begin

if (not Assigned(FormAddDov)) then

FormAddDov:=TFormAddDov.Create(Self);

if DBGrid7.DataSource=DataModule1.ds_prof then FormDovidnik.Tag:=3;

if DBGrid7.DataSource=DataModule1.ds_termin then FormDovidnik.Tag:=4;

if DBGrid7.DataSource=DataModule1.ds_obsjag then FormDovidnik.Tag:=5;

if DBGrid7.DataSource=DataModule1.ds_misce then FormDovidnik.Tag:=6;

if DBGrid7.DataSource=DataModule1.ds_prac then FormDovidnik.Tag:=7;

if DBGrid7.DataSource=DataModule1.ds_r_obl then FormDovidnik.Tag:=8;

if DBGrid7.DataSource=DataModule1.ds_obl then FormDovidnik.Tag:=9;

if DBGrid7.DataSource=DataModule1.ds_punkt then FormDovidnik.Tag:=10;

if DBGrid7.DataSource=DataModule1.ds_rajon then FormDovidnik.Tag:=11;

FormAddDov.edit1.Clear;

FormAddDov.ShowModal();

end;

procedure TFormDovidnik.BitBtn_delClick(Sender: TObject);

var

i:integer;

begin

if ((FormDovidnik.Tag=3) or (FormDovidnik.Tag=15)) then

begin

if Application.MessageBox('Ви дійсно бажаєте видалити цей запис? Це також видалить всі зв`язані з ним дані','Увага!',mb_YesNo+mb_Iconquestion)=idYes then

begin

with DataModule1 do

begin

i:=DataModule1.IBQuery_prof.FieldByName('id_prof').AsInteger;

IBQuery.SQL.Clear;

IBQuery.SQL.Add('Delete From SPR_PROF WHERE id_prof='+IntToStr(i));

IBQuery.ExecSQL;

IBQuery_prof.active:=false;

IBQuery_prof.active:=true;

end;

end;

end

else

...

else if ((FormDovidnik.Tag=11) or (FormDovidnik.Tag=23)) then

begin

if Application.MessageBox('Ви дійсно бажаєте видалити цей запис? Це також видалить всі зв`язані з ним дані','Увага!',mb_YesNo+mb_Iconquestion)=idYes then

begin

with DataModule1 do

begin

i:=DataModule1.IBQuery_rajon.FieldByName('id_rajon').AsInteger;

IBQuery.SQL.Clear;

IBQuery.SQL.Add('Delete From SPR_rajon WHERE id_rajon='+IntToStr(i));

IBQuery.ExecSQL;

IBQuery_rajon.active:=false;

IBQuery_rajon.active:=true;

end;

end;

end;

end;

procedure TFormDovidnik.BitBtn_red_mClick(Sender: TObject);

begin

if (not Assigned(FormAddDovMKH)) then

FormAddDovMKH:=TFormAddDovMKH.Create(Self);

if DBGrid8.DataSource=DataModule1.ds_mkh then

begin

FormDovidnik.Tag:=13;

end

else

if DBGrid8.DataSource=DataModule1.ds_mkh10 then

begin

FormDovidnik.Tag:=14;

end;

FormAddDovMKH.ShowModal();

end;

procedure TFormDovidnik.BitBtn_redClick(Sender: TObject);

begin

if DBGrid7.DataSource=DataModule1.ds_prof then begin

if (not Assigned(FormAddDov)) then

FormAddDov:=TFormAddDov.Create(Self);

FormDovidnik.Tag:=15;

FormAddDov.ShowModal();

end

...

else

if DBGrid7.DataSource=DataModule1.ds_rajon then begin

if (not Assigned(FormAddDov)) then

FormAddDov:=TFormAddDov.Create(Self);

FormDovidnik.Tag:=23;

FormAddDov.ShowModal();

end;

end;

end.

//Текст модуля IPRView

unit IPRview;

procedure TFormIPRview.m_delClick(Sender: TObject);

var

i:integer;

begin

if Application.MessageBox('Ви дійсно бажаєте видалити цей запис? Це також видалить всі зв`язані з ним дані','Увага!',mb_YesNo+mb_Iconquestion)=idYes then

begin

with DataModule1 do

begin

IBQuery.Close;

i:=DataModule1.IBQuery_ipr.FieldByName('id_ipr').AsInteger;

IBQuery.SQL.Clear;

IBQuery.SQL.Add('Delete From IPR WHERE id_ipr='+IntToStr(i));

IBQuery.ExecSQL;

IBQuery_ipr.active:=false;

IBQuery_ipr.active:=true;

end;

end;

end;

procedure TFormIPRview.m_redClick(Sender: TObject);

begin

if (not Assigned(FormAddIPR)) then

Application.CreateForm(TFormAddIPR, FormAddIPR);

FormAddIPR.fio.Text:= DataModule1.IBQuery3.fieldbyname('fio').Value;

FormAddIPR.fio.Tag:= DataModule1.IBQuery_ipr.fieldbyname('id_chel').Value;

FormAddIPR.n_pr.Tag:= DataModule1.IBQuery_ipr.fieldbyname('n_prog').Value;

FormAddIPR.Tag:=22;

FormAddIPR.ShowModal();

end;

procedure TFormIPRview.FormActivate(Sender: TObject);

var

kod, id_s:string;

begin

DataModule1.IBQuery_ipr.Active:=false;

DataModule1.IBQuery_ipr.Active:=true;

if DataModule1.IBQuery_ipr.RecordCount>=1 then

begin

m_red.Enabled:=true;

m_del.Enabled:=true;

m_obmej.Enabled:=true;

m_reabil.Enabled:=true;

m_excel.Enabled:=true;

if not DataModule1.IBQuery_vid_obmej.Active then DataModule1.IBQuery_vid_obmej.Active:=true;

DataModule1.IBQuery_vid_obmej.First;

Memo_obmej.Clear;

while not DataModule1.IBQuery_vid_obmej.Eof do

begin

Memo_obmej.Lines.Add(DataModule1.IBQuery_vid_obmej.FieldByName('VID_OBMEJ').Value);

DataModule1.IBQuery_vid_obmej.Next;

end;

Memo_stup.Clear;

if (DataModule1.IBQuery_ipr.Fieldbyname('ID_IPR').Value<>null) then

begin

DataModule1.IBQuery_stup.active:=true;

kod:=DataModule1.IBQuery_ipr.Fieldbyname('ID_IPR').Value;

if not DataModule1.IBQuery_obmej.Active then DataModule1.IBQuery_obmej.Active:=true;

DataModule1.IBQuery_obmej.First;

while not DataModule1.IBQuery_obmej.Eof do

begin

if (DataModule1.IBQuery_obmej.FieldByName('ID_IPR').Value=kod) then

begin

if DataModule1.IBQuery_obmej.fieldbyname('ID_STUP').Value then

id_s:=DataModule1.IBQuery_obmej.fieldbyname('ID_STUP').Value;

DataModule1.IBQuery_stup.Locate('id_stup',id_s,[]);

Memo_stup.Lines.Add(Trim(DataModule1.IBQuery_stup.fieldbyname('STUP').Value));

end;

DataModule1.IBQuery_obmej.Next;

end;

end;

end

else

BEGIN

m_red.Enabled:=false;

m_del.Enabled:=false;

m_obmej.Enabled:=false;

m_reabil.Enabled:=false;

m_excel.Enabled:=false;

END;

if FormAvtoriz.tag=2 then

begin

m_red.Enabled:=false;

m_del.Enabled:=false;

m_reabil.Enabled:=false;

end;

end;

procedure TFormIPRview.DBGrid_iprCellClick(Column: TColumn);

var

kod, id_s:string;

begin

Memo_stup.Clear;

DataModule1.IBQuery_ipr.active:=true;

DataModule1.IBQuery_stup.Active:=true;

if DataModule1.IBQuery_ipr.RecordCount>0 then

begin

kod:=DataModule1.IBQuery_ipr.Fieldbyname('ID_IPR').Value;

if not DataModule1.IBQuery_obmej.Active then DataModule1.IBQuery_obmej.Active:=true;

DataModule1.IBQuery_obmej.First;

while not DataModule1.IBQuery_obmej.Eof do begin

if (DataModule1.IBQuery_obmej.FieldByName('ID_IPR').Value=kod) then

begin

if DataModule1.IBQuery_obmej.fieldbyname('ID_STUP').Value then

id_s:=DataModule1.IBQuery_obmej.fieldbyname('ID_STUP').Value;

DataModule1.IBQuery_stup.Locate('id_stup',id_s,[]);

Memo_stup.Lines.Add(Trim(DataModule1.IBQuery_stup.fieldbyname('STUP').Value));

end;

DataModule1.IBQuery_obmej.Next;

end;

end;

end;

procedure TFormIPRview.m_obmejClick(Sender: TObject);

begin

if obm.Visible=true then obm.Visible:=false

else if obm.Visible=false then obm.Visible:=true;

end;

procedure TFormIPRview.m_reabilClick(Sender: TObject);

var

kod:integer;

begin

if (not Assigned(FormReabil)) then

FormReabil:=TFormReabil.Create(Self);

kod:=DataModule1.IBQuery_ipr.Fieldbyname('ID_IPR').Value;

FormReabil.TreeView.Tag:=kod;

FormReabil.ShowModal();

end;

procedure TFormIPRview.m_excelClick(Sender: TObject);

var

ExcelApp: variant;

MyIni: Tinifile;

slesh:integer;

i, kod, row: integer;

id_ch:integer;

check:boolean;

s, obl, r, robl, ind, st, punkt, propiska, path, ex :string;

begin

ExcelApp := CreateOleObject('Excel.Application');

ExcelApp.Visible := false;

ExcelApp.DisplayAlerts:= false;

ExcelApp.Application.EnableEvents:=False;

ExcelApp.Workbooks.Open('E:\Diplom\1.xlsx', UpdateLinks:=0);

ExcelApp.ActiveWorkBook.Sheets.Item[1].Activate;

id_ch:=DataModule1.IBQuery_ipr.FieldByName('id_chel').value;

DataModule1.IBQuery3.Locate('id_chel',id_ch, []);

MyIni:= TIniFile.Create(extractfilepath(paramstr(0))+'Path.ini');

ex:=MyIni.ReadString('Open','Properties','default value');

check:=MyIni.ReadBool('View', 'CheckboxVal',false);

s:=Trim(DataModule1.IBQuery3.FieldByName('fio').AsString);

slesh:=0;

for i:=0 to length(ex) do

begin

if ex[i]='\' then slesh:=slesh+1;

end;

if slesh>1 then path:=ex+'\'+s+'_'+datetostr(now())+'.xls'

else path:=ex+s+'_'+datetostr(now())+'.xls';

ExcelApp.ActiveWorkbook.SaveAs(path, FileFormat:=-4143, Password:='', WriteResPassword:='', ReadOnlyRecommended:=false, CreateBackup:=false);

ExcelApp.Workbooks.Close;

ExcelApp.Workbooks.Open(path, UpdateLinks:=0);

with DataModule1 do begin

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[20,2]:=DataModule1.IBQuery3.FieldByName('fio').AsString;

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[22,5]:=DataModule1.IBQuery3.FieldByName('dr').AsString;

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[26,3]:=DataModule1.IBQuery3.FieldByName('tel').AsString;

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[30,6]:=DataModule1.IBQuery3.FieldByName('work').AsString;

s:=Trim(ibquery3.Fieldbyname('sex1').Value);

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[23,3]:=s;

s:=Trim(ibquery3.Fieldbyname('id_prof1').Value);

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[29,4]:=s;

s:=Trim(ibquery3.Fieldbyname('osvita1').Value);

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[28,4]:=s;

s:=Trim(ibquery3.Fieldbyname('gr_inv1').Value);

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[32,5]:=s;

punkt:=Trim(ibquery3.Fieldbyname('punkt1').Value);

st:=DataModule1.IBQuery3.FieldByName('street').AsString;

ind:=Trim(DataModule1.IBQuery3.FieldByName('index1').AsString);

robl:=Trim(IBQuery3.FieldByName('r_obl1').AsString);

r:=Trim(IBQuery3.FieldByName('r_punkt1').AsString);

obl:=Trim(IBQuery3.FieldByName('obl1').AsString);

propiska:=ind+', '+obl+' обл., '+robl+'р.обл., '+punkt+', р-н '+r+', '+st;

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[24,5]:=propiska;

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[13,12]:=DataModule1.IBQuery_ipr.FieldByName('n_prog').AsString;

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[17,4]:=DataModule1.IBQuery_ipr.FieldByName('dat_zap').AsString;

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[17,9]:=DataModule1.IBQuery_ipr.FieldByName('msek_n').AsString;

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[33,9]:=DataModule1.IBQuery_ipr.FieldByName('triv_inv').AsString;

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[113,3]:=DataModule1.IBQuery_ipr.FieldByName('dat_spivb').AsString;

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[116,7]:=DataModule1.IBQuery_ipr.FieldByName('dat_kontr').AsString;

if not DataModule1.IBQuery_ipr_skl.Active then DataModule1.IBQuery_ipr_skl.Active:=true;

i:=DataModule1.IBQuery_ipr.FieldByName('id_prog_skl').AsInteger;

DataModule1.IBQuery_ipr_skl.Locate('id_prog_skl',i,[]);

s:=DataModule1.IBQuery_ipr_skl.Fields[1].Value;

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[34,7]:=s;

...

DataModule1.IBQuery_prac.Open;

i:=DataModule1.IBQuery_ipr.FieldByName('sotrudnik').AsInteger;

DataModule1.IBQuery_prac.Locate('id_sotrudnic',i,[]);

s:=DataModule1.IBQuery_prac.Fields[1].Value;

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[135,7]:=s;

DataModule1.IBQuery_obmej.Active:=true;

DataModule1.IBQuery_obmej.First;

while not DataModule1.IBQuery_obmej.Eof do

begin

if DataModule1.IBQuery_obmej.FieldByName('id_ipr').Value=DataModule1.IBQuery_ipr.FieldByName('id_ipr').Value then

begin

i:=DataModule1.IBQuery_obmej.FieldByName('id_vid_obmej').AsInteger;

if i=1 then

begin if DataModule1.IBQuery_obmej.FieldByName('id_stup').AsInteger=1 then

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[44,9]:='X'

else

begin

if DataModule1.IBQuery_obmej.FieldByName('id_stup').AsInteger=2 then

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[44,10]:='X'

else

begin

if DataModule1.IBQuery_obmej.FieldByName('id_stup').AsInteger=3 then

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[44,11]:='X';

end;

end;

end;

...

if i=18 then

begin if DataModule1.IBQuery_obmej.FieldByName('id_stup').AsInteger=1 then

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[52,12]:='X'

else

begin

if DataModule1.IBQuery_obmej.FieldByName('id_stup').AsInteger=2 then

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[52,13]:='X'

else

begin

if DataModule1.IBQuery_obmej.FieldByName('id_stup').AsInteger=3 then

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[52,14]:='X';

end;

end;

end;

end;

DataModule1.IBQuery_obmej.next;

end;

DataModule1.IBQuery_reabil.Active:=true;

if not DataModule1.IBQuery_obsjag.Active then DataModule1.IBQuery_obsjag.Active:=true;

if not DataModule1.IBQuery_termin.Active then DataModule1.IBQuery_termin.Active:=true;

if not DataModule1.IBQuery_misce.Active then DataModule1.IBQuery_misce.Active:=true;

DataModule1.IBQuery_reabil.First;

DataModule1.IBQuery_termin.First;

DataModule1.IBQuery_misce.First;

DataModule1.IBQuery_obsjag.First;

while not DataModule1.IBQuery_reabil.Eof do

begin

if DataModule1.IBQuery_reabil.FieldByName('id_ipr').Value=DataModule1.IBQuery_ipr.FieldByName('id_ipr').Value then

begin

row:=56;

for i:=1 to 51 do

BEGIN

if DataModule1.IBQuery_reabil.FieldByName('id_zah').Value=i then

begin

if i=51 then row:=row+1;

row:=row+i;

kod:=DataModule1.IBQuery_reabil.FieldByName('id_obsyag').Value;

DataModule1.IBQuery_obsjag.Locate('id_obsyag',kod,[]);

s:=Trim(DataModule1.IBQuery_obsjag.Fieldbyname('obsyag').Value);

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[row,4]:=s;

kod:=DataModule1.IBQuery_reabil.FieldByName('id_termin').Value;

DataModule1.IBQuery_termin.Locate('id_termin',kod,[]);

s:=Trim(DataModule1.IBQuery_termin.Fieldbyname('termin').Value);

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[row,7]:=s;

kod:=DataModule1.IBQuery_reabil.FieldByName('id_misce').Value;

DataModule1.IBQuery_misce.Locate('id_misc',kod,[]);

s:=Trim(DataModule1.IBQuery_misce.Fieldbyname('misc').Value);

ExcelApp.ActiveWorkbook.WorkSheets[1].Cells[row,9]:=s;

end;

END;

end;

DataModule1.IBQuery_reabil.next;

end;

end;

if (ExcelApp.ActiveWorkbook.Save) then Application.MessageBox('Документ сформовано','Увага!',mb_OK+mb_Iconinformation);

ExcelApp.Workbooks.Close;

MyIni.Free;

if check then

begin

ExcelApp.Workbooks.Open(path, UpdateLinks:=0);

ExcelApp.Visible:=True;

end

else

begin

ExcelApp := Unassigned;

end;

end;

procedure TFormIPRview.FormShow(Sender: TObject);

begin

DataModule1.IBQuery_ipr.Active:=false;

DataModule1.IBQuery_ipr.Active:=false;

end;

end.

//Текст модуля Nastr

unit Nastr;

procedure TFormNastr.B_obzorClick(Sender: TObject);

procedure TFormNastr.B_obzorClick(Sender: TObject);

begin

If not OpenDialog1.Execute then exit;

Path.Text:=Opendialog1.FileName;

end;

//Текст модуля PathEx

unit PathEx;

unit PathEx;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, jpeg, ExtCtrls, Buttons, StdCtrls, inifiles, Filectrl,ShlObj;

type

TFormPath = class(TForm)

path: TEdit;

obzor: TButton;

Label1: TLabel;

CheckBox1: TCheckBox;

zberej: TBitBtn;

Image1: TImage;

procedure FormShow(Sender: TObject);

procedure zberejClick(Sender: TObject);

procedure obzorClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormPath: TFormPath;

implementation

{$R *.dfm}

function BrowseCallbackProc(hwnd: HWND; uMsg: UINT; lParam: LPARAM; lpData: LPARAM): Integer; stdcall;

begin

if (uMsg = BFFM_INITIALIZED) then

SendMessage(hwnd, BFFM_SETSELECTION, 1, lpData);

BrowseCallbackProc := 0;

end;

function GetFolderDialog(Handle: Integer; Caption: string; var strFolder: string): Boolean;

const

BIF_STATUSTEXT = $0004;

BIF_NEWDIALOGSTYLE = $0040;

BIF_RETURNONLYFSDIRS = $0080;

BIF_SHAREABLE = $0100;

BIF_USENEWUI = BIF_EDITBOX or BIF_NEWDIALOGSTYLE;

var

BrowseInfo: TBrowseInfo;

ItemIDList: PItemIDList;

JtemIDList: PItemIDList;

Path: PAnsiChar;

begin

Result := False;

Path := StrAlloc(MAX_PATH);

SHGetSpecialFolderLocation(Handle, CSIDL_DRIVES, JtemIDList);

with BrowseInfo do

begin

hwndOwner := GetActiveWindow;

pidlRoot := JtemIDList;

SHGetSpecialFolderLocation(hwndOwner, CSIDL_DRIVES, JtemIDList);

{ Возврат названия выбранного элемента }

pszDisplayName := StrAlloc(MAX_PATH);

{ Установка названия диалога выбора папки }

lpszTitle := PChar(Caption); //

{ Флаги, контролирующие возврат }

lpfn := @BrowseCallbackProc;

{ Дополнительная информация, которая отдаётся обратно в обратный вызов (callback) }

lParam := LongInt(PChar(strFolder));

end;

ItemIDList := SHBrowseForFolder(BrowseInfo);

if (ItemIDList <> nil) then

if SHGetPathFromIDList(ItemIDList, Path) then

begin

strFolder := Path;

Result := True;

end;

end;

procedure TFormPath.FormShow(Sender: TObject);

var

MyIni: Tinifile;

begin

MyIni:= TIniFile.Create(extractfilepath(paramstr(0))+'Path.ini');

PATH.Text:=MyIni.ReadString('Open','Properties','default value');

checkbox1.Checked:=MyIni.ReadBool('View', 'CheckboxVal', false);

MyIni.Free;

end;

procedure TFormPath.zberejClick(Sender: TObject);

var

MyIni: Tinifile;

begin

MyIni:= TIniFile.Create(extractfilepath(paramstr(0))+'Path.ini');

MyIni.WriteBool('View', 'CheckboxVal', CheckBox1.Checked);

MyIni.Free;

Close;

end;

procedure TFormPath.obzorClick(Sender: TObject);

var

sFolder: String;

MyIni: Tinifile;

begin

sFolder:='E:\Diplom';

if GetFolderDialog(Application.Handle, 'Оберіть папку для збереження довідок', sFolder) then Path.Text:= sFolder; MyIni:= TIniFile.Create(extractfilepath(paramstr(0))+'Path.ini'); MyIni.WriteString('Open','Properties',Path.Text ); MyIni.WriteBool('View', 'CheckboxVal', CheckBox1.Checked); MyIni.Free;

end;

end.

//Текст модуля DataModule

unit DataModule;

procedure TDataModule1.DataModuleCreate(Sender: TObject);

var

MyIni: Tinifile;

PathToDb:string;

begin

DataModule1.IBDatabase1.Connected:=false;

DataModule1.IBQuery_ipr.Active:=false;

DataModule1.IBQuery2.Active:=false;

DataModule1.IBQuery3.Active:=false;

MyIni:= TIniFile.Create(extractfilepath(paramstr(0))+'PathDB.ini');

if FileExists(MyIni.ReadString('Open','Properties','default value')) then

begin

DataModule1.Tag:=1;

IBDatabase1.DatabaseName:=MyIni.ReadString('Open','Properties','default value');

DataModule1.IBDatabase1.Connected:=true;

end

else

begin

DataModule1.Tag:=2;

MessageDlg('Файл бази даних не знайдено, вкажіть файл бази даних', mtWarning,[mbOK],0);

if (not Assigned(FormNastr)) then

FormNastr:=TFormNastr.Create(Self);

FormNastr.ShowModal();

PathToDb:=FormNastr.path.Text;

MyIni.WriteString('Open','Properties', PathToDb);

try

IBDatabase1.DatabaseName:=MyIni.ReadString('Open','Properties','default value');

DataModule1.IBDatabase1.Connected:=true;

DataModule1.Tag:=1;

except

DataModule1.Tag:=2;

end;

end;

DataModule1.IBQuery_ipr.Active:=true;

DataModule1.IBQuery2.Active:=true;

DataModule1.IBQuery3.Active:=true;

DataModule1.IBTable_Sex.Active:=true;

MyIni.Free;

if (not Assigned(FormAvtoriz)) then

FormAvtoriz:=TFormAvtoriz.Create(Self);

FormAvtoriz.ShowModal();

end;

end.

//Текст модуля Reabil

unit Reabil;

procedure TFormReabil.m_exitClick(Sender: TObject);

begin

Close();

end;

procedure TFormReabil.SetTree(par_level: integer; parent_node:TTreeNode);

var qryTemp:TIBQuery;

curr_node : TTreeNode;

i:integer;

begin

qryTemp:=TIBQuery.Create(Self);

qryTemp.Database:=datamodule1.IBDatabase1;

qryTemp.SQL.Text:='select id_zah, zah, vetka from spr_zah where vetka='+inttostr(par_level)+' order by id_zah';

qryTemp.Open();

(* with datamodule1 do

begin

qrySPR_ZAH. Close();

qrySPR_ZAH.ParamByName('PAR_VETKA').Value:=par_level;

qrySPR_ZAH. Open(); *)

while not(qryTemp.Eof) do

begin

curr_node:=TreeView.Items.AddChild(parent_node, Trim(qryTemp.FieldByName('ZAH').AsString));

i:=qryTemp.FieldByName('ID_ZAH').AsInteger;

curr_node.Data:=@i;

SetTree(i, curr_node);

qryTemp.Next();

end;

qryTemp.Close();

end;

procedure TFormReabil.FormCreate(Sender: TObject);

begin

TreeView.Items.Clear;

SetTree(0, nil);

with DataModule1 do

begin

B_ob.Visible:=false;

B_m.Visible:=false;

B_t.Visible:=false;

IBQuery_z.Active:=true;

IBQuery_obsjag.Active:=true;

while not(IBQuery_obsjag.eof) do

begin

c_obm.items.add(Trim(IBQuery_obsjag.fieldbyname('OBSYAG').asstring));

IBQuery_obsjag.next;

end;

IBQuery_termin.Active:=true;

while not(IBQuery_termin.eof) do

begin

c_termin.items.add(Trim(IBQuery_termin.fieldbyname('TERMIN').asstring));

IBQuery_termin.next;

end;

IBQuery_misce.Active:=true;

while not(IBQuery_misce.eof) do

begin

c_misc.items.add(Trim(IBQuery_misce.fieldbyname('MISC').asstring));

IBQuery_misce.next;

end;

end;

end;

procedure TFormReabil.m_addClick(Sender: TObject);

begin

with DataModule1.IBQuery do begin

Close;

SQL.Clear;

SQL.Add('INSERT INTO Reabil (ID_IPR, ID_OBSYAG, ID_ZAH, ID_TERMIN, ID_MISCE)');

SQL.Add('VALUES(:ID_IPR, :ID_OBSYAG, :ID_ZAH, :ID_TERMIN, :ID_MISCE)');

ParamByName('ID_IPR').Value:=TreeView.Tag;

ParamByName('ID_OBSYAG').Value:=c_obm.Tag;

ParamByName('ID_ZAH').Value:=BitBtnAdd.Tag;

ParamByName('ID_Termin').Value:=c_termin.Tag;

ParamByName('ID_MISCE').Value:=c_misc.Tag;

try

ExecSQL;

Label4.Caption:='Дані записано';

Except

Label4.Caption:='Не вдалося додати запис';

end;

end;

DataModule1.IBQuery_Reabil.Close;

DataModule1.IBQuery_Reabil.Open;

end;

procedure TFormReabil.BitBtnAddClick(Sender: TObject);

var

id1, id2:string;

sovpadenie:boolean;

begin

with DataModule1.IBQuery do begin

Close;

id1:=IntToStr(TreeView.Tag);

id2:=IntToStr(BitBtnAdd.Tag);

sovpadenie:=false;

if not Datamodule1.IBQuery_reabil.Active then Datamodule1.IBQuery_reabil.Active:=true;

Datamodule1.IBQuery_reabil.First;

while not Datamodule1.IBQuery_reabil.Eof do

begin

if ((Datamodule1.IBQuery_reabil.fieldbyname('id_zah').Value=id2) and (Datamodule1.IBQuery_reabil.fieldbyname('id_ipr').Value=id1)) then sovpadenie:=true;

Datamodule1.IBQuery_reabil.next;

end;

if (sovpadenie=false) then

begin

SQL.Clear;

if (BitBtnAdd.Tag<>1)and(BitBtnAdd.Tag<>2)and(BitBtnAdd.Tag<>11)and(BitBtnAdd.Tag<>17)and(BitBtnAdd.Tag<>23)and(BitBtnAdd.Tag<>29)and(BitBtnAdd.Tag<>33)and(BitBtnAdd.Tag<>38)and(BitBtnAdd.Tag<>43) then

begin

SQL.Add('INSERT INTO Reabil (ID_IPR, ID_OBSYAG, ID_ZAH, ID_TERMIN, ID_MISCE)');

SQL.Add('VALUES(:ID_IPR, :ID_OBSYAG, :ID_ZAH, :ID_TERMIN, :ID_MISCE)');

ParamByName('ID_IPR').Value:=TreeView.Tag;

ParamByName('ID_OBSYAG').Value:=c_obm.Tag;

ParamByName('ID_ZAH').Value:=BitBtnAdd.Tag;

ParamByName('ID_Termin').Value:=c_termin.Tag;

ParamByName('ID_MISCE').Value:=c_misc.Tag;

try

ExecSQL;

Label4.Caption:='Дані записано';

Except

Label4.Caption:='Не вдалося додати запис';

end;

end

else Label4.Caption:='Не можна записати дані у заголовок';

end

else

begin

SQL.Clear;

SQL.Add('UPDATE Reabil SET ID_OBSYAG=:ID_OBSYAG, ID_TERMIN=:ID_TERMIN, ID_MISCE=:ID_MISCE where ID_IPR='+id1+' AND ID_ZAH='+id2);

ParamByName('ID_OBSYAG').Value:=c_obm.Tag;

ParamByName('ID_Termin').Value:=c_termin.Tag;

ParamByName('ID_MISCE').Value:=c_misc.Tag;

try

ExecSQL;

Label4.Caption:='Дані перезаписано';

Except

Label4.Caption:='Не вдалося відредагувати запис';

end;

end;

end;

DataModule1.IBQuery_Reabil.Close;

DataModule1.IBQuery_Reabil.Open;

end;

procedure TFormReabil.c_obmChange(Sender: TObject);

var

i:integer;

begin

DataModule1.IBQuery_obsjag.first();

for i:=0 to c_obm.itemindex-1 do begin

DataModule1.IBQuery_obsjag.Next;

end;

c_obm.Tag:=DataModule1.IBQuery_obsjag.fieldbyname('ID_OBSYAG').Value;

end;

procedure TFormReabil.c_terminChange(Sender: TObject);

var

i:integer;

begin

DataModule1.IBQuery_termin.first();

for i:=0 to c_termin.itemindex-1 do begin

DataModule1.IBQuery_termin.Next;

end;

c_termin.Tag:=DataModule1.IBQuery_termin.fieldbyname('ID_TERMIN').Value;

B_t.Visible:=true;

end;

procedure TFormReabil.c_miscChange(Sender: TObject);

var

i:integer;

begin

DataModule1.IBQuery_misce.first();

for i:=0 to c_misc.itemindex-1 do begin

DataModule1.IBQuery_misce.Next;

end;

c_misc.Tag:=DataModule1.IBQuery_misce.fieldbyname('ID_MISC').Value;

B_m.Visible:=true;

end;

procedure TFormReabil.B_obClick(Sender: TObject);

begin

if (not Assigned(FormDovidnik)) then

FormDovidnik:=TFormDovidnik.Create(Self);

FormDovidnik.TabSheet2.TabVisible:=true;

FormDovidnik.PageControl1.ActivePage:=FormDovidnik.PageControl1.Pages[1];

FormDovidnik.PageControl1.Pages[1].Caption:='Обсяги реабілітації';

DataModule1.IBQuery_obsjag.Active:=true;

FormDovidnik.DBGrid7.DataSource:=DataModule1.ds_obsjag;

FormDovidnik.Tag:=5;

FormDovidnik.ShowModal();

end;

procedure TFormReabil.B_tClick(Sender: TObject);

begin

if (not Assigned(FormDovidnik)) then

FormDovidnik:=TFormDovidnik.Create(Self);

FormDovidnik.TabSheet2.TabVisible:=true;

FormDovidnik.PageControl1.ActivePage:=FormDovidnik.PageControl1.Pages[1];

FormDovidnik.PageControl1.Pages[1].Caption:='Терміни реабілітації';

DataModule1.IBQuery_termin.Active:=true;

FormDovidnik.DBGrid7.DataSource:=DataModule1.ds_termin;

FormDovidnik.Tag:=4;

FormDovidnik.ShowModal();

end;

procedure TFormReabil.B_mClick(Sender: TObject);

begin

if (not Assigned(FormDovidnik)) then

FormDovidnik:=TFormDovidnik.Create(Self);

FormDovidnik.TabSheet2.TabVisible:=true;

FormDovidnik.PageControl1.ActivePage:=FormDovidnik.PageControl1.Pages[1];

FormDovidnik.PageControl1.Pages[1].Caption:='Місця реабілітації';

DataModule1.IBQuery_misce.Active:=true;

FormDovidnik.DBGrid7.DataSource:=DataModule1.ds_misce;

FormDovidnik.Tag:=6;

FormDovidnik.ShowModal();

end;

procedure TFormReabil.c_obmDropDown(Sender: TObject);

begin

B_ob.Visible:=true;

end;

procedure TFormReabil.TreeViewClick(Sender: TObject);

var

kod, id:integer;

s:string;

sovpadenie:boolean;

begin

s:=Trim(TreeView.Selected.Text);

DataModule1.IBQuery_z.Locate('ZAH',s,[]);

kod:=DataModule1.IBQuery_z.FieldByName('ID_ZAH').AsInteger;

BitBtnAdd.Tag:=kod;

if ((BitBtnAdd.Tag=1)or(BitBtnAdd.Tag=2)or(BitBtnAdd.Tag=11)or(BitBtnAdd.Tag=17)or(BitBtnAdd.Tag=23)or(BitBtnAdd.Tag=29)or(BitBtnAdd.Tag=33)or(BitBtnAdd.Tag=38)or(BitBtnAdd.Tag=43)) then

begin

c_obm.enabled:=false;

c_termin.enabled:=false;

c_misc.enabled:=false;

c_obm.ItemIndex:=-1;

c_termin.ItemIndex:=-1;

c_misc.ItemIndex:=-1;

end

else

begin

c_obm.enabled:=true;

c_termin.enabled:=true;

c_misc.enabled:=true;

c_obm.ItemIndex:=-1;

c_termin.ItemIndex:=-1;

c_misc.ItemIndex:=-1;

Label4.Caption:='';

sovpadenie:=false;

if not Datamodule1.IBQuery_reabil.active then Datamodule1.IBQuery_reabil.active:=true;

Datamodule1.IBQuery_reabil.First;

while not Datamodule1.IBQuery_reabil.Eof do

begin

if ((Datamodule1.IBQuery_reabil.fieldbyname('id_ipr').AsInteger=treeview.tag)and(Datamodule1.IBQuery_reabil.fieldbyname('id_zah').AsInteger=kod)) then

begin

sovpadenie:=true;

c_termin.tag:=Datamodule1.IBQuery_reabil.fieldbyname('id_termin').Asinteger;

id:=c_termin.tag;

Datamodule1.IBQuery_termin.Locate('id_termin',id , []);

c_termin.text:=Trim(Datamodule1.IBQuery_termin.fieldbyname('termin').Value);

c_obm.tag:=Datamodule1.IBQuery_reabil.fieldbyname('id_obsyag').Asinteger;

id:=c_obm.tag;

Datamodule1.IBQuery_obsjag.Locate('id_obsyag',id , []);

c_obm.text:=Trim(Datamodule1.IBQuery_obsjag.fieldbyname('obsyag').Value);

c_misc.tag:=Datamodule1.IBQuery_reabil.fieldbyname('id_misce').Asinteger;

id:=c_misc.tag;

Datamodule1.IBQuery_misce.Locate('id_misc',id , []);

c_misc.text:=Trim(Datamodule1.IBQuery_misce.fieldbyname('misc').Value);

end ;

Datamodule1.IBQuery_reabil.Next;

end;

if sovpadenie=false then

begin

c_obm.Text:='';

c_termin.Text:='';

c_misc.Text:='';

end;

end;

end;

procedure TFormReabil.m_redClick(Sender: TObject);

var

id1, id2:integer;

begin

with DataModule1.IBQuery do begin

Close;

id1:=TreeView.Tag;

id2:= BitBtnAdd.Tag;

SQL.Clear;

SQL.Add('UPDATE Reabil SET ID_IPR=:ID_IPR, ID_OBSYAG=:ID_OBSYAG, ID_ZAH=:ID_ZAH, ID_TERMIN=:ID_TERMIN, ID_MISCE=:ID_MISCE WHERE id_ipr='+intToStr(id1)+' and id_zah='+IntTostr(id2));

ParamByName('ID_OBSYAG').Value:=c_obm.Tag;

ParamByName('ID_Termin').Value:=c_termin.Tag;

ParamByName('ID_MISCE').Value:=c_misc.Tag;

try

ExecSQL;

Label4.Caption:='Дані перезаписано';

Except

Label4.Caption:='Не вдалося відредагувати запис';

end;

end;

DataModule1.IBQuery_Reabil.Close;

DataModule1.IBQuery_Reabil.Open;

end;

end.

//Текст модуля AddPas

unit AddPas;

procedure TFormredpas.m_exitClick(Sender: TObject);

begin

Close();

end;

procedure TFormredpas.m_enterClick(Sender: TObject);

var

i:integer;

q: Integer;

f:Textfile;

path, Key, result:string;

old_pas, new_pas:string;

begin

Key:='9';

path:='pas.toc';

//чтение

AssignFile(f,path);

Reset(f);

if not FileExists(path) then

begin

Rewrite(f);

CloseFile(f);

end

else

begin

Read(f,old_pas);

CloseFile(f);

//дешифрование

for i := 1 to Length(old_pas) do

begin

q:=(Ord(old_pas[i])-(Ord(Key[(Pred(i) mod Length(Key))+1])-Ord('0')));

if q<0 then Inc(q,256);

old_pas[i]:=Chr(q);

Result:=old_pas;

end;

end;

if pas.text=old_pas then

begin

new_pas:=pas2.Text;

//шифрование

for i := 1 to Length(new_pas) do

begin

q:=(Ord(new_pas[i])+(Ord(Key[(Pred(i) mod Length(Key))+1])-Ord('0')));

if q>=256 then Dec(q,256);

new_pas[i]:=Chr(q);

Result:=new_pas;

end;

//запись

AssignFile(f,path);

Rewrite(f);

Write(f, new_pas);

CloseFile(f);

Application.MessageBox('Пароль змінено','Увага',mb_Ok+mb_Iconinformation);

Close();

end

else

begin

Application.MessageBox('Невірно введено старий пароль','Увага',mb_Ok+mb_Iconinformation);

end;

pas.Clear;

pas2.Clear;

end;

end.

//Текст модуля Redpac

unit Redpac;

procedure TFormRedpac.m_exitClick(Sender: TObject);

begin

Close();

end;

procedure TFormRedpac.FormActivate(Sender: TObject);

var

kod:integer;

begin

with DataModule1 do

begin

c_sex.Clear;

c_osv.Clear;

c_gr.Clear;

c_prof.Clear;

c_obl.Clear;

c_r_obl.Clear;

c_nas_punkt.Clear;

c_r_nas_punkt.Clear;

fio.Text:=Trim(ibquery3.fieldbyname('fio').Value);

street.Text:=Trim(ibquery3.fieldbyname('street').Value);

index.Text:=Trim(ibquery3.fieldbyname('index1').Value);

work.Text:=Trim(ibquery3.fieldbyname('work').Value);

tel.Text:=Trim(ibquery3.fieldbyname('tel').Value);

datetimepicker1.Date:=ibquery3.fieldbyname('dr').AsDateTime;

if not ibquery_O.active then ibquery_O.Active:=true;

ibquery_O.Locate('id_chel',fio.Tag, []);

if not ibquery_sex.active then ibquery_sex.open();

ibquery_sex.first();

while not(ibquery_sex.eof) do

begin

c_sex.items.add(ibquery_sex.fieldbyname('SEX').asstring);

ibquery_sex.next;

end;

kod:=ibquery_O.fieldbyname('sex').value;

DataModule1.ibquery_sex.Locate('id_sex',kod, []);

c_sex.Text:=ibquery_sex.fieldbyname('sex').Value;

c_sex.Tag:=ibquery_sex.fieldbyname('id_sex').Value;

ibquery_sex.first();

c_sex.Tag:=kod;

...

if not ibquery_rajon.Active then ibquery_rajon.open();

ibquery_rajon.first();

while not(ibquery_rajon.eof) do

begin

c_r_nas_punkt.items.add(ibquery_rajon.fieldbyname('rajon').asstring);

ibquery_rajon.next;

end;

kod:=ibquery_O.fieldbyname('r_punkt').value;

DataModule1.ibquery_rajon.Locate('id_rajon',kod, []);

c_r_nas_punkt.Text:=ibquery_rajon.fieldbyname('rajon').Value;

c_r_nas_punkt.Tag:=ibquery_rajon.fieldbyname('id_rajon').Value;

ibquery_rajon.first();

c_r_nas_punkt.Tag:=kod;

end;

end;

procedure TFormRedpac.m_red_pacClick(Sender: TObject);

var

res:integer;

id:string;

begin

id:=IntToStr(fio.tag);

if (fio.Text<>'')and(c_sex.Text<>'')and(c_osv.Text<>'')and(c_gr.Text<>'')and(c_obl.Text<>'')and(c_prof.Text<>'')and(c_r_obl.Text<>'')and(c_nas_punkt.Text<>'')

and(c_r_nas_punkt.Text<>'')and(work.Text<>'')and(tel.Text<>'')and(street.Text<>'')and(index.Text<>'') then

begin

res:=YearsBetween(today,DateTimepicker1.Date);

if ((res>=18) and (res<125)) then

begin

with DataModule1.IBQuery do begin

Close;

SQL.Clear;

SQL.Add('UPDATE OS_karta SET fio=:fio, osvita=:osvita, dr=:dr, index1=:index1, sex=:sex, gr_inv=:gr_inv, id_prof=:id_prof, obl=:obl, r_obl=:r_obl, punkt=:punkt, r_punkt=:r_punkt, tel=:tel, street=:street, work=:work where id_chel='+id);

ParamByName('fio').Value:=Trim(fio.Text);

ParamByName('osvita').Value:=c_osv.Tag;

ParamByName('dr').AsDate:=DateTimePicker1.Date;

ParamByName('index1').Value:=StrToInt(index.text);

ParamByName('sex').Value:=c_sex.Tag;

ParamByName('gr_inv').Value:=c_gr.Tag;

ParamByName('id_prof').Value:=c_prof.Tag;

ParamByName('obl').Value:=c_obl.Tag;

ParamByName('r_obl').Value:=c_r_obl.Tag;

ParamByName('punkt').Value:=c_nas_punkt.Tag;

ParamByName('r_punkt').Value:=c_r_nas_punkt.Tag;

ParamByName('tel').value:=Trim(tel.Text);

ParamByName('street').value:=Trim(street.Text);

ParamByName('work').value:=Trim(work.Text);

try

ExecSQL;

Application.MessageBox('Дані перезаписано','Увага!',MB_OK+MB_Iconinformation);

Except

Application.MessageBox('Не вдалося відредагувати запис','Увага!',MB_OK+MB_Iconerror);

end;

end;

end

else Application.MessageBox('Ви невірно заповнили дату народження','Увага!',MB_OK+MB_Iconerror);

end

else Application.MessageBox('Ви заповнили не всі поля','Увага!',MB_OK+MB_Iconerror);

DataModule1.IBQuery3.Active:=false;

DataModule1.IBQuery3.Active:=true;

DataModule1.ibquery_O.Active:=false;

DataModule1.ibquery_O.Active:=true;

FormRedPac.Close();

end;

procedure TFormRedpac.SpeedButton_profClick(Sender: TObject);

begin

if (not Assigned(FormDovidnik)) then

FormDovidnik:=TFormDovidnik.Create(Self);

FormDovidnik.TabSheet2.TabVisible:=true;

FormDovidnik.PageControl1.ActivePage:=FormDovidnik.PageControl1.Pages[1];

FormDovidnik.PageControl1.Pages[1].Caption:='Професії';

DataModule1.IBQuery_prof.Active:=true;

FormDovidnik.DBGrid7.DataSource:=DataModule1.ds_prof;

FormDovidnik.Tag:=3;

FormDovidnik.ShowModal();

end;

procedure TFormRedpac.SpeedButton_oblClick(Sender: TObject);

begin

if (not Assigned(FormDovidnik)) then

FormDovidnik:=TFormDovidnik.Create(Self);

FormDovidnik.TabSheet2.TabVisible:=true;

FormDovidnik.PageControl1.ActivePage:=FormDovidnik.PageControl1.Pages[1];

FormDovidnik.PageControl1.Pages[1].Caption:='Oбласті';

DataModule1.IBQuery_obl.Active:=true;

FormDovidnik.DBGrid7.DataSource:=DataModule1.ds_obl;

FormDovidnik.Tag:=9;

FormDovidnik.ShowModal();

end;

procedure TFormRedpac.SpeedButton_r_oblClick(Sender: TObject);

begin

if (not Assigned(FormDovidnik)) then

FormDovidnik:=TFormDovidnik.Create(Self);

FormDovidnik.TabSheet2.TabVisible:=true;

FormDovidnik.PageControl1.ActivePage:=FormDovidnik.PageControl1.Pages[1];

FormDovidnik.PageControl1.Pages[1].Caption:='Райони області';

DataModule1.IBQuery_r_obl.Active:=true;

FormDovidnik.DBGrid7.DataSource:=DataModule1.ds_r_obl;

FormDovidnik.Tag:=8;

FormDovidnik.ShowModal();

end;

procedure TFormRedpac.SpeedButton_punktClick(Sender: TObject);

begin

if (not Assigned(FormDovidnik)) then

FormDovidnik:=TFormDovidnik.Create(Self);

FormDovidnik.TabSheet2.TabVisible:=true;

FormDovidnik.PageControl1.ActivePage:=FormDovidnik.PageControl1.Pages[1];

FormDovidnik.PageControl1.Pages[1].Caption:='Населений пункт';

DataModule1.IBQuery_nas_punkt.Active:=true;

FormDovidnik.DBGrid7.DataSource:=DataModule1.ds_punkt;

FormDovidnik.Tag:=10;

FormDovidnik.ShowModal();

end;

procedure TFormRedpac.SpeedButton_r_punktClick(Sender: TObject);

begin

if (not Assigned(FormDovidnik)) then

FormDovidnik:=TFormDovidnik.Create(Self);

FormDovidnik.TabSheet2.TabVisible:=true;

FormDovidnik.PageControl1.ActivePage:=FormDovidnik.PageControl1.Pages[1];

FormDovidnik.PageControl1.Pages[1].Caption:='Райони населеного пункту';

DataModule1.IBQuery_rajon.Active:=true;

FormDovidnik.DBGrid7.DataSource:=DataModule1.ds_rajon;

FormDovidnik.Tag:=11;

FormDovidnik.ShowModal();

end;

procedure TFormRedpac.telKeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9', #8, '-', ')', '+', '(' ])

then

Key:=#0;

end;

procedure TFormRedpac.indexKeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9', #8]) //,'a'..'z','A'..'Z',#8,#46]) or (key in ['а'..'я']))

then

Key:=#0;

end;

procedure TFormRedpac.c_osvChange(Sender: TObject);

var

i:integer;

begin

if not DataModule1.ibquery_osvita.active then DataModule1.ibquery_osvita.active:=true;

DataModule1.ibquery_osvita.first();

for i:=0 to c_osv.itemindex-1 do begin

DataModule1.ibquery_osvita.Next;

end;

c_osv.Tag:=DataModule1.IBQuery_osvita.fieldbyname('ID_OSVITA').Value;

end;

procedure TFormRedpac.c_grChange(Sender: TObject);

var

i:integer;

begin

if not DataModule1.IBQuery_gr.active then DataModule1.IBQuery_gr.active:=true;

DataModule1.ibquery_gr.first();

for i:=0 to c_gr.itemindex-1 do begin

DataModule1.ibquery_gr.Next;

end;

c_gr.Tag:=DataModule1.IBQuery_gr.fieldbyname('ID_GR_INV').Value;

end;

procedure TFormRedpac.c_profChange(Sender: TObject);

var

i:integer;

begin

if not DataModule1.IBQuery_prof.active then DataModule1.IBQuery_prof.active:=true;

DataModule1.ibquery_prof.first();

for i:=0 to c_prof.itemindex-1 do begin

DataModule1.ibquery_prof.Next;

end;

c_prof.Tag:=DataModule1.IBQuery_prof.fieldbyname('ID_PROF').Value;

SpeedButton_prof.Visible:=true;

end;

procedure TFormRedpac.c_r_nas_punktChange(Sender: TObject);

var

i:integer;

begin

if not DataModule1.ibquery_rajon.active then DataModule1.ibquery_rajon.active:=true;

DataModule1.ibquery_rajon.first();

for i:=0 to c_r_nas_punkt.itemindex-1 do begin

DataModule1.ibquery_rajon.Next;

end;

c_r_nas_punkt.Tag:=DataModule1.IBQuery_rajon.fieldbyname('ID_RAJON').Value;

SpeedButton_r_punkt.Visible:=true;

end;

procedure TFormRedpac.c_r_oblChange(Sender: TObject);

var

i:integer;

begin

if not DataModule1.IBQuery_r_obl.active then DataModule1.IBQuery_r_obl.active:=true;

DataModule1.ibquery_r_obl.first();

for i:=0 to c_r_obl.itemindex-1 do begin

DataModule1.ibquery_r_obl.Next;

end;

c_r_obl.Tag:=DataModule1.IBQuery_r_obl.fieldbyname('ID_RAJON_OBL').Value;

SpeedButton_r_obl.Visible:=true;

end;

procedure TFormRedpac.c_nas_punktChange(Sender: TObject);

var

i:integer;

begin

if not DataModule1.IBQuery_nas_punkt.active then DataModule1.IBQuery_nas_punkt.active:=true;

DataModule1.ibquery_nas_punkt.first();

for i:=0 to c_nas_punkt.itemindex-1 do begin

DataModule1.ibquery_nas_punkt.Next;

end;

c_nas_punkt.Tag:=DataModule1.IBQuery_nas_punkt.fieldbyname('ID_NAS_PUNKT').Value;

SpeedButton_punkt.Visible:=true;

end;

procedure TFormRedpac.c_oblChange(Sender: TObject);

var

i:integer;

begin

if not DataModule1.ibquery_obl.active then DataModule1.ibquery_obl.active:=true;

DataModule1.ibquery_obl.first();

for i:=0 to c_obl.itemindex-1 do begin

DataModule1.ibquery_obl.Next;

end;

c_obl.Tag:=DataModule1.IBQuery_obl.fieldbyname('ID_OBL').Value;

SpeedButton_obl.Visible:=true;

end;

end.

Додаток В

Схема зв'язку таблиць

Рисунок В.1 - Схема взаємозв'язку таблиць

Размещено на Allbest.ur


Подобные документы

  • Теоретичні відомості про пакет ІЗВП Borland Delphi та СУБД MS Access, оцінка їх функціональних особливостей. Опис структури бази даних. Проектування інтерфейсу програми, опис її логічної структури та функцій. Контроль коректності вхідних, вихідних даних.

    курсовая работа [4,5 M], добавлен 03.01.2014

  • Розробка структури бази даних. ER-моделі предметної області. Проектування нормалізованих відношень. Розробка форм, запитів, звітів бази даних "Автосалон". Тестування роботи бази даних. Демонстрація коректної роботи форми "Додавання даних про покупців".

    курсовая работа [4,0 M], добавлен 02.12.2014

  • Опис вхідних та вихідних повідомлень, процедури перетворення даних. Розробка інфологічної моделі, інформаційні об’єкти та їх характеристика. Автоматизація даталогічного проектування. Опис структур таблиць бази даних на фізичному рівні, реалізація запитів.

    курсовая работа [2,5 M], добавлен 02.01.2014

  • Розробка бази даних "Автовокзал". Функціональні залежності між атрибутами. Ідентифікація атрибутів, які в реляційної моделі даних використовуються в якості первинних ключів реляційних відносин. Організація вибірки інформації з бази за допомогою запиту.

    курсовая работа [35,6 K], добавлен 19.08.2012

  • Проектування і реалізація реляційної бази даних для централізованого зберігання інформації з метою полегшення і систематизації даних замовлень клієнтів готельного комплексу. Розробка сценаріїв для створення бази даних і базових таблиць проекту.

    курсовая работа [147,2 K], добавлен 02.06.2019

  • Проектування бази даних предметної області "Магазин будівельних матеріалів". Аналіз сукупності вхідних і вихідних даних, шляхи удосконалення інформаційної системи обліку товару. Організація інформаційної бази, розробка логічної і фізичної моделі.

    курсовая работа [559,2 K], добавлен 09.05.2016

  • Розробка бази даних для обробки інформації про діяльність туристичного агентства. Визначення предметної області, вхідних та вихідних даних, їх організації. Генерація схеми бази даних. Реалізація функціональних вимог. Інструкція з експлуатації системи.

    курсовая работа [5,3 M], добавлен 12.05.2015

  • Специфікація вимог для кожного з двох користувачів. Концептуальне проектування бази даних. Визначення типів сутностей та зв’язків, доменів. Перетворення концептуальної моделі даних у логічну, визначення набору відношень, підтримки цілісності даних.

    курсовая работа [55,1 K], добавлен 15.03.2015

  • Розробка бази даних в середовищі Microsoft SQL Server 2008 для обліку послуг фітнес-клубу. Таблиці для баз даних, їх властивості. Аналіз сукупності вхідних і вихідних параметрів, опис інформаційної бази, розробка логічної і фізичної моделі даних в ІС.

    курсовая работа [449,9 K], добавлен 09.05.2016

  • Проектування бази даних, що реалізує звіти про графік робіт на об’єктах впродовж місяця. Графічне зображення нагромаджувачів даних. Побудова діаграм потоків даних і переходів станів, таблиць у вигляді двовимірного масиву, запитів. Створення бази даних.

    курсовая работа [1,2 M], добавлен 29.02.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.