Скачиваний:
2
Добавлен:
17.09.2023
Размер:
221.29 Кб
Скачать

Приложение а

procedure TForm1.Button1Click(Sender: TObject);

begin

username := Form1.Edit1.Text;

password := Form1.Edit2.Text;

db.DataModule2.ADOQuery1.Close;

db.DataModule2.ADOQuery1.SQL.Clear;

db.DataModule2.ADOQuery1.SQL.Add

('SELECT DISTINCT*FROM Врачи WHERE Логин = username and Пароль = password');

db.DataModule2.ADOQuery1.Parameters.ParamByName('username').Value := username;

db.DataModule2.ADOQuery1.Parameters.ParamByName('password').Value := password;

db.DataModule2.ADOQuery1.Open;

if db.DataModule2.ADOQuery1.FieldByName('Логин').AsString <> '' then

begin

Form1.Hide;

Form3.Show;

end

else

showmessage('Неверный логин или пароль')

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.Hide;

Form2.Show;

end;

end.

procedure TForm2.Button1Click(Sender: TObject);

begin

username := Edit1.Text;

password := Edit2.Text;

password2 := Edit3.Text;

if password2 <> password then

begin

showmessage('Пароли не совпадают')

end

else

begin

db.DataModule2.ADOQuery1.SQL.Clear;

db.DataModule2.ADOQuery1.SQL.Add

('INSERT INTO Врачи(Логин,Пароль) VALUES(:username,:password)');

db.DataModule2.ADOQuery1.Parameters.ParamByName('username').Value

:= username;

db.DataModule2.ADOQuery1.Parameters.ParamByName('password').Value

:= password;

db.DataModule2.ADOQuery1.ExecSQL;

Form2.Hide;

Form1.Show;

end;

end;

end.

procedure TForm3.ExportButtonClick(Sender: TObject);

begin

var

i,j,x: Integer;

Data := TStringList.Create;

DataID := TStringList.Create;

Phone := TStringList.Create;

PhoneID := TStringList.Create;

{Собираем всех пациентов}

db.DataModule2.ADOQuery1.Close;

db.DataModule2.ADOQuery1.SQL.Clear;

db.DataModule2.ADOQuery1.SQL.Add('SELECT*FROM Пациенты');

db.DataModule2.ADOQuery1.Open;

while not db.DataModule2.ADOQuery1.eof do

begin

Data.Add(db.DataModule2.ADOQuery1.FieldByName('ФИО').AsString + ' // ' +

db.DataModule2.ADOQuery1.FieldByName('Пол').AsString + ' // ' +

db.DataModule2.ADOQuery1.FieldByName('ДатаР').AsString);

DataID.Add(db.DataModule2.ADOQuery1.FieldByName('Код').AsString);

db.DataModule2.ADOQuery1.Next;

end;

{Собираем все сигналы}

i := 0;

while i < Data.Count do

begin

db.DataModule2.ADOQuery1.Close;

db.DataModule2.ADOQuery1.SQL.Clear;

db.DataModule2.ADOQuery1.SQL.Add('SELECT*FROM Сигналы WHERE Код = x');

x := RandomRange(1, 6);

db.DataModule2.ADOQuery1.Parameters.ParamByName('x').Value := x;

db.DataModule2.ADOQuery1.Open;

Data[i] := Data[i] + ' // ' + db.DataModule2.ADOQuery1.FieldByName('Ссылка').AsString + ' // ' +

db.DataModule2.ADOQuery1.FieldByName('Коэффициенты').AsString;

i := i + 1;

end;

{Собираем все телефоны и id}

db.DataModule2.ADOQuery1.Close;

db.DataModule2.ADOQuery1.SQL.Clear;

db.DataModule2.ADOQuery1.SQL.Add('SELECT*FROM Телефоны');

db.DataModule2.ADOQuery1.Open;

while not db.DataModule2.ADOQuery1.eof do

begin

Phone.Add(db.DataModule2.ADOQuery1.FieldByName('Телефон').AsString);

PhoneID.Add(db.DataModule2.ADOQuery1.FieldByName('КодП').AsString);

db.DataModule2.ADOQuery1.Next;

end;

{Обьединяем телефоны так, чтобы одному id соотвествовала строчка: 'номер1, номер2...'}

i := 0;

while i < PhoneID.Count-1 do

begin

if PhoneID[i+1] = PhoneID[i] then

begin

Phone[i+1] := Phone[i] + ', ' + Phone[i+1];

Phone.Delete(i);

PhoneID.Delete(i);

end

else

begin

i := i + 1;

end;

end;

{Добавляем к Data полученные обьединенные номера телефонов}

i := 0;

while (i < DataID.Count-1) and (Phone.Count > 0) do

begin

if DataID[i] = PhoneID[0] then

begin

Data[i] := Data[i] + ' // ' + Phone[0];

i := i+1;

Phone.Delete(0);

PhoneID.Delete(0);

end

else

begin

i := i+1;

end;

end;

{Экспортируем в txt и очищаем листы}

Data.SaveToFile(ExtractFilePath(Application.ExeName) + '\ExportData.txt');

Data.Free;

DataID.Free;

Phone.Free;

PhoneID.Free;

end;

procedure TForm3.FormShow(Sender: TObject);

begin

db.DataModule2.ADOQuery1.Close;

db.DataModule2.ADOQuery1.SQL.Clear;

db.DataModule2.ADOQuery1.SQL.Add('SELECT ФИО FROM Пациенты');

db.DataModule2.ADOQuery1.Open;

while not db.DataModule2.ADOQuery1.eof do

begin

wUsers.Items.Add(db.DataModule2.ADOQuery1.FieldByName('ФИО').AsString);

db.DataModule2.ADOQuery1.Next;

end;

end;

procedure TForm3.InfoButtonClick(Sender: TObject);

begin

Form5.Show;

end;

procedure TForm3.MinusButtonClick(Sender: TObject);

begin

if wUsers.ItemIndex <> -1 then

begin

db.DataModule2.ADOQuery1.SQL.Clear;

db.DataModule2.ADOQuery1.SQL.Add('DELETE FROM Пациенты WHERE ФИО = dFio');

db.DataModule2.ADOQuery1.Parameters.ParamByName('dFio').Value :=

wUsers.Items[wUsers.ItemIndex];

db.DataModule2.ADOQuery1.ExecSQL;

wUsers.Items.Clear;

db.DataModule2.ADOQuery1.Close;

db.DataModule2.ADOQuery1.SQL.Clear;

db.DataModule2.ADOQuery1.SQL.Add('SELECT ФИО FROM Пациенты');

db.DataModule2.ADOQuery1.Open;

while not db.DataModule2.ADOQuery1.eof do

begin

wUsers.Items.Add(db.DataModule2.ADOQuery1.FieldByName('ФИО').AsString);

db.DataModule2.ADOQuery1.Next;

end;

end;

end;

procedure TForm3.PlusButtonClick(Sender: TObject);

begin

Form4.Show;

end;

procedure TForm3.wSearchChange(Sender: TObject);

begin

fio := wSearch.Text;

wUsers.Items.Clear;

db.DataModule2.ADOQuery1.Close;

db.DataModule2.ADOQuery1.SQL.Clear;

db.DataModule2.ADOQuery1.SQL.Add

('SELECT ФИО FROM Пациенты WHERE ФИО LIKE :fio');

db.DataModule2.ADOQuery1.Parameters.ParamByName('fio').Value :=

'%' + fio + '%';

db.DataModule2.ADOQuery1.Open;

while not db.DataModule2.ADOQuery1.eof do

begin

wUsers.Items.Add(db.DataModule2.ADOQuery1.FieldByName('ФИО').AsString);

db.DataModule2.ADOQuery1.Next;

end;

end;

end.

procedure TForm4.Button1Click(Sender: TObject);

var

i: Integer;

begin

{ Информация о пациенте }

pName := Form4.Edit1.Text;

pFio := Form4.Edit2.Text;

pSurname := Form4.Edit3.Text;

pFullName := pFio + ' ' + pName + ' ' + pSurname;

if Form4.RadioButton1.Checked = True then

begin

pSex := 'ж';

end

else

begin

pSex := 'м';

end;

pDate := DateToStr(Form4.DateTimePicker1.Date);

db.DataModule2.ADOQuery1.SQL.Clear;

db.DataModule2.ADOQuery1.SQL.Add

('INSERT INTO Пациенты(ФИО,Пол,ДатаР) VALUES(:pFullName,:pSex,:pDate)');

db.DataModule2.ADOQuery1.Parameters.ParamByName('pFullName').Value :=

pFullName;

db.DataModule2.ADOQuery1.Parameters.ParamByName('pSex').Value := pSex;

db.DataModule2.ADOQuery1.Parameters.ParamByName('pDate').Value := pDate;

db.DataModule2.ADOQuery1.ExecSQL;

{ Добавляем в базу номера телефонов }

db.DataModule2.ADOQuery1.Close;

db.DataModule2.ADOQuery1.SQL.Clear;

db.DataModule2.ADOQuery1.SQL.Add

('SELECT Код FROM Пациенты WHERE ФИО = pFullName');

db.DataModule2.ADOQuery1.Parameters.ParamByName('pFullName').Value :=

pFullName;

db.DataModule2.ADOQuery1.Open;

idx := db.DataModule2.ADOQuery1.FieldByName('Код').AsString;

for i := 0 to (ListBox1.Items.Count - 1) do

begin

db.DataModule2.ADOQuery1.SQL.Clear;

db.DataModule2.ADOQuery1.SQL.Add

('INSERT INTO Телефоны(КодП,Телефон) VALUES(:idx,:pNumber)');

db.DataModule2.ADOQuery1.Parameters.ParamByName('idx').Value := idx;

db.DataModule2.ADOQuery1.Parameters.ParamByName('pNumber').Value :=

ListBox1.Items[i];

db.DataModule2.ADOQuery1.ExecSQL;

end;

{ Закрываем форму и обновляем страницу }

Form4.Hide;

Form3.wUsers.Items.Clear;

db.DataModule2.ADOQuery1.Close;

db.DataModule2.ADOQuery1.SQL.Clear;

db.DataModule2.ADOQuery1.SQL.Add('SELECT ФИО FROM Пациенты');

db.DataModule2.ADOQuery1.Open;

while not db.DataModule2.ADOQuery1.eof do

begin

Form3.wUsers.Items.Add(db.DataModule2.ADOQuery1.FieldByName('ФИО')

.AsString);

db.DataModule2.ADOQuery1.Next;

end;

Edit1.Text := '';

Edit2.Text := '';

Edit3.Text := '';

Text := '';

RadioButton1.Checked := False;

RadioButton2.Checked := False;

DateTimePicker1.Date := now();

end;

procedure TForm4.Button2Click(Sender: TObject);

begin

{ Номеа телефонов - добавить }

if Edit4.Text <> '' then

begin

ListBox1.Items.Add(Edit4.Text);

Edit4.Text := '';

end

else

begin

showmessage('Не оставляйте поле пустым');

end;

end;

procedure TForm4.Button3Click(Sender: TObject);

begin

{ Номера телефонов - удалить }

ListBox1.Items.Delete(ListBox1.ItemIndex);

end;

end.