База данных «Аптека»

Автор работы: Пользователь скрыл имя, 28 Декабря 2014 в 23:37, курсовая работа

Описание работы

База данных — это набор файлов (таблиц), в которых находится информация. Как правило, база данных состоит из нескольких таблиц, которые размещают в одном каталоге. Таблицу можно создать, воспользовавшись входящей в состав Delphi утилитой Borland Database Desktop или организовав SQL-запрос к серверу базы данных.

Файлы: 1 файл

ZapiskaKononenka (1).docx

— 920.33 Кб (Скачать файл)

 

2.4  Тестирование приложения

 

Для тестирования приложения выполним требуемые в качестве задания операции, а именно: добавление, удаление и поиск записей. В таблицу «Сотрудники» добавим запись. Результат можно увидеть на рисунке 2.4.1.


 

Рисунок 2.4.1 – Добавление записи

 

Теперь удалим любую запись, например, только что созданную. Результат выполнения данной операции представлен на рисунке 2.4.2.

 

Рисунок 2.4.2 – Удаление записи 

Теперь произведём поиск по заданному критерию. Будем осуществлять поиск записи по номеру. В таблице «Подразделения» также отражена работа вычисляемых полей. Результаты поиска представлены на рисунке 2.4.3.


Рисунок 2.4.3 – Поиск по заданному критерию

Теперь рассмотрим сортировки. К примеру, для таблицы «Сотрудники» отсортируем поля по возрастанию. Результат показан на рисунке 2.4.4.

Рисунок 2.4.4 – Сортировка

 

Таким образом, мы убедились, что все функции, указанные в задании к курсовому проекту выполнены и работают корректно.

 

2.5 Руководство пользователю

 

Главное окно программы изображено на рисунке 2.5.1. В окне видны три таблицы. Для добавления и удаления новых данных в таблицы используем DBNavigator. Для обеспечения удобства работы на форме располагаются кнопки, обеспечивающие поиск данных, обновление таблиц, сортировки и закрытие приложения.


 

Рисунок 2.5.1 – Главное окно программы

 

При нажатии кнопки «Поиск» появляется новая форма, представленная на рисунке 2.5.2,  на которой можно выбрать критерий поиска.


 

 

 

 

 

Рисунок 2.5.2 – Форма для поиска

 

Для осуществления поиска выбираем критерий в выпадающем списке. В поле для запроса вводим информацию, если данные введены неверно, появляется сообщение об ошибке. К примеру, осуществим поиск по критерию табельный номер. Способ заполнения формы и результат представлены соответственно на рисунках 2.5.3-2.5.4.


 

 

Рисунок 2.5.3 – Форма для поиска по заданному критерию


Рисунок 2.5.4 – Результат поиска

 

Также можно получить  исходные данные по трём таблицам. Для этого необходимо нажать на кнопку «Обновить», расположенную на форме.

Для выполнения сортировки в таблице «Рабочие места» установим переключатели как показано на рисунке 2.5.5 и нажмём кнопку «Ок».

 


 

 

 

 

 

 

 

Рисунок 2.5.5 –  Критерии сортировки

 

Результат сортировки представлен на рисунке 2.5.6.

 

Рисунок 2.5.6 –  Результат сортировки

 

 

 

 

 

 

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

 

Данный курсовой проект является актуальным и отвечает предъявленным к нему требованиям. Был разработан и написан, на языке программирования Borland Delphi 7, с использованием баз данных, программа, позволяющая осуществить поиск в имеющихся таблицах по  заданному критерию, сортировку и осуществлять внесение изменений и добавление данных по мере необходимости.

Примечание: электронный вариант программы находится на приложенном к пояснительной записке диске в папке под именем «Приложение», базы данных в папке под именем «БД Отдел кадров», а электронный вариант пояснительной записки – под именем Записка.doc. Для открытия и запуска приложения необходимо в Delphi в меню выбрать DataBase/ Explorer и в появившемся диалоге указать псевдоним DBCadr  и путь к файлу с базой данных, сохранить изменения. Далее Delphi/ File/open/…и выбираем в папку под именем «Приложение» на носителе.

 

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

 

  1. Кононенко З. И. Конспект лекций по дисциплине «Технологии и системы программирования».
  2. Архангельский А. Я. Программирование в Delphi 7. –М.:Бином, 2003. – 1152 с.: ил.
  3. Фленов М. Е. Библия Delphi. –СПб.:БХВ-Петербург, 2004. – 880 с.: ил.

 

 

ПРИЛОЖЕНИЕ

 

unit BD;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, DB, StdCtrls, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids, XPMan,

  Buttons;

 

type

  TForm1 = class(TForm)

    DataSource1: TDataSource;

    DBGrid1: TDBGrid;

    DBNavigator1: TDBNavigator;

    Table1: TTable;

    Table1TabelNumber: TIntegerField;

    Table1Fam: TStringField;

    Table1Name: TStringField;

    Table1Otc: TStringField;

    Table1Birthday: TDateField;

    Table1Adres: TStringField;

    StaticText1: TStaticText;

    StaticText2: TStaticText;

    DataSource2: TDataSource;

    DBGrid2: TDBGrid;

    DBNavigator2: TDBNavigator;

    Table2: TTable;

    StaticText3: TStaticText;

    Table2PodrazName: TStringField;

    Table2TabelNumber1: TIntegerField;

    Table2MNumber1: TIntegerField;

    StaticText4: TStaticText;

    StaticText5: TStaticText;

    DataSource3: TDataSource;

    DBGrid3: TDBGrid;

    DBNavigator3: TDBNavigator;

    Table3: TTable;

    StaticText6: TStaticText;

    StaticText7: TStaticText;

    Table3MNumber: TIntegerField;

    Table3Doljnost: TStringField;

    Table3Oklad: TCurrencyField;

    GroupBox1: TGroupBox;

    RadioGroup1: TRadioGroup;

    RadioButton1: TRadioButton;

    RadioButton2: TRadioButton;

    RadioButton3: TRadioButton;

    GroupBox2: TGroupBox;

    RadioGroup3: TRadioGroup;

    RadioButton6: TRadioButton;

    RadioButton8: TRadioButton;

    RadioButton7: TRadioButton;

    RadioButton11: TRadioButton;

    GroupBox3: TGroupBox;

    RadioGroup5: TRadioGroup;

    RadioButton13: TRadioButton;

    RadioButton17: TRadioButton;

    RadioButton12: TRadioButton;

    XPManifest1: TXPManifest;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    BitBtn3: TBitBtn;

    GroupBox4: TGroupBox;

    RadioButton4: TRadioButton;

    RadioButton5: TRadioButton;

    GroupBox5: TGroupBox;

    RadioButton9: TRadioButton;

    RadioButton10: TRadioButton;

    GroupBox6: TGroupBox;

    RadioButton14: TRadioButton;

    RadioButton15: TRadioButton;

    BitBtn4: TBitBtn;

    BitBtn5: TBitBtn;

    BitBtn6: TBitBtn;

    Query1: TQuery;

    Query1PodrazName: TStringField;

    Query1TabelNumber1: TIntegerField;

    Query1MNumber1: TIntegerField;

    BitBtn7: TBitBtn;

    BitBtn8: TBitBtn;

    Table3Nadbavka: TFloatField;

    Table3Sum: TCurrencyField;

    Table2NumberPodraz: TIntegerField;

    Query1NumberPodraz: TIntegerField;

    Table1Tel: TStringField;

    procedure FormActivate(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn3Click(Sender: TObject);

    procedure BitBtn4Click(Sender: TObject);

    procedure BitBtn5Click(Sender: TObject);

    procedure BitBtn6Click(Sender: TObject);

    procedure RadioButton1Click(Sender: TObject);

    procedure RadioButton2Click(Sender: TObject);

    procedure RadioButton7Click(Sender: TObject);

    procedure RadioButton6Click(Sender: TObject);

    procedure RadioButton11Click(Sender: TObject);

    procedure RadioButton17Click(Sender: TObject);

    procedure RadioButton12Click(Sender: TObject);

    procedure RadioButton3Click(Sender: TObject);

    procedure RadioButton8Click(Sender: TObject);

    procedure RadioButton13Click(Sender: TObject);

    procedure BitBtn8Click(Sender: TObject);

    procedure BitBtn7Click(Sender: TObject);

    procedure Table3CalcFields(DataSet: TDataSet);

    procedure Table1BeforeDelete(DataSet: TDataSet);

    procedure Table3BeforeDelete(DataSet: TDataSet);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

uses BDFind;

 

{$R *.dfm}

 

procedure TForm1.FormActivate(Sender: TObject);

begin

RadioButton3.Checked:=True;

RadioButton8.Checked:=True;

RadioButton13.Checked:=True;

RadioButton4.Checked:=True;

RadioButton9.Checked:=True;

RadioButton14.Checked:=True;

RadioButton4.Enabled:=False;

RadioButton5.Enabled:=False;

RadioButton9.Enabled:=False;

RadioButton10.Enabled:=False;

RadioButton14.Enabled:=False;

RadioButton15.Enabled:=False;

BitBtn7.Enabled:=False;

end;

 

procedure TForm1.BitBtn2Click(Sender: TObject);

label l;

var SQLData: String;

begin

RadioButton3.Checked:=True;

RadioButton8.Checked:=True;

RadioButton13.Checked:=True;

RadioButton1.Enabled:=False;

RadioButton2.Enabled:=False;

RadioButton3.Enabled:=False;

RadioButton7.Enabled:=False;

RadioButton6.Enabled:=False;

RadioButton11.Enabled:=False;

RadioButton8.Enabled:=False;

RadioButton17.Enabled:=False;

RadioButton12.Enabled:=False;

RadioButton13.Enabled:=False;

l: Form2.ShowModal;

SQLData:=Form2.Edit1.Text;

If Form2.Edit1.Text = '' Then Begin

MessageDlg('Не введены данные для поиска!', mtWarning, [mbOK], 0); Goto l; end;

If Form2.ComboBox1.ItemIndex = 0 Then Begin

With Query1 Do Begin

Close;

SQL.Clear;

SQL.Add('SELECT * FROM ":DBCadr:Podrarzel.db" WHERE TabelNumber1 = "'+SQLData+'" Order by TabelNumber1');

Open; end;

If Query1.RecordCount <> 0 Then Begin

DataSource2.DataSet:=Query1;

Table1.MasterSource:=DataSource2;

Table1.MasterFields:='TabelNumber1';

Table3.MasterSource:=DataSource2;

Table3.MasterFields:='MNumber1';

DBGrid1.ReadOnly:=True;

DBGrid2.ReadOnly:=True;

DBGrid3.ReadOnly:=True;

DBNavigator1.Enabled:=False;

DBNavigator3.Enabled:=False;

end;

If Query1.RecordCount = 0 Then Begin

DataSource2.DataSet:=Table2;

MessageDlg('Данные не найдены!', mtInformation, [mbOK], 0);

Table1.MasterSource:=nil;

Table3.MasterSource:=nil;

RadioButton1.Enabled:=True;

RadioButton2.Enabled:=True;

RadioButton3.Enabled:=True;

RadioButton7.Enabled:=True;

RadioButton6.Enabled:=True;

RadioButton11.Enabled:=True;

RadioButton8.Enabled:=True;

RadioButton17.Enabled:=True;

RadioButton12.Enabled:=True;

RadioButton13.Enabled:=True;

end; end;

 

If Form2.ComboBox1.ItemIndex = 1 Then Begin

With Query1 Do Begin

Close;

SQL.Clear;

SQL.Add('SELECT * FROM ":DBCadr:Podrarzel.db" WHERE MNumber1 = "'+SQLData+'" Order by MNumber1');

Open; end;

If Query1.RecordCount <> 0 Then Begin

DataSource2.DataSet:=Query1;

Table1.MasterSource:=DataSource2;

Table1.MasterFields:='TabelNumber1';

Table3.MasterSource:=DataSource2;

Table3.MasterFields:='MNumber1';

DBGrid1.ReadOnly:=True;

DBGrid2.ReadOnly:=True;

DBGrid3.ReadOnly:=True;

DBNavigator1.Enabled:=False;

DBNavigator3.Enabled:=False;

end;

If Query1.RecordCount = 0 Then Begin

DataSource2.DataSet:=Table2;

MessageDlg('Данные не найдены!', mtInformation, [mbOK], 0);

Table1.MasterSource:=nil;

Table3.MasterSource:=nil;

RadioButton1.Enabled:=True;

RadioButton2.Enabled:=True;

RadioButton3.Enabled:=True;

RadioButton7.Enabled:=True;

RadioButton6.Enabled:=True;

RadioButton11.Enabled:=True;

RadioButton8.Enabled:=True;

RadioButton17.Enabled:=True;

RadioButton12.Enabled:=True;

RadioButton13.Enabled:=True;

end; end;

 

end;

 

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

DBGrid1.ReadOnly:=False;

DBGrid2.ReadOnly:=False;

DBGrid3.ReadOnly:=False;

Table1.MasterSource:=nil;

Table3.MasterSource:=nil;

DataSource2.DataSet:=Table2;

DBNavigator1.Enabled:=True;

DBNavigator3.Enabled:=True;

RadioButton1.Enabled:=True;

RadioButton2.Enabled:=True;

RadioButton3.Enabled:=True;

RadioButton7.Enabled:=True;

RadioButton6.Enabled:=True;

RadioButton11.Enabled:=True;

RadioButton8.Enabled:=True;

RadioButton17.Enabled:=True;

RadioButton12.Enabled:=True;

RadioButton13.Enabled:=True;

end;

 

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

Form1.Close;

end;

 

procedure TForm1.BitBtn4Click(Sender: TObject);

begin

If (RadioButton2.Checked) and (RadioButton4.Checked) Then

Table1.IndexName:='FamInd';

If (RadioButton2.Checked) and (RadioButton5.Checked) Then

Table1.IndexName:='FamIndDes';

If (RadioButton1.Checked) and (RadioButton4.Checked) Then

Table1.IndexName:='TabelNumberInd';

If (RadioButton1.Checked) and (RadioButton5.Checked) Then

Table1.IndexName:='TabelNumberIndDes';

end;

 

procedure TForm1.BitBtn5Click(Sender: TObject);

begin

If (RadioButton7.Checked) and (RadioButton9.Checked) Then

Table2.IndexName:='PodrazNameInd';

If (RadioButton7.Checked) and (RadioButton10.Checked) Then

Table2.IndexName:='PodrazNameIndDes';

If (RadioButton6.Checked) and (RadioButton9.Checked) Then

Table2.IndexName:='TabelNumber1';

If (RadioButton6.Checked) and (RadioButton10.Checked) Then

Table2.IndexName:='TabelNumber1Des';

If (RadioButton11.Checked) and (RadioButton9.Checked) Then

Table2.IndexName:='MNumber1';

If (RadioButton11.Checked) and (RadioButton10.Checked) Then

Table2.IndexName:='MNumber1Des';

end;

 

procedure TForm1.BitBtn6Click(Sender: TObject);

begin

If (RadioButton17.Checked) and (RadioButton14.Checked) Then

Table3.IndexName:='MNumberInd';

If (RadioButton17.Checked) and (RadioButton15.Checked) Then

Table3.IndexName:='MNumberIndDes';

If (RadioButton12.Checked) and (RadioButton14.Checked) Then

Table3.IndexName:='DoljnostInd';

If (RadioButton12.Checked) and (RadioButton15.Checked) Then

Table3.IndexName:='DoljnostIndDes';

end;

 

procedure TForm1.RadioButton1Click(Sender: TObject);

begin

RadioButton4.Enabled:=True;

RadioButton5.Enabled:=True;

BitBtn4.Enabled:=True;

end;

 

procedure TForm1.RadioButton2Click(Sender: TObject);

begin

RadioButton4.Enabled:=True;

RadioButton5.Enabled:=True;

BitBtn4.Enabled:=True;

end;

 

procedure TForm1.RadioButton7Click(Sender: TObject);

begin

RadioButton9.Enabled:=True;

RadioButton10.Enabled:=True;

BitBtn5.Enabled:=True;

end;

 

procedure TForm1.RadioButton6Click(Sender: TObject);

begin

RadioButton9.Enabled:=True;

RadioButton10.Enabled:=True;

BitBtn5.Enabled:=True;

end;

 

procedure TForm1.RadioButton11Click(Sender: TObject);

begin

RadioButton9.Enabled:=True;

RadioButton10.Enabled:=True;

BitBtn5.Enabled:=True;

end;

 

procedure TForm1.RadioButton17Click(Sender: TObject);

begin

RadioButton14.Enabled:=True;

RadioButton15.Enabled:=True;

BitBtn6.Enabled:=True;

end;

 

procedure TForm1.RadioButton12Click(Sender: TObject);

begin

RadioButton14.Enabled:=True;

RadioButton15.Enabled:=True;

BitBtn6.Enabled:=True;

end;

 

procedure TForm1.RadioButton3Click(Sender: TObject);

begin

Table1.IndexName:='';

RadioButton4.Checked:=True;

RadioButton5.Checked:=False;

RadioButton4.Enabled:=False;

RadioButton5.Enabled:=False;

BitBtn4.Enabled:=False;

end;

 

procedure TForm1.RadioButton8Click(Sender: TObject);

begin

Table2.IndexName:='';

RadioButton9.Checked:=True;

RadioButton10.Checked:=False;

RadioButton9.Enabled:=False;

RadioButton10.Enabled:=False;

BitBtn5.Enabled:=False;

end;

 

procedure TForm1.RadioButton13Click(Sender: TObject);

begin

Table3.IndexName:='';

RadioButton14.Checked:=True;

RadioButton15.Checked:=False;

RadioButton14.Enabled:=False;

RadioButton15.Enabled:=False;

BitBtn6.Enabled:=False;

end;

 

procedure TForm1.BitBtn8Click(Sender: TObject);

begin

Form1.Height:=571;

BitBtn7.Enabled:=True;

end;

 

procedure TForm1.BitBtn7Click(Sender: TObject);

begin

Form1.Height:=827;

BitBtn7.Enabled:=False;

end;

 

procedure TForm1.Table3CalcFields(DataSet: TDataSet);

begin

Table3Sum.Value:=Table3Oklad.Value+Table3Oklad.Value*Table3Nadbavka.Value/100;

end;

 

procedure TForm1.Table1BeforeDelete(DataSet: TDataSet);

begin

Table2.MasterSource:=DataSource1;

Table2.IndexName:='TabelNumber1';

Table2.MasterFields:='TabelNumber';

with Table2 do begin

disableControls;

first;

while not EOF do

delete;

enableControls; end;

Table2.MasterSource:=nil;

Table2.IndexName:='';

Table2.MasterFields:='';

end;

 

procedure TForm1.Table3BeforeDelete(DataSet: TDataSet);

begin

Table2.MasterSource:=DataSource3;

Table2.IndexName:='MNumber1';

Table2.MasterFields:='MNumber';

with Table2 do begin

disableControls;

first;

while not EOF do

delete;

enableControls; end;

Table2.MasterSource:=nil;

Table2.IndexName:='';

Table2.MasterFields:='';

end;

 

end.

 

unit BDFind;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Buttons;

 

type

  TForm2 = class(TForm)

    GroupBox1: TGroupBox;

    Label1: TLabel;

    ComboBox1: TComboBox;

    Label2: TLabel;

    Edit1: TEdit;

    BitBtn1: TBitBtn;

    procedure FormActivate(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form2: TForm2;

implementation

uses BD;

{$R *.dfm}

procedure TForm2.FormActivate(Sender: TObject);

begin

Edit1.Clear;

Edit1.SetFocus;

end;

end.


Информация о работе База данных «Аптека»