Функции элементов левой части главного окна программы.

Описание интерфейса главного окна программы.

С левого края формы находятся:

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). Соответствующая форма описана ниже.