Функции элементов левой части главного окна программы.
Описание интерфейса главного окна программы.
С левого края формы находятся:
o 3 элемента редактирования (Edit);
o 3 элемента вывода информации (Label);
o 5 кнопок (Button):
o кнопка «Показать», при нажатии на которую производится поиск в таблице;
o кнопка «Добавить данные», при нажатии на которую выполняется запрос на добавление данных;
o кнопка «Удалить данные», при нажатии на которую выполняется запрос на удаление данных;
o кнопка «Обновить таблицу», при нажатии на которую производится запрос на обновление таблицы;
o кнопка «Выйти», при нажатии на которую производится выход из программы.
С правого края формы находится таблица, показывающая информацию о находящихся в базе данных пациентах.
Кнопка «Показать». Выполняет поиск в базе данных по трем критериям: фамилия, имя и отчество. Причем, достаточно указать первые буквы ФИО. Данные для запроса указываются в элементах редактирования Edit1, Edit2, Edit3. При нажатии на клавишу выполняется следующий код:
procedure TKart.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('execute spFindPacient '''+Edit3.Text+'%'', '''+Edit2.Text+'%'', '''+Edit1.Text+'%'' ');
ADOQuery1.Open;
DataSource1.DataSet:=ADOQuery1;
DBGrid1.DataSource:=DataSource1;
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
end;
Код означает следующее: при нажатии на клавишу элемент ADOQuery1 закрываем. Далее, очищаем данные в свойстве SQL элемента ADOQuery1. После этого производим добавление команды, производящей поиск, в SQL. Открываем ADOQuery и полученные данные записываем в свойство DataSet элемента DataSource. Для отображения полученных данных в таблице, присваиваем данные свойства DataSet элемента DataSource свойству DataSource элемента DBGrid. В конце, для удобства, очищаем данные свойства Text элементов Edit1, Edit2 и Edit3.
Теперь подробнее о запросе. В запросе используются данные из Edit’ов. Поиск по первой букве возможен, благодаря директиве '%', что означает «искать все, начинающиеся от …». Сам же запрос не содержит текст запроса, как такового, а используется хранимую на сервере процедуру spFindPacient. Ниже представлен код хранимой процедуры:
CREATE PROCEDURE spFindPacient
@last varchar(15),
@first varchar(15),
@sur varchar(15),
@pol nchar(7)
AS
BEGIN
select * from Pacient where (lastName LIKE @last) and (firstName LIKE @first) and (surName LIKE @sur)
END
GO
В процедуре происходит выбор (select) всех (*) значений из (from) таблицы Pacient, где (where) значения столбцов lastName, firstName, surName таблицы Pacient имеют значения, равные, соответственно, @last, @first и @sur. Значения в переменных @last, @first и @sur подставляются из свойства Text элементов Edit1, Edit2, Edit3 главного окна модуля «Электронная медицинская карта».
Кнопка «Добавить данные». Открывает новую форму (InsertPacient) для добавления данных о новом пациенте. При нажатии выполняется следующий код:
procedure TKart.Button2Click(Sender: TObject);
begin
InsertPacient.Show;
end;
Код означает следующее: при нажатии на кнопку, производится открытие (Show) формы (InsertPacient). Соответствующая форма описана ниже.