Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДП Курик Микола 18 06.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
13 Мб
Скачать
☆

Висновки

В результаті розробки дипломного проекту було розроблено автоматизовану інформаційно-довідкову систему, яка призначена для полегшення роботи адміністратора та зручного перегляду інформації, яку надає оздоровчий комплекс. Також було спроектовано архітектуру, структуру та інтерфейс програмного продукту, створено функції для реалізації поставленого завдання.

Тестування програмного забезпечення показало, що воно працює коректно та відповідає поставленим раніше вимогам. При цьому, структура розробки достатньо гнучка що дає можливість в майбутньому розширити її додатковими можливостями.

Для розробки графічного інтерфейсу автоматизованої інформаційної-довідкової системи оздоровчого комплексу «Енігма» було використано середовише програмування Delphi 7, для створення бази даних – СУБД MS Access.

Було закріплено теоретичні знання та вдосконалені практичні навички, а також здобуті під час вивчення дисциплін програмування.

Завдання дипломного проекту виконано, в результаті створено автоматизовану інформаційно-довідкову систему оздоровчого комплексу «Енігма».

Перелік джерел

  1. Автоматизовані системи керування / [Електронний ресурс]. – Режим доступу: http://uk.wikipedia.org/wiki. Ситник В. Ф., Писаревська Н. В., Єрьоміна Н. В., Краєва О. С. Основи інформаційних систем: Навч. посіб. – К.: КНЕУ, 1997р. – 362с.

  2. Архангельский А. Я. Программирование в Delphi 7. - М.: ООО «Бином-Пресс», 2004 г. – 1152 с.

  3. Гофман В.О. Delphi швидкий старт [Текст]: навчальний посібник / В.О. Гофман; БХВ-Петербург – Санкт Петербург.: БХВ-Петербург, 2002. –288 с. – ISBN 5-94157-165-8.

  4. Жидецький В.Ц. Основи охорони праці – Львів : Укр. акад. друкарства, 2006. – 336 с

  5. Мова реляційних баз даних SQL і його стандарти / [Електронний ресурс]. – Режим доступу: http://www.mywebsite.org.ua/article/movarelyatsiinyh-baz-danyh-sql-i-iogo-standarty/index.html.

  6. Принципи побудови управлінських систем, їхня структура / [Електронний ресурс]. – Режим доступу: http://www.br.com.ua/referats /Computers / 29111.htm.

  7. Тюкачев Н., Свиридов Ю. Delphi 5. Создание мультимедийных приложений: учебный курс. – СПб.: Питер, 2001. – 400 с.

Додатки Додаток а Лістинг програми

Форма реєстрація користувачів:

unit login;

interface

uses

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

Dialogs, StdCtrls, Buttons;

type

TFrmLogin = class(TForm)

GroupBox1: TGroupBox;

Combo: TComboBox;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Label1: TLabel;

ep: TEdit;

private

{ Private declarations }

public

{ Public declarations }

end;

var

FrmLogin: TFrmLogin;

function DoLogin:boolean ;

implementation

uses dat,sqladotools, DB;

{$R *.dfm}

function DoLogin:boolean ;

var i:integer;

begin

adminid:=-1;

Application.CreateForm(TFrmLogin, FrmLogin);

with MakeCursor('select * from admins order by 2') do

begin

while not eof do

begin

FrmLogin.combo.Items.AddObject(Fields[1].AsString,pointer(Fields[0].AsInteger));

next;

end;

free;

end;

if FrmLogin.combo.Items.Count>0 then FrmLogin.combo.ItemIndex:=0;

repeat

if FrmLogin.ShowModal<>mrOk then

begin

result:=false;

FrmLogin.free;

exit;

end;

adminid:=integer(FrmLogin.Combo.Items.Objects[FrmLogin.Combo.itemIndex]);

with MakeCursor(format('select * from admins where id=%d and Password="%s"',

[adminid,FrmLogin.ep.text])) do

begin

if not IsEmpty then

begin

user := fields[1].AsString;

passw :=FrmLogin.ep.text;

super := user = SADM;

dm.TblAdmins.Close;

dm.TblAdmins.ReadOnly := not super;

FrmLogin.free;

result:=true;

exit;

end;

adminid:=-1;

free;

end;

until adminid<>-1;

end;

end.

Головна форма: unit Main;

//Головна форма

interface

uses

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

Dialogs, Grids, DBGrids, ExtCtrls, ComCtrls, ImgList, ActnList, Menus,rusdlg,

ToolWin,StdCtrls, DB, DBTables,sqladotools, ADODB, OleCtrls, SHDocVw,inifiles,

Buttons,jpeg, XPMan ;

const

qt='''';

usersName:array [false..true] of string =('Користувач','Адміністратор');

type

TFrmMain = class(TForm)

StatusBar1: TStatusBar;

MenuItemSpec : TMenuItem;

ActSprSPEC: TAction;

MenuItemMaterials : TMenuItem;

ActSprMATERIALS: TAction;

MenuItemWorkTime : TMenuItem;

ActSprWORKTIME: TAction;

MenuItemServiseOnCard : TMenuItem;

ActSprSERVISEONCARD: TAction;

MenuItemService_Speciality : TMenuItem;

ActSprSERVICE_SPECIALITY: TAction;

MenuItemSpeciality : TMenuItem;

ActSprSPECIALITY: TAction;

MenuItemService : TMenuItem;

ActSprSERVICE: TAction;

MenuItemAdmins : TMenuItem;

ActSprADMINS: TAction;

MenuItemCabinet : TMenuItem;

ActSprCABINET: TAction;

ActSprVIEWTYPES: TAction;

MenuItemcards : TMenuItem;

ActSprCARDS: TAction;

MenuItemCardTypes : TMenuItem;

ActSprCARDTYPES: TAction;

ActSprTIMEFORCARDS: TAction;

MainMenu1: TMainMenu;

N1: TMenuItem;

ActionList1: TActionList;

ExitProg: TAction;

N7: TMenuItem;

Login: TAction;

N12: TMenuItem;

Clients: TAction;

N3: TMenuItem;

SpecServ: TAction;

NewPosech: TAction;

N10: TMenuItem;

NewPosech1: TMenuItem;

About: TAction;

N13: TMenuItem;

N15: TMenuItem;

Timer1: TTimer;

ActCards: TAction;

R1: TMenuItem;

N18: TMenuItem;

N2: TMenuItem;

RegPosech: TAction;

Image1: TImage;

ActionUserParam: TAction;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N8: TMenuItem;

ActStat: TAction;

N9: TMenuItem;

N16: TMenuItem;

ActStat2: TAction;

ActStat3: TAction;

N19: TMenuItem;

StatClient: TAction;

ActBurned: TAction;

N20: TMenuItem;

N21: TMenuItem;

AclClientDt: TAction;

N22: TMenuItem;

XPManifest1: TXPManifest;

procedure ExitProgExecute(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure LoginExecute(Sender: TObject);

procedure ClientsExecute(Sender: TObject);

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure NewPosechExecute(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure AboutExecute(Sender: TObject);

procedure ActSprTIMEFORCARDSExecute(Sender: TObject);

procedure ActSprCARDTYPESExecute(Sender: TObject);

procedure ActSprCARDSExecute(Sender: TObject);

procedure ActSprVIEWTYPESExecute(Sender: TObject);

procedure ActSprCABINETExecute(Sender: TObject);

procedure ActSprADMINSExecute(Sender: TObject);

procedure ActSprSERVICEExecute(Sender: TObject);

procedure ActSprSPECIALITYExecute(Sender: TObject);

procedure ActSprSERVICE_SPECIALITYExecute(Sender: TObject);

procedure ActSprSERVISEONCARDExecute(Sender: TObject);

procedure ActSprWORKTIMEExecute(Sender: TObject);

procedure ActSprMATERIALSExecute(Sender: TObject);

procedure RegPosechExecute(Sender: TObject);

procedure ActionUserParamExecute(Sender: TObject);

procedure ActSprSPECExecute(Sender: TObject);

procedure ActStatExecute(Sender: TObject);

procedure ActStat2Execute(Sender: TObject);

procedure ActStat3Execute(Sender: TObject);

procedure StatClientExecute(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure ActBurnedExecute(Sender: TObject);

procedure ActSprVIEWLASTDTExecute(Sender: TObject);

procedure AclClientDtExecute(Sender: TObject);

private

{ Private declarations }

public

procedure ShowHint(Sender: TObject);

{ Public declarations }

end;

var

FrmMain: TFrmMain;

implementation

uses klViewLastDt, klSpec, klUsedMat, klMaterials, klWorkTime, klServiseOnCard, klService_Speciality, klSpeciality, klService, klAdmins, klCabinet, klViewTypes, klcards, klCardTypes, klTimeForCards, loginm, client, about,

add, dat, priem,login,usersett,stat, stat2, Stat3, statcli;

{$R *.dfm}

procedure sorry;

begin

rusdlg.Error('Ні. Не було чи загублено.');

end;

// Вихід

procedure TFrmMain.ExitProgExecute(Sender: TObject);

begin

close;

end;

//створення форми

procedure TFrmMain.FormCreate(Sender: TObject);

var

s:string;

begin

Application.OnHint := ShowHint;

statusbar1.panels[0].text := 'Адміністратор: '+user;

end;

procedure TFrmMain.ShowHint(Sender: TObject);

begin

statusbar1.panels[2].text := Application.Hint;

end;

//Вхід в систему

procedure TFrmMain.LoginExecute(Sender: TObject);

var emp:boolean;

SecLevel:integer;

begin

if not DoLogin then

begin

Close;

Exit;

end;

statusbar1.panels[0].text := 'Адміністратор: '+user;

end;

procedure TFrmMain.ClientsExecute(Sender: TObject);

begin

Application.CreateForm(TFrmClient, FrmClient);

FrmClient.ShowModal;

FrmClient.free;

end;

procedure TFrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

// CanClose := Confirm('Ви дійсно хочете вийти?');

end;

procedure TFrmMain.NewPosechExecute(Sender: TObject);

begin

// sorry;

try

dm.Tbldata.Close;

dm.Tbldata.Open;

Application.CreateForm(TFrmAddPosech, FrmAddPosech);

with FrmAddPosech do

begin

FrmAddPosech.LastServ:=-1;

dm.Tbldata.Append;

if ShowModal=mrOk then

begin

dm.TbldataData_start.Value := GetDate;

dm.TbldataData_end.Value := GetDate(False);

dm.TbldataCost.Value := StrToInt(LCost.Caption);

dm.Tbldatasost.Value:=0;

dm.Tbldata.Post;

if card<>-1 then

dm.FixedPos(card,dm.TbldataService_ID.Value);

end

else

dm.Tbldata.cancel;

FrmAddPosech.free;

end;

except

on e:Exception do

ShowMessage(e.Message);

end

end;

procedure TFrmMain.Timer1Timer(Sender: TObject);

begin

StatusBar1.Panels[1].Text:=DateTimeToStr(now);

{ if assigned(FrmAddPosech) then

FrmAddPosech.Lt.Caption := DateTimeToStr(now); }

end;

procedure TFrmMain.AboutExecute(Sender: TObject);

begin

Application.CreateForm(TOKBottomDlg, OKBottomDlg);

OKBottomDlg.ShowModal;

OKBottomDlg.Free;

end;

procedure TFrmMain.ActSprTIMEFORCARDSExecute(Sender: TObject);

begin

// RunFrmKlTIMEFORCARDS;

end;

procedure TFrmMain.ActSprCARDTYPESExecute(Sender: TObject);

begin

RunFrmKlCARDTYPES;

end;

procedure TFrmMain.ActSprCARDSExecute(Sender: TObject);

begin

RunFrmKlCARDS;

end;

procedure TFrmMain.ActSprVIEWTYPESExecute(Sender: TObject);

begin

// RunFrmKlVIEWTYPES;

end;

procedure TFrmMain.ActSprCABINETExecute(Sender: TObject);

begin

RunFrmKlCABINET;

end;

procedure TFrmMain.ActSprADMINSExecute(Sender: TObject);

begin

RunFrmKlADMINS;

end;

procedure TFrmMain.ActSprSERVICEExecute(Sender: TObject);

begin

RunFrmKlSERVICE;

end;

procedure TFrmMain.ActSprSPECIALITYExecute(Sender: TObject);

begin

RunFrmKlSPECIALITY;

end;

procedure TFrmMain.ActSprSERVICE_SPECIALITYExecute(Sender: TObject);

begin

RunFrmKlSERVICE_SPECIALITY;

end;

procedure TFrmMain.ActSprSERVISEONCARDExecute(Sender: TObject);

begin

RunFrmKlSERVISEONCARD;

end;

procedure TFrmMain.ActSprWORKTIMEExecute(Sender: TObject);

begin

RunFrmKlWORKTIME;

end;

procedure TFrmMain.ActSprMATERIALSExecute(Sender: TObject);

begin

RunFrmKlMATERIALS;

end;

procedure TFrmMain.RegPosechExecute(Sender: TObject);

begin

Application.CreateForm(TFrmPriem, FrmPriem);

FrmPriem.ShowModal;

FrmPriem.Free;

end;

procedure TFrmMain.ActionUserParamExecute(Sender: TObject);

begin

Application.CreateForm(TFrmSett, FrmSett);

with FrmSett do

begin

edlogin.Text:=user;

edPassw.Text:=passw;

if ShowModal=mrOk then

begin

passw:=edPassw.Text;

RunSql('update admins set Password="%s" where id=%d',[passw,adminid]);

Notify('Пароль змінений');

end;

free;

end;

end;

procedure TFrmMain.ActSprSPECExecute(Sender: TObject);

begin

RunFrmKlSPEC;

end;

procedure TFrmMain.ActStatExecute(Sender: TObject);

begin

Application.CreateForm(TFrmStat, FrmStat);

FrmStat.ShowModal;

FrmStat.Free;

end;

procedure TFrmMain.ActStat2Execute(Sender: TObject);

begin

Application.CreateForm(TFrmStat2, FrmStat2);

FrmStat2.ShowModal;

FrmStat2.Free;

end;

procedure TFrmMain.ActStat3Execute(Sender: TObject);

begin

Application.CreateForm(TFrmStat3, FrmStat3);

FrmStat3.ShowModal;

FrmStat3.Free;

end;

procedure TFrmMain.StatClientExecute(Sender: TObject);

begin

Application.CreateForm(TFrmStatClient, FrmStatClient);

FrmStatClient.ShowModal;

FrmStatClient.Free;

end;

procedure TFrmMain.FormActivate(Sender: TObject);

var s:string;

begin

s:=dm.ToDayBurned;

if s='' then Exit;

MessageBox(0, PChar(s), 'З днем народження!', MB_ICONINFORMATION or MB_OK);

end;

procedure TFrmMain.ActBurnedExecute(Sender: TObject);

var s:string;

begin

s:=dm.ToDayBurned;

if s='' then MessageDlg('Ні в кого немає.', mtWarning, [mbOK], 0)

else

MessageBox(0, PChar(s), 'З днем народження!', MB_ICONINFORMATION or MB_OK);

end;

procedure TFrmMain.ActSprVIEWLASTDTExecute(Sender: TObject);

begin

// RunFrmKlVIEWLASTDT;

end;

procedure TFrmMain.AclClientDtExecute(Sender: TObject);

begin

Application.CreateForm(TFrmKlViewLastDt,FrmKlViewLastDt);

FrmKlViewLastDt.ShowModal;

FrmKlViewLastDt.Free;

end;

end.

Форма «Кабінети»:

unit klCabinet;

{ Форма роботи з довідником"Кабінети" }

interface

uses

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

Dialogs, Grids, DBGrids, DB, ComCtrls, ExtCtrls, DBCtrls, Buttons,

StdCtrls;

type

TFrmKlCabinet = class(TForm)

DsLoc: TDataSource;

grid: TDBGrid;

Panel1: TPanel;

PanelOk: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

DBNavigator1: TDBNavigator;

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FrmKlCabinet: TFrmKlCabinet;

procedure RunFrmKlCabinet; // процедура запуску довідника

function SelectFrmKlCabinet(var id:integer; title : string=''):boolean; // запуск вибора запису

implementation

uses dat,msword,sg2word,rusdlg,sg2mail,sg2csv;

{$R *.dfm}

procedure RunFrmKlCabinet; // процедура запуску довідника

begin

Application.CreateForm(TFrmKlCabinet, FrmKlCabinet); // створити форму довідника

FrmKlCabinet.ShowModal; // показать модально

FrmKlCabinet.Free; // звільнити пам'ять

end;

function SelectFrmKlCabinet(var id:integer; title : string):boolean;

begin

Application.CreateForm(TFrmKlCabinet, FrmKlCabinet); // створити форму довідника

dm.TblCABINET .Locate('id',id,[]); //пошук старого значення

if title<>'' then FrmKlCabinet.Caption := FrmKlCabinet.Caption +' : '+title; //встановити заголовок

result:=FrmKlCabinet.ShowModal=mrOk; // результат = результат модального запуску

if result then // якщо Ок

id :=dm.TblCABINET . FieldByName('id').AsInteger; // зберегти нове значення

FrmKlCabinet.Free; // звільнити пам'ять

end;

// По створеню форми

procedure TFrmKlCabinet.FormCreate(Sender: TObject);

begin

DsLoc.DataSet.Open; // відкрити джерело даних

end;

end.

Форма «Спеціальність»:

unit klSpec;

{ Форма работи з довідником "Спеціальності" }

interface

uses

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

Dialogs, Grids, DBGrids, DB, ComCtrls, ExtCtrls, DBCtrls, Buttons,

StdCtrls;

type

TFrmKlSpec = class(TForm)

DsLoc: TDataSource;

grid: TDBGrid;

Panel1: TPanel;

PanelOk: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

DBNavigator1: TDBNavigator;

procedure FormCreate(Sender: TObject);

procedure DsLocDataChange(Sender: TObject; Field: TField);

procedure BtnCloseClick(Sender: TObject);

procedure BtnRepClick(Sender: TObject);

procedure BtnSendToMailClick(Sender: TObject);

procedure BtnExportClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FrmKlSpec: TFrmKlSpec;

procedure RunFrmKlSpec; // процедура запуска довідника

function SelectFrmKlSpec(var id:integer; title : string=''):boolean; // запуск вибора запису

implementation

uses dat,msword,sg2word,rusdlg,sg2mail,sg2csv;

{$R *.dfm}

procedure RunFrmKlSpec; // процедура запуска довідника

begin

Application.CreateForm(TFrmKlSpec, FrmKlSpec); // створити форму довідник

FrmKlSpec.ShowModal; // показать модально

FrmKlSpec.Free; // звільнити пам'ять

end;

function SelectFrmKlSpec(var id:integer; title : string):boolean;

begin

Application.CreateForm(TFrmKlSpec, FrmKlSpec); // створити форму довідник

dm.TblSPEC .Locate('id',id,[]); //пошук старого значення

if title<>'' then FrmKlSpec.Caption := FrmKlSpec.Caption +' : '+title; //встановити зоголовок

FrmKlSpec.PanelOk.Show;

result:=FrmKlSpec.ShowModal=mrOk; // результат = результат модального запуску

if result then // якщо Ок

id :=dm.TblSPEC . FieldByName('id').AsInteger; // зберегти нове значення

FrmKlSpec.Free; // звільнити пам'ять

end;

// По створеню форми

procedure TFrmKlSpec.FormCreate(Sender: TObject);

begin

DsLoc.DataSet.Open; // відкрити джерело даних

end;

// Зміна в даних

procedure TFrmKlSpec.DsLocDataChange(Sender: TObject; Field: TField);

begin

end;

// натискання кнопки "закрити"

procedure TFrmKlSpec.BtnCloseClick(Sender: TObject);

begin

close; // закрити форму

end;

// вивід в Word

procedure TFrmKlSpec.BtnRepClick(Sender: TObject);

var word:TMSWord;

begin

word:=TMSWord.Create; //створити класс TMSWord

if not word.Open then //відкрити зв'язок з Ole об’єктом

begin

Error('Не можу відкрити msWord');

exit;

end;

word.New; //новий документ

word.InsertCenterText(caption+#13); //вставить заголовок документа

DataSetToWordTable(Grid,DsLoc.DataSet,word,true); //вставити таблицю

word.Show; //показати Word

word.Free; //Звільнити пам'ять

end;

// відкрити на почті

procedure TFrmKlSpec.BtnSendToMailClick(Sender: TObject);

begin

DataSetToMail(caption,grid,dsloc.DataSet,true);

end;

// вывод в Excel

procedure TFrmKlSpec.BtnExportClick(Sender: TObject);

begin

DataSetToCSV(caption,grid,dsloc.DataSet,true);

end;

end.

Форма «Працівники»:

unit klSpeciality;

{ Форма работи з довідником "Співробітники" }

interface

uses

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

Dialogs, Grids, DBGrids, DB, ComCtrls, ExtCtrls, DBCtrls, Buttons,

StdCtrls, Mask;

type

TFrmKlSpeciality = class(TForm)

DsLoc: TDataSource;

grid: TDBGrid;

Panel1: TPanel;

PanelOk: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

DBNavigator1: TDBNavigator;

Panel2: TPanel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label1: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

DBEdit5: TDBEdit;

DBEdit1: TDBEdit;

DBEdit6: TDBEdit;

DBEdit7: TDBEdit;

DBEdit8: TDBEdit;

DBEdit9: TDBEdit;

Label10: TLabel;

DBLookupComboBox1: TDBLookupComboBox;

SelSpec: TSpeedButton;

Label11: TLabel;

Edit1: TEdit;

Label12: TLabel;

DBEdit10: TDBEdit;

procedure FormCreate(Sender: TObject);

procedure SelSpecClick(Sender: TObject);

procedure Edit1Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FrmKlSpeciality: TFrmKlSpeciality;

procedure RunFrmKlSpeciality; // процедура запуску довідника

function SelectFrmKlSpeciality(var id:integer; title : string=''):boolean; // запуск вибір запису

implementation

uses dat,msword,sg2word,rusdlg,sg2mail,sg2csv,klspec;

{$R *.dfm}

procedure RunFrmKlSpeciality; // процедура запуску довідника

begin

Application.CreateForm(TFrmKlSpeciality, FrmKlSpeciality); // створити форму довідник

FrmKlSpeciality.ShowModal; // показать модально

FrmKlSpeciality.Free; // звільнити пам'ять

end;

function SelectFrmKlSpeciality(var id:integer; title : string):boolean;

begin

Application.CreateForm(TFrmKlSpeciality, FrmKlSpeciality); // створити форму довідник

dm.TblSPECIALITY .Locate('id',id,[]); //пошук старого значення

if title<>'' then FrmKlSpeciality.Caption := FrmKlSpeciality.Caption +' : '+title; //встановити заголовок

result:=FrmKlSpeciality.ShowModal=mrOk; // результат = результат модального запуску

if result then // якщо Ок

id :=dm.TblSPECIALITY . FieldByName('id').AsInteger; // зберегти нове значення

FrmKlSpeciality.Free; // звільнити пам'ять

end;

// По створеню форми

procedure TFrmKlSpeciality.FormCreate(Sender: TObject);

begin

DsLoc.DataSet.Open; // відкрити джерело даних

end;

procedure TFrmKlSpeciality.SelSpecClick(Sender: TObject);

var id:integer;

begin

id:=dm.TblSpecialitySpecId.Value;

if SelectFrmKlSpec(id,'Виберіть спеціальність') then

begin

if dm.TblSpeciality.State=dsBrowse then dm.TblSpeciality.Edit;

dm.TblSpecialitySpecId.Value:=id;

end;

end;

procedure TFrmKlSpeciality.Edit1Change(Sender: TObject);

begin

if dm.TblSpeciality.Locate('SurName',Edit1.Text,[loCaseInsensitive, loPartialKey]) then

Edit1.Font.Color := clWindowText

else

Edit1.Font.Color := clRed;

// Notify('Не найдено : "%s"',[Edit1.Text]);

end;

end.

Форма «Адміністратори»:

unit klAdmins;

{ Форма работи з довідником "Admins" }

interface

uses

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

Dialogs, Grids, DBGrids, DB, ComCtrls, ExtCtrls, DBCtrls, Buttons,

StdCtrls;

type

TFrmKlAdmins = class(TForm)

DsLoc: TDataSource;

grid: TDBGrid;

Panel1: TPanel;

PanelOk: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

DBNavigator1: TDBNavigator;

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FrmKlAdmins: TFrmKlAdmins;

procedure RunFrmKlAdmins; // процедура запуску довідника

function SelectFrmKlAdmins(var id:integer; title : string=''):boolean; // запуск вибору запису

implementation

uses dat,msword,sg2word,rusdlg,sg2mail,sg2csv;

{$R *.dfm}

procedure RunFrmKlAdmins; // процедура запуску довідника

begin

Application.CreateForm(TFrmKlAdmins, FrmKlAdmins); // створити форму довідник

FrmKlAdmins.ShowModal; // показать модально

FrmKlAdmins.Free; // звільнити память

end;

Форма «Послуги по картам»:

unit klServiseOnCard;

{ Форма работи з довідником "Послуги по карті" }

interface

uses

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

Dialogs, Grids, DBGrids, DB, ComCtrls, ExtCtrls, DBCtrls, Buttons,

StdCtrls;

type

TFrmKlServiseOnCard = class(TForm)

DsLoc: TDataSource;

grid: TDBGrid;

Panel1: TPanel;

PanelOk: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

DBNavigator1: TDBNavigator;

procedure FormCreate(Sender: TObject);

private

MasterId:integer; // зберегти значення id

MasterField:string; // поле по якому фільтр

procedure LocalOnNewRec(DataSet: TDataSet);

{ Private declarations }

public

OldOnNew:TDataSetNotifyEvent; // старий обробник події нового запису

{ Public declarations }

end;

var

FrmKlServiseOnCard: TFrmKlServiseOnCard;

procedure RunFrmKlServiseOnCard; // процедура запуску довідника

function SelectFrmKlServiseOnCard(var id:integer; title : string=''):boolean; // запуск вибора запису

Procedure OpenFilteredFrmKlServiseOnCard(id:integer; MasterField_:string; title : string=''); //запуск с фильтрацией

implementation

uses dat,msword,sg2word,rusdlg,sg2mail,sg2csv;

{$R *.dfm}

procedure RunFrmKlServiseOnCard; // процедура запуску довідника

begin

Application.CreateForm(TFrmKlServiseOnCard, FrmKlServiseOnCard); // створити форму довідник

FrmKlServiseOnCard.ShowModal; // показать модально

FrmKlServiseOnCard.Free; // звільнити память

end;

function SelectFrmKlServiseOnCard(var id:integer; title : string):boolean;

begin

Application.CreateForm(TFrmKlServiseOnCard, FrmKlServiseOnCard); // створити форму довідник

dm.TblSERVISEONCARD .Locate('id',id,[]); //пошук старого значення

if title<>'' then FrmKlServiseOnCard.Caption := FrmKlServiseOnCard.Caption +' : '+title; //установить заголовок

result:=FrmKlServiseOnCard.ShowModal=mrOk; // результат = результат модального запуска

if result then // якщо Ок

id :=dm.TblSERVISEONCARD . FieldByName('id').AsInteger; // зберегти нове значення

FrmKlServiseOnCard.Free; // звільнити память

end;

// це новий обробник події додавання нового запису

procedure TFrmKlServiseOnCard.LocalOnNewRec(DataSet: TDataSet);

begin

//зберегти в поле фільтрації значення ключа

dm.TblSERVISEONCARD.FieldByName(MasterField).AsInteger := MasterId;

// викликати старий оборобник якщо він є

if assigned(OldOnNew) then OldOnNew(DataSet);

end;

//Відкрити із застосуванням фільтра

Procedure OpenFilteredFrmKlServiseOnCard(id:integer; MasterField_:string; title : string);

begin

Application.CreateForm(TFrmKlServiseOnCard, FrmKlServiseOnCard); // свторити форму довідник

dm.TblSERVISEONCARD .Filtered := true; // встановити прапор того що дані фільтруються

dm.TblSERVISEONCARD .Filter := MasterField_+' = '+IntToStr(id); // встановити сам фільтр

FrmKlServiseOnCard.MasterField := MasterField_;// зберегти вихідні параметри

FrmKlServiseOnCard.MasterId := id;

FrmKlServiseOnCard.OldOnNew := dm.TblSERVISEONCARD.OnNewRecord;

dm.TblSERVISEONCARD.OnNewRecord := FrmKlServiseOnCard.LocalOnNewRec; //встановити новий обробник

if title<>'' then FrmKlServiseOnCard.Caption := FrmKlServiseOnCard.Caption +' : '+title; // встановити заголовок

FrmKlServiseOnCard.ShowModal; // показать модально

dm.TblSERVISEONCARD .Filtered := false; // відмінити фільтрацію

dm.TblSERVISEONCARD.OnNewRecord := FrmKlServiseOnCard.OldOnNew; // відновити обробник FrmKlServiseOnCard.Free;

end;

// По створеню форми

procedure TFrmKlServiseOnCard.FormCreate(Sender: TObject);

begin

DsLoc.DataSet.Open; // відкрити джерело даних

end;

end.

Форма «Розхідні матеріали»:

unit klUsedMat;

{ Форма роботи з довідником "Використані витратні матеріали"}

interface

uses

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

Dialogs, Grids, DBGrids, DB, ComCtrls, ExtCtrls, DBCtrls, Buttons,

StdCtrls;

type

TFrmKlUsedMat = class(TForm)

DsLoc: TDataSource;

grid: TDBGrid;

Panel1: TPanel;

PanelOk: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

DBNavigator1: TDBNavigator;

procedure FormCreate(Sender: TObject);

procedure LocalOnNewRec(DataSet: TDataSet);

private

OldOnNew:TDataSetNotifyEvent; // старий обробник події нового запису MasterId:integer; // збережене значення id

MasterField:string; // поле по якому фільтр

{ Private declarations }

public

{ Public declarations }

end;

var

FrmKlUsedMat: TFrmKlUsedMat;

procedure RunFrmKlUsedMat; // процедура запуска довідника

function SelectFrmKlUsedMat(var id:integer; title : string=''):boolean; // запуск вибора запису

Procedure OpenFilteredFrmKlUsedMat(id:integer; MasterField_:string; title : string=''); //запуск с фільтрацією

implementation

uses dat,msword,sg2word,rusdlg,sg2mail,sg2csv, klServiseOnCard;

{$R *.dfm}

procedure RunFrmKlUsedMat; // процедура запуску довідника

begin

Application.CreateForm(TFrmKlUsedMat, FrmKlUsedMat); // створити форму довідник

FrmKlUsedMat.ShowModal; // показать модально

FrmKlUsedMat.Free; // звільнити память

end;

function SelectFrmKlUsedMat(var id:integer; title : string):boolean;

begin

Application.CreateForm(TFrmKlUsedMat, FrmKlUsedMat); // створити форму довідник

dm.TblUSEDMAT .Locate('id',id,[]); //пошук старого значення

if title<>'' then FrmKlUsedMat.Caption := FrmKlUsedMat.Caption +' : '+title; //встановити заголовок

result:=FrmKlUsedMat.ShowModal=mrOk; // результат = результат модального запуска

if result then // якщо Ок

id :=dm.TblUSEDMAT . FieldByName('id').AsInteger; // збереження новое значення

FrmKlUsedMat.Free; // звільнити память

end;

// це новий обробник події додавання нового запису

procedure TFrmKlUsedMat.LocalOnNewRec(DataSet: TDataSet);

begin

// зберегти в поле для фільтрації значення ключа

dm.TblUSEDMAT.FieldByName(MasterField).AsInteger := MasterId;

// викликати старий обробник якщо він є

if assigned(OldOnNew) then OldOnNew(DataSet);

end;

// Відкрити із застосуванням фільтра

Procedure OpenFilteredFrmKlUsedMat(id:integer; MasterField_:string; title : string='');

begin

Application.CreateForm(TFrmKlUsedMat, FrmKlUsedMat); // створити форму довідник

dm.TblUSEDMAT .Filtered := true; // встановити прапор того що дані фільтруються

dm.TblUSEDMAT .Filter := MasterField_+' = '+IntToStr(id); // встановити сам фильтр

FrmKlUsedMat.MasterField := MasterField_;// зберегти вихідні параметри

FrmKlUsedMat.MasterId := id;

FrmKlUsedMat.OldOnNew := dm.TblUSEDMAT.OnNewRecord;

dm.TblUSEDMAT.OnNewRecord := FrmKlUsedMat.LocalOnNewRec; // встановити новий обробник if title<>'' then FrmKlUsedMat.Caption := FrmKlUsedMat.Caption +' : '+title; //установить заголовок

FrmKlUsedMat.ShowModal; // показать модально

dm.TblUSEDMAT .Filtered := false; // відмінити фільрацію

dm.TblUSEDMAT.OnNewRecord := FrmKlUsedMat.OldOnNew; // відновити обробник FrmKlUsedMat.Free;

end;

// По створення форми

procedure TFrmKlUsedMat.FormCreate(Sender: TObject);

begin

DsLoc.DataSet.Open; // відкрити джерело даних

end;

end.

Форма «Давні клієнти»:

unit klViewLastDt;

{ Форма роботи "Давні клієнти" }

interface

uses

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

Dialogs, Grids, DBGrids, DB, ComCtrls, ExtCtrls, DBCtrls, Buttons,

StdCtrls;

type

TFrmKlViewLastDt = class(TForm)

StatusBar: TStatusBar;

DsLoc: TDataSource;

grid: TDBGrid;

Panel1: TPanel;

DBNavigator1: TDBNavigator;

Edit1: TEdit;

Label1: TLabel;

Label2: TLabel;

procedure FormCreate(Sender: TObject);

procedure Edit1Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FrmKlViewLastDt: TFrmKlViewLastDt;

implementation

uses dat;

{$R *.dfm}

procedure TFrmKlViewLastDt.FormCreate(Sender: TObject);

begin

dm.QLstDt.Close;

dm.QLstDt.Parameters.ParamByName('d').Value :=IncMonth( Date, - StrToInt(Edit1.Text) );

dm.QLstDt.Open;

if assigned(DsLoc.DataSet) then

DsLoc.DataSet.Open;

end;

procedure TFrmKlViewLastDt.Edit1Change(Sender: TObject);

begin

FormCreate(nil);

end;

end.

Форма «Властивості абонементів»:

unit klViewTypes;

{ Форма роботи "Властивості абонементів" }

interface

uses

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

Dialogs, Grids, DBGrids, DB, ComCtrls, ExtCtrls, DBCtrls, Buttons,

StdCtrls;

type

TFrmKlViewTypes = class(TForm)

DsLoc: TDataSource;

grid: TDBGrid;

Panel1: TPanel;

DBNavigator1: TDBNavigator;

PanelOk: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FrmKlViewTypes: TFrmKlViewTypes;

function SelectType(var id:integer):boolean;

implementation

uses dat,msword,sg2word,rusdlg;

{$R *.dfm}

function SelectType(var id:integer):boolean;

begin

Application.CreateForm(TFrmKlViewTypes, FrmKlViewTypes);

FrmKlViewTypes.DsLoc.dataset.Locate('id',id,[]);

result:=FrmKlViewTypes.ShowModal=mrOk;

id:=FrmKlViewTypes.DsLoc.dataset.FieldByName('id').AsInteger;

FrmKlViewTypes.Free;

end;

procedure TFrmKlViewTypes.FormCreate(Sender: TObject);

begin

DsLoc.DataSet.Open;

end;

end.