Приложение а
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.