Рефераты. Автоматизация продажи и учета лекарственных средств

В таблице 5 поля имеют тип:

Код лекарства (N) имеет числовой тип, Номер чека (N) имеет числовой тип, Дата продажи (D) дата, Цена за ед. продукта (N) имеет числовой тип, Кол-во проданных лекарств (N) числовой тип.

Поле Номер чека является ключевым(*).

Связи в базе организованны по соотношению один ко многим.

Для установления связей между таблицами открывали дочернюю таблицу

И выбирали в спадающем списке Table properties пункт Referential Integrity.

Связь таблицы Предприятие с таблицей Накладная.

Связь таблицы Лекарства с таблицей Продажа.

Связь таблицы Лекарства с таблицей Поступление.

По такому же принципу сделана связи с таблицей Накладная Поступление.

3.3 Организация пользовательского интерфейса

Интерфейс программы “Лекарственные средства” представлен на первой форме. Для удобства работы с базой при наведении курсора на объект появляются подсказки в статусной строке. Также присутствуют кнопки, для управления базой данных. В первой форме предусмотрен поиск позволяющий искать нужную запись.

Процедуры кнопок формы1:

Кнопка добавление:

procedure TForm1.Button1Click(Sender: TObject);

begin

If table1.State = dsBrowse then

table1.insert;

end;

Кнопка Изменения:

procedure TForm1.Button2Click(Sender: TObject);

begin

If table1.State = dsBrowse then

table1.edit;

end;

Кнопка Удаления:

procedure TForm1.Button3Click(Sender: TObject);

begin

If table1.State = dsBrowse then

If Messagedlg('',mtconfirmation,[mbYes,mbNo],0)=mrYes then

table1.delete;

end;

Процедура на кнопку поиск:

procedure TForm1.Table1FilterRecord(DataSet: TDataSet;

var Accept: Boolean);

begin

Accept:=Dataset['Name_lek'] = Edit1.text;

end;

procedure TForm1.CheckBox1Click(Sender: TObject);

begin

Table1.Filtered:=CheckBox1.Checked;

Table1.Filtered:=true;

end;

Форма 2 на которой находятся таблицы Предприятие и Накладная.

Процедуры кнопок Формы 2:

Процедура кнопки перехода на Форму1:

procedure TForm2.BitBtn1Click(Sender: TObject);

begin

Form1.show;

Form2.hide;

end;

Процедура кнопки перехода на Форму3:

procedure TForm2.BitBtn2Click(Sender: TObject);

begin

Form3.show;

Form2.hide;

end;

Процедура соединения таблиц двух таблиц, дочерняя таблица Накладная с родительской таблицей Предприятие :

procedure TForm2.OnActivate(Sender: TObject);

begin

DBGrid2.Columns.Items[1].PickList.Clear;

with Table1 do begin

first;

While not eof do Begin

DBGrid2.columns.Items[1].Picklist.add(FieldByName('Kod_pred').value);

next;

end;

end;

А также на форме присутствуют кнопки управления базой данных, как для таблицы Предприятие так и для таблицы Накладная:

кнопки добавления ,изменения, удаления, сохранения, отмены.

Процедура кнопки Запомнить:

procedure TForm2.Button4Click(Sender: TObject);

begin

If table1.State in [dsInsert,dsEdit]then

table1.post;

end;

Процедура кнопки Отменить:

procedure TForm2.Button9Click(Sender: TObject);

begin

If table1.State in [dsInsert,dsEdit]then

table1.Cancel;

end;

Процедура кнопки Добавить:

procedure TForm2.Button1Click(Sender: TObject);

begin

If table1.State = dsBrowse then

table1.insert;

end;

Процедура кнопки Изменить:

procedure TForm2.Button2Click(Sender: TObject);

begin

If table1.State = dsBrowse then

table1.edit;

end;

Процедура кнопки Удалить:

procedure TForm2.Button3Click(Sender: TObject);

begin

If table1.State = dsBrowse then

If Messagedlg('',mtconfirmation,[mbYes,mbNo],0)=mrYes then

table1.delete;

end;

Форма 3 с таблицами Поступление и Продажа.

На форме 3 находятся таблицы Продажа и Поступление. В этих таблицах фиксируется сколько лекарственных средств поступило на склад и по какой цене. Также фиксируется Код предприятия с которым установлены торговое соглашение, номер накладной где указан товар и в каком количестве. В таблице Продажа также фиксируются цена на лекарственные средства но при этом учитывается транспортировка и по этим параметрам устанавливается продажная цена.

Процедуры управляющих кнопок:

procedure TForm3.Button1Click(Sender: TObject);

begin

If table2.State = dsBrowse then

table2.insert;

end;

procedure TForm3.Button4Click(Sender: TObject);

begin

If table2.State in [dsInsert,dsEdit]then

table2.post;

end;

procedure TForm3.Button3Click(Sender: TObject);

begin

If table2.State = dsBrowse then

table2.edit;

end;

procedure TForm3.Button2Click(Sender: TObject);

begin

If table2.State = dsBrowse then

If Messagedlg('',mtconfirmation,[mbYes,mbNo],0)=mrYes then

table2.delete;

end;

procedure TForm3.Button5Click(Sender: TObject);

begin

If table1.State = dsBrowse then

table1.insert;

end;

procedure TForm3.Button6Click(Sender: TObject);

begin

If table1.State = dsBrowse then

If Messagedlg('',mtconfirmation,[mbYes,mbNo],0)=mrYes then

table1.delete;

end;

procedure TForm3.Button7Click(Sender: TObject);

begin

If table1.State = dsBrowse then

table1.edit;

end;

procedure TForm3.Button8Click(Sender: TObject);

begin

If table1.State in [dsInsert,dsEdit]then

table1.post;

end;

end;

end;

Процедуры соединения таблиц:

DBGrid2.Columns.Items[1].PickList.Clear;

with Form2.Table2 do begin

first;

While not eof do Begin

DBGrid2.columns.Items[1].Picklist.add(FieldbyName('Nom_naklad').value);

next;

end;

end;

DBGrid2.Columns.Items[2].PickList.Clear;

with Form2.Table1 do begin

first;

While not eof do Begin

DBGrid2.columns.Items[2].Picklist.add(FieldbyName('Kod_pred').value);

Форма 4 запрос SQL. На данной форме выводится параметрический запрос по полям “Название лекарства” и по ”Количеству проданных лекарств”.

Процедура Запроса SQL:

Процедура кнопки обновить список:

procedure TForm4.Button1Click(Sender: TObject);

begin

Query1.Filtered:=false;

Query1.Active:=true;

end;

Процедура кнопки поиска :

procedure TForm4.Button3Click(Sender: TObject);

begin

Query1.Filtered:=false;

Case Radiogroup1.itemindex of

0:pole:='Name_lek';

1:pole:='Kolvo_p_lek'

end;

Query1.Filtered:=true;

end;

procedure TForm4.Query1FilterRecord(DataSet: TDataSet;

Страницы: 1, 2, 3, 4, 5



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.