
- •Оглавление
- •Постановка задачи. Описание проекта
- •Документы предметной области
- •Описание серверной части
- •Диаграмма базы данных, полученная средствами ibExpert:
- •Полный документированный скрипт на создание базы данных Создание таблиц
- •Создание индексов
- •Триггеры
- •Генераторы
- •Хранимые процедуры
- •Описание клиентской части
- •Руководство пользователя.
- •Руководство разработчика.
- •Заключение
- •Список используемого программного обеспечения
- •Список используемой литературы
- •Полный код программы
Заключение
В данной курсовой работе я разработал информационную систему для отслеживания финансовых показателей работы платной поликлиники.
База данных предназначена для хранения информации о персонале поликлиники, пациентах, посещающих ее, записях пациентов на приемы, об услугах, оказываемых врачами, и их стоимости. Все поставленные задачи в курсовой работе были реализованы (удобство редактирования данных, выборки, ведение отчетности).
Список используемого программного обеспечения
Delphi7
Firebird-1.5
IBExpert (версия 2009 года)
Microsoft Office. Word 2007
Список используемой литературы
Голицын О.Л., Максимов Н.В., Попов И.И. Базы данных: Учебное пособие. – М.:ФОРУМ: ИНФРА-М, 2005. -352с.
Ковязин С., Востриков С. Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/ Firebird/ Yaffil. – М.: КУДИЦ – ОБРАЗ, 2005. – 496 с.
Фаронов В.В., Программирование баз данных в Delphi. – СПб.: Питер, 2006.- 459 с.: ил.
Хомоненко А.Д., Гофман В.Э. Работа с базами данных в Delphi. – СПб.: БХВ – Петербург, 2005. – 640с.
Архангельский А.Я., Программирование в Delphi 7 – М., Бином-Пресс, 2003.
Приложение 1
Полный код программы
unit Unit1; //Модуль записи пациентов на прием
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, IBCustomDataSet, IBDatabase, IBStoredProc, IBSQL, ExtCtrls,
DBCtrls, Grids, DBGrids, StdCtrls, Mask, RpCon, RpConDS, RpDefine, RpRave,
DBTables, Menus;
type
TForm1 = class(TForm)
DBNavigator1: TDBNavigator;
Button3: TButton;
IBDatabase1: TIBDatabase;
IBTransaction1: TIBTransaction;
IBDataSet1: TIBDataSet;
DataSource1: TDataSource;
IBStoredProc1: TIBStoredProc;
MainMenu1: TMainMenu;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
DBGrid1: TDBGrid;
IBDataSet1N: TIntegerField;
IBDataSet1ID_PACIENTA: TIntegerField;
IBDataSet1ID_VRACHA: TIntegerField;
IBDataSet1TIME_PRIEMA: TTimeField;
IBDataSet1DIAGNOZ: TIBStringField;
IBDataSet1VID_NAZNACHENIYA: TIBStringField;
IBDataSet1DATE_OBRASHENIYA: TDateField;
IBDataSet1STOIMOST_LECHENIYA: TIBBCDField;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
DBGrid2: TDBGrid;
DataSource2: TDataSource;
IBDataSet2: TIBDataSet;
IBSQL1: TIBSQL;
Button1: TButton;
DBGrid3: TDBGrid;
IBDataSet3: TIBDataSet;
DataSource3: TDataSource;
Label3: TLabel;
Button2: TButton;
IBStoredProc2: TIBStoredProc;
Label4: TLabel;
procedure FormCreate(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3, Unit4, Unit5, Unit6, Unit7;
{$R *.dfm}
// Обработчик события OnFormCreate
procedure TForm1.FormCreate(Sender: TObject);
begin
IBDatabase1.Connected:= True;
IBDataSet1.Active:= True;
end;
//Переключение между формами
procedure TForm1.N3Click(Sender: TObject);
begin
Form1.visible:=true;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
Form2.visible:=true;
end;
procedure TForm1.N6Click(Sender: TObject);
begin
Form3.visible:=true;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
Form4.visible:=true;
end;
procedure TForm1.N8Click(Sender: TObject);
begin
Form5.visible:=true;
end;
procedure TForm1.N9Click(Sender: TObject);
begin
Form7.visible:=true;
end;
procedure TForm1.N1Click(Sender: TObject);
begin
Form6.visible:=true;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
DBGrid1.visible:=true;
DBGrid2.visible:=true;
DBGrid3.visible:=true;
DBNavigator1.visible:=true;
Button1.visible:=true;
Button2.visible:=true;
Button3.visible:=true;
Edit1.Visible:=true;
Label1.visible:=true;
Label2.visible:=true;
Label3.visible:=true;
end;
// Процедура расчета стоимости лечения
procedure TForm1.Button3Click(Sender: TObject);
begin
IBStoredProc1.ParamByName('N_A').AsInteger:= IBDataSet1.FieldByName('N').AsInteger;
IBStoredProc1.ParamByName('VID_NAZNACHENIYA_A').AsString:=IBDataSet1.FieldByName('VID_NAZNACHENIYA').AsString;
IBStoredProc1.ParamByName('ID_PACIENTA_A').AsInteger:=IBDataSet1.FieldByName('ID_PACIENTA').AsInteger;
IBStoredProc1.ExecProc;
IBDataSet1.Close;
IBDataSet1.Open;
Form7.IBDataSet1.Close;
Form7.IBDataSet3.Close;
Form7.IBDataSet1.Open;
Form7.IBDataSet3.Open;
end;
// Обработчик события OnFormActivate
procedure TForm1.FormActivate(Sender: TObject);
begin
if IBDataset1.Active then IBDataset1.Close;
IBDataSet1.Open;
end;
// Обработчик события OnFormClose
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
IBdataset1.Close;
end;
//Процедура выборки врача по специальности
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.text='' then showmessage('Введите специальность')
else
begin
Ibdataset2.Open;
Ibdataset2.Close;
Ibdataset2.SelectSQL.text:='select * from SPECIALNOST_VR('''+edit1.text+''')';
Ibdataset2.Open;
Edit1.text:='';
end;
end;
end.
unit Unit2; //Модуль редактирования таблицы ВРАЧИ
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, DB, IBCustomDataSet, ExtCtrls, DBCtrls, Grids, DBGrids,
StdCtrls, IBStoredProc;
type
TForm2 = class(TForm)
DBNavigator1: TDBNavigator;
IBDataSet1: TIBDataSet;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
IBDataSet1ID_VRACHA: TIntegerField;
IBDataSet1V_FAMILIYA: TIBStringField;
IBDataSet1V_NAME: TIBStringField;
IBDataSet1V_OTCHESTVO: TIBStringField;
IBDataSet1SPECIALNOST: TIBStringField;
IBDataSet1KVALIFIKACIYA: TIBStringField;
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.N2Click(Sender: TObject);
begin
Form1.visible:=true;
Form2.visible:=false;
end;
procedure TForm2.N3Click(Sender: TObject);
begin
Form2.visible:=true;
Form1.visible:=false;
end;
end.
unit Unit3; //Модуль редактирования таблицы ПАЦИЕНТЫ
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, IBCustomDataSet, ExtCtrls, DBCtrls, Grids, DBGrids;
type
TForm3 = class(TForm)
DBNavigator1: TDBNavigator;
DataSource1: TDataSource;
IBDataSet1: TIBDataSet;
DBGrid1: TDBGrid;
IBDataSet1ID_PACIENTA: TIntegerField;
IBDataSet1P_FAMILIYA: TIBStringField;
IBDataSet1P_NAME: TIBStringField;
IBDataSet1P_OTCHESTVO: TIBStringField;
IBDataSet1GOD_ROZHDENIYA: TIntegerField;
IBDataSet1KATEGORIYA_SKIDKI: TIntegerField;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
end.
unit Unit4; //Модуль редактирования таблицы СКИДКИ
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, IBCustomDataSet, ExtCtrls, DBCtrls, Grids, DBGrids;
type
TForm4 = class(TForm)
DBNavigator1: TDBNavigator;
IBDataSet1: TIBDataSet;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
IBDataSet1KATEGORIYA_SKIDKI: TIntegerField;
IBDataSet1S_NAIMENOVANIE: TIBStringField;
IBDataSet1SIZE_SKIDKI: TIBBCDField;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
end.
unit Unit5; //Модуль редактирования таблицы СТОИМОСТЬ НАЗНАЧЕНИЙ
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, IBCustomDataSet, ExtCtrls, DBCtrls, Grids, DBGrids;
type
TForm5 = class(TForm)
DBNavigator1: TDBNavigator;
IBDataSet1: TIBDataSet;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
IBDataSet1VID_NAZNACHENIYA: TIBStringField;
IBDataSet1N_NAIMENOVANIE: TIBStringField;
IBDataSet1CENA: TIBBCDField;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
{$R *.dfm}
end.
unit Unit6; //Модуль регистрации пациентов
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, IBCustomDataSet, StdCtrls, Grids, DBGrids, IBStoredProc,
IBSQL;
type
TForm6 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Edit3: TEdit;
Edit4: TEdit;
Label3: TLabel;
Label4: TLabel;
Edit5: TEdit;
Label5: TLabel;
Button1: TButton;
IBDataSet1: TIBDataSet;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
IBStoredProc1: TIBStoredProc;
Label6: TLabel;
Edit6: TEdit;
IBDataSet1ID_PACIENTA: TIntegerField;
IBDataSet1P_FAMILIYA: TIBStringField;
IBDataSet1P_NAME: TIBStringField;
IBDataSet1P_OTCHESTVO: TIBStringField;
IBDataSet1GOD_ROZHDENIYA: TIntegerField;
IBDataSet1KATEGORIYA_SKIDKI: TIntegerField;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
uses Unit1, Unit3, Unit4, Unit5, Unit2, Unit7;
{$R *.dfm}
//Процедура регистрации введенной информации
procedure TForm6.Button1Click(Sender: TObject);
begin
if (edit1.text='') or (edit2.text='') or (edit3.text='') or (edit4.text='') or (edit5.text='') or (edit6.text='') then showmessage('Введите информацию')
else
begin
IBDataset1.Open;
IBDataset1.Close;
IBStoredProc1.ParamByName('ID_PACIENTA_A').AsInteger:=strtoint(edit6.Text);
IBStoredProc1.ParamByName('P_FAMILIYA_A').AsString:=edit1.Text;
IBStoredProc1.ParamByName('P_NAME_A').AsString:=edit2.Text;
IBStoredProc1.ParamByName('P_OTCHESTVO_A').AsString:=edit3.Text;
IBStoredProc1.ParamByName('GOD_ROZHDENIYA_A').AsInteger:=strtoint(edit4.Text);
IBStoredProc1.ParamByName('KATEGORIYA_SKIDKI_A').AsInteger:=strtoint(edit5.Text);
IBStoredProc1.ExecProc;
Form1.IBTransaction1.Commit;
IBDataset1.Open;
Form1.IBDataset1.Open;
Form1.IBDataset2.Open;
Form3.IBDataset1.Open;
Form4.IBDataset1.Open;
Form5.IBDataset1.Open;
Form2.IBDataset1.Open;
Form7.IBDataset1.Open;
Form7.IBDataset3.Open;
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
end;
end;
end.
unit Unit7; //Модуль создания отчетов
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, IBCustomDataSet, StdCtrls, Mask, DBCtrls, Grids, DBGrids,
ExtCtrls, RpRave, RpDefine, RpCon, RpConDS;
type
TForm7 = class(TForm)
Button1: TButton;
IBDataSet1: TIBDataSet;
DataSource1: TDataSource;
IBDataSet3: TIBDataSet;
DataSource3: TDataSource;
RvDataSetConnection1: TRvDataSetConnection;
RvProject1: TRvProject;
DBGrid1: TDBGrid;
IBDataSet3N: TIntegerField;
IBDataSet3P_FAMILIYA: TIBStringField;
IBDataSet3P_NAME: TIBStringField;
IBDataSet3P_OTCHESTVO: TIBStringField;
IBDataSet3GOD_ROZHDENIYA: TIntegerField;
IBDataSet3DIAGNOZ: TIBStringField;
IBDataSet3VID_NAZNACHENIYA: TIBStringField;
IBDataSet3DATE_OBRASHENIYA: TDateField;
IBDataSet3STOIMOST_LECHENIYA: TIBBCDField;
IBDataSet1N: TIntegerField;
IBDataSet1P_FAMILIYA: TIBStringField;
IBDataSet1P_NAME: TIBStringField;
IBDataSet1P_OTCHESTVO: TIBStringField;
IBDataSet1GOD_ROZHDENIYA: TIntegerField;
IBDataSet1DIAGNOZ: TIBStringField;
IBDataSet1VID_NAZNACHENIYA: TIBStringField;
IBDataSet1DATE_OBRASHENIYA: TDateField;
IBDataSet1STOIMOST_LECHENIYA: TIBBCDField;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
{$R *.dfm}
//Процедура вызова отчета для просмотра и печати
procedure TForm7.Button1Click(Sender: TObject);
begin
RvProject1.Execute;
end;
end.