- •Пояснювальна записка
- •Анотація
- •1.1 Аналіз предметної області 7
- •2.1 Технічне завдання 17
- •3.1 Засоби розробки 27
- •Перелік УмОвних позначеНь
- •Розділ 1. Передпроектні дослідження
- •1.1 Аналіз предметної області
- •1.2 Аналіз існуючих аналогів
- •1.3 Постановка задачі
- •1.4 Маркетингове дослідження інновацій
- •Розділ 2. Технічний проект
- •2.1 Технічне завдання
- •2.2 Моделювання програмного забезпечення
- •2.3 Моделювання даних
- •2.4 Проектування інтерфейсу
- •Розділ 3. Робочий проект
- •3.1 Засоби розробки
- •3.2 Документи на супроводження пз
- •3.3 План тестування
- •Розділ 4. Охорона праці
- •Висновки
- •Перелік джерел
- •Додатки Додаток а Лістинг програми
- •Додаток б Слайди презентації доповіді
- •Бібліографічна довідка
Висновки
В результаті розробки дипломного проекту було розроблено автоматизовану інформаційно-довідкову систему, яка призначена для полегшення роботи адміністратора та зручного перегляду інформації, яку надає оздоровчий комплекс. Також було спроектовано архітектуру, структуру та інтерфейс програмного продукту, створено функції для реалізації поставленого завдання.
Тестування програмного забезпечення показало, що воно працює коректно та відповідає поставленим раніше вимогам. При цьому, структура розробки достатньо гнучка що дає можливість в майбутньому розширити її додатковими можливостями.
Для розробки графічного інтерфейсу автоматизованої інформаційної-довідкової системи оздоровчого комплексу «Енігма» було використано середовише програмування Delphi 7, для створення бази даних – СУБД MS Access.
Було закріплено теоретичні знання та вдосконалені практичні навички, а також здобуті під час вивчення дисциплін програмування.
Завдання дипломного проекту виконано, в результаті створено автоматизовану інформаційно-довідкову систему оздоровчого комплексу «Енігма».
Перелік джерел
Автоматизовані системи керування / [Електронний ресурс]. – Режим доступу: http://uk.wikipedia.org/wiki. Ситник В. Ф., Писаревська Н. В., Єрьоміна Н. В., Краєва О. С. Основи інформаційних систем: Навч. посіб. – К.: КНЕУ, 1997р. – 362с.
Архангельский А. Я. Программирование в Delphi 7. - М.: ООО «Бином-Пресс», 2004 г. – 1152 с.
Гофман В.О. Delphi швидкий старт [Текст]: навчальний посібник / В.О. Гофман; БХВ-Петербург – Санкт Петербург.: БХВ-Петербург, 2002. –288 с. – ISBN 5-94157-165-8.
Жидецький В.Ц. Основи охорони праці – Львів : Укр. акад. друкарства, 2006. – 336 с
Мова реляційних баз даних SQL і його стандарти / [Електронний ресурс]. – Режим доступу: http://www.mywebsite.org.ua/article/movarelyatsiinyh-baz-danyh-sql-i-iogo-standarty/index.html.
Принципи побудови управлінських систем, їхня структура / [Електронний ресурс]. – Режим доступу: http://www.br.com.ua/referats /Computers / 29111.htm.
Тюкачев Н., Свиридов Ю. 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.
