Автоматизація ведення бази даних індивідуальних програм реабілітації інвалідів
Проектування бази даних та інтерфейсу програми. Розробка бази даних за допомогою 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