Клиентское приложение для больницы.
БД:
Таблица Doctor:
ID_Doctor (счётчик, первичный ключ)
D_Sname (текст)
D_Name (текст)
D_PhName (текст)
Special (текст)
D_KontPhone (текст)
KabNum (текст)
Graph (мемо)
Таблица Pаtient:
ID_Patient (счётчик, первичный ключ)
P_Sname (текст)
P_Name (текст)
P_PhName (текст)
Sity (текст)
Street (текст)
Home (текст)
Kv (текст)
birdts_year (текст)
birdts_day (текст)
P_Kont_Phone (текст)
Таблица Recept:
ReceptKey (счётчик, первичный ключ)
ID_Visit (числовой)
ReceptCode (текст)
Medicaments (мемо)
Таблица Visit:
ID_Doctor (числовой)
ID_Patient (числовой)
ID_Visit (счётчик, первичный ключ)
VisitDate (текст)
VisitTime (текст)
Resultat (текст)
Symptoms (мемо)
Diagnos (мемо)
Doctor связана с Visit (1-N) по полям ID_Doctor
Visit связана с Patient (N-1) по полям ID_Patient
Visit связана с Recept (1-N) по полям ID_Visit
В Delphi клиентское приложение которое позволяет докторам вносить в таблицу Visit (в Акцесс) данные о дате и времени приёма, симптомы заболевания и диагноз, а в таблицу Recept (в Акцесс) код рецепта и выписанное пациенту лекарство. Заносятся все эти данные с помощью Edit и Memo которые расположены на форме. Также на форме расположены две DBGrid - с фио пациентов (Patient) и фио врачей (Doctor). Врач щелкает на ячейке с фамилией пациента, затем на ячейке с фамилией врача, вносит все необходимые данные в Editы и Memo, жмёт кнопку "Зарегистрировать приём" - и данные об этом пациенте и враче и болезнях отправляются в Акцесс в таблицу Visit, жмёт кнопку "Сформировать рецепт" - и данные об этом визите и лекарства отправляются в Акцесс в таблицу Recept.
Вот программа:
Код: Выделить всё
unit LAB8Unit1;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT D_Sname, D_Name, D_PhName, Special, D_KontPhone, KabNum,Graph');
ADOQuery1.SQL.Add('FROM Doctor');
ADOQuery1.Open;
ADOQuery1.FieldByName('Graph').Visible:=false;
ADOQuery4.Active:=False;
ADOQuery4.SQL.Clear;
ADOQuery4.SQL.Add('SELECT P_Sname, P_Name, P_PhName, birdts_year, birdts_day, Sity, Street, Home, Kv, P_Kont_Phone');
ADOQuery4.SQL.Add('FROM Patient');
ADOQuery4.Open;
ADOQuery4.FieldByName('Sity').Visible:=false;
ADOQuery4.FieldByName('Street').Visible:=false;
ADOQuery4.FieldByName('Home').Visible:=false;
ADOQuery4.FieldByName('Kv').Visible:=false;
ADOQuery4.FieldByName('P_Kont_Phone').Visible:=false;
end;
procedure TForm1.DBGrid2CellClick(Column: TColumn);
begin
Memo4.Lines.Add(ADOQuery4.FieldByName('Sity').AsString) ;
Memo4.Lines.Add(ADOQuery4.FieldByName('Street').AsString);
Memo4.Lines.Add(ADOQuery4.FieldByName('Home').AsString);
Memo4.Lines.Add(ADOQuery4.FieldByName('Kv').AsString);
Memo4.Lines.Add(ADOQuery4.FieldByName('P_Kont_Phone').AsString);
Label5.Caption:=ADOQuery4.FieldByName('P_Sname').AsString+' '+ADOQuery4.FieldByName('P_Name').AsString+' '+ADOQuery4.FieldByName('P_PhName').AsString;
end;
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
ADOQuery2.Active:=False;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('SELECT Graph');
ADOQuery2.SQL.Add('FROM Doctor');
ADOQuery2.Active:=True;
Label4.Caption:=ADOQuery1.FieldByName('D_Sname').AsString+' '+ADOQuery1.FieldByName('D_Name').AsString+' '+ADOQuery1.FieldByName('D_PhName').AsString;
Edit1.Text:=ADOQuery1.FieldByName('Graph').AsString;
end;
procedure TForm1.BitBtn1Click(Sender: TObject); {зарегистрировать приём}
begin
ADOQuery4.Active:=False;
ADOQuery4.SQL.Clear;
ADOQuery4.SQL.Add('INSERT INTO Visit');
ADOQuery4.SQL.Add('ID_Doctor, ID_Patient, VisitDate, VisitTime,Resultat,Symptoms,Diagnos');
ADOQuery4.SQL.Add('VALUES('+Doctor.FieldByName('ID_Doctor').AsInteger+', '+Patient.FieldByName('ID_Patient').AsInteger+','+'"'+Edit2.Text+'", "'+Edit3.Text+'", "'+ComboBox1.Text+'", "'+Memo1.Lines.Text+'", "'+Memo2.Lines.Text+'")');
ADOQuery4.ExecSQL;
end;
end.