В таблице 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);
table1.edit;
Кнопка Удаления:
procedure TForm1.Button3Click(Sender: TObject);
If Messagedlg('',mtconfirmation,[mbYes,mbNo],0)=mrYes then
table1.delete;
Процедура на кнопку поиск:
procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
Accept:=Dataset['Name_lek'] = Edit1.text;
procedure TForm1.CheckBox1Click(Sender: TObject);
Table1.Filtered:=CheckBox1.Checked;
Table1.Filtered:=true;
Форма 2 на которой находятся таблицы Предприятие и Накладная.
Процедуры кнопок Формы 2:
Процедура кнопки перехода на Форму1:
procedure TForm2.BitBtn1Click(Sender: TObject);
Form1.show;
Form2.hide;
Процедура кнопки перехода на Форму3:
procedure TForm2.BitBtn2Click(Sender: TObject);
Form3.show;
Процедура соединения таблиц двух таблиц, дочерняя таблица Накладная с родительской таблицей Предприятие :
procedure TForm2.OnActivate(Sender: TObject);
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;
А также на форме присутствуют кнопки управления базой данных, как для таблицы Предприятие так и для таблицы Накладная:
кнопки добавления ,изменения, удаления, сохранения, отмены.
Процедура кнопки Запомнить:
procedure TForm2.Button4Click(Sender: TObject);
If table1.State in [dsInsert,dsEdit]then
table1.post;
Процедура кнопки Отменить:
procedure TForm2.Button9Click(Sender: TObject);
table1.Cancel;
Процедура кнопки Добавить:
procedure TForm2.Button1Click(Sender: TObject);
Процедура кнопки Изменить:
procedure TForm2.Button2Click(Sender: TObject);
Процедура кнопки Удалить:
procedure TForm2.Button3Click(Sender: TObject);
Форма 3 с таблицами Поступление и Продажа.
На форме 3 находятся таблицы Продажа и Поступление. В этих таблицах фиксируется сколько лекарственных средств поступило на склад и по какой цене. Также фиксируется Код предприятия с которым установлены торговое соглашение, номер накладной где указан товар и в каком количестве. В таблице Продажа также фиксируются цена на лекарственные средства но при этом учитывается транспортировка и по этим параметрам устанавливается продажная цена.
Процедуры управляющих кнопок:
procedure TForm3.Button1Click(Sender: TObject);
If table2.State = dsBrowse then
table2.insert;
procedure TForm3.Button4Click(Sender: TObject);
If table2.State in [dsInsert,dsEdit]then
table2.post;
procedure TForm3.Button3Click(Sender: TObject);
table2.edit;
procedure TForm3.Button2Click(Sender: TObject);
table2.delete;
procedure TForm3.Button5Click(Sender: TObject);
procedure TForm3.Button6Click(Sender: TObject);
procedure TForm3.Button7Click(Sender: TObject);
procedure TForm3.Button8Click(Sender: TObject);
Процедуры соединения таблиц:
with Form2.Table2 do begin
DBGrid2.columns.Items[1].Picklist.add(FieldbyName('Nom_naklad').value);
DBGrid2.Columns.Items[2].PickList.Clear;
with Form2.Table1 do begin
DBGrid2.columns.Items[2].Picklist.add(FieldbyName('Kod_pred').value);
Форма 4 запрос SQL. На данной форме выводится параметрический запрос по полям “Название лекарства” и по ”Количеству проданных лекарств”.
Процедура Запроса SQL:
Процедура кнопки обновить список:
procedure TForm4.Button1Click(Sender: TObject);
Query1.Filtered:=false;
Query1.Active:=true;
Процедура кнопки поиска :
procedure TForm4.Button3Click(Sender: TObject);
Case Radiogroup1.itemindex of
0:pole:='Name_lek';
1:pole:='Kolvo_p_lek'
Query1.Filtered:=true;
procedure TForm4.Query1FilterRecord(DataSet: TDataSet;
Страницы: 1, 2, 3, 4, 5