Диплом: Автоматизация учёта рабочего времени сотрудников компании "Grand"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
15. Матришин С.А., Симонов В.Л., Храпченко М.Л. Базы данных.
Практическое применение СУБД SQL и NoSOL-типа для применения
проектирования информационных систем. – М.: Форум, - 2018. – 368с.
16. Остроух А.В., Суркова Н.Е. Проектирование информационных
систем. – М.: Лань, 2019. – 164с.
17. Петренко В.И., Мандрица И.В. Защита персональных данных в
информационных системах. – М.: Лань, 2019. – 108с.
18. Рыжко А.Н., Рыжко Н.А., Лобанова Н.М. Экономика отрасли
информационных систем. – М.: Юрайт, 2019. – 176с.
19. Рыжко А.Н., Рыжко Н.А., Кучинская Н.О. Экономика
информационных систем. – М.: Юрайт, 2018. – 176с.
20. Трофимов В.В. Информационные системы и технологии в экономике
и управлении. – М.:Юрайт, 2018. – 324с.
21. Шкурко В.Е., Гребенкин А.В. Управление рисками. Учебное пособие
для ВУЗов. – М.: Юрайт, 2017. – 182с.
22. Система учета рабочего времени «Большой брат» [Электронный
есурс]: // Большой брат [Офиц. сайт]. URL: https://bb.edsd.ru/(дата обращения:
23. Система учета рабочего времени «TimeCamp» [Электронный ресурс]:
https://www.timecamp.com/(дата обращения: 25.06.2019).
24. Cистема учета рабочего времени и эффективности Yaware
[Электронный ресурс]: // Система учета рабочего времени [Офиц. сайт]. URL:
https://yaware.ru/ (дата обращения: 25.06.2019).
25. Тайм-трекер для учета и оценки рабочего времени PrimeERP
[Электронный ресурс]: // ABRA primeERP [Офиц. сайт]. URL:
https://www.primaerp.com/ru_ru/ (дата обращения: 25.06.2019).
Приложение 1. Листинг программного кода
// Авторизация пользователя
unit Passw;
interface
uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, StdCtrls,
Dialogs, Buttons, ExtCtrls, DBCtrls, UITypes;
type
TPasswordDlg = class(TForm)
Label1: TLabel;
Label2: TLabel;
Password: TEdit;
btnNo: TBitBtn;
btnYes: TBitBtn;
lcbUserName: TDBLookupComboBox;
procedure FormShow(Sender: TObject);
procedure btnNoClick(Sender: TObject);
procedure btnYesClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
PasswordDlg: TPasswordDlg;
function InitialSQL:Boolean;
implementation
uses IniFiles, StrUtils, SysUtils, DataBase, Main;
{$R *.DFM}
function InitialSQL:Boolean;
var
Ini: TIniFile;
fini, cs, ds, ic, df, lf:String;
c, i, pos, len: Integer;
begin
DataInfo.ADOConnection.Close;
fini:=ExtractFilePath(ParamStr(0))+'HRManager.ini';
if not FileExists(fini) then
begin
MessageDlg('Файл `HRManager.ini` не найден!',mtError,[mbOk],0);
Result:=False;
Exit
end;
Ini:=TIniFile.Create(fini);
ds:=Ini.ReadString('SQL','Server','');
ic:=Ini.ReadString('SQL','DataBase','');
df:=Ini.ReadString('SQL','FileName','');
Ini.Free;
lf:=copy(df,1,Length(df)-4)+'.ldf';
cs:=DataInfo.ADOConnection.ConnectionString;
pos:=PosEx('Data Source=',cs,1)+12;
i:=PosEx(';',cs,pos);
len:=i-pos;
Delete(cs,pos,len);
Insert(ds,cs,pos);
DataInfo.ADOConnection.ConnectionString:=cs;
// showmessage(DataInfo.ADOConnection.ConnectionString);
try
DataInfo.ADOConnection.Open;
except on E:Exception do
begin
raise Exception.Create('Ошибка: '+E.Message);
// MessageDlg('Невозможно открыть соединение с сервером
'+#39+ds+#39,mtError,[mbOk],0);
DataInfo.ADOConnection.Close;
Result:=False;
Exit
end;
end;
DataInfo.qQuery.SQL.Clear;
DataInfo.qQuery.SQL.Add('SELECT * FROM sys.databases WHERE
name='+#39+ic+#39);
DataInfo.qQuery.Open;
c:=DataInfo.qQuery.RecordCount;
DataInfo.qQuery.Close;
if c=0 then
begin
DataInfo.qQuery.SQL.Clear;
DataInfo.qQuery.SQL.Add('EXEC sp_attach_db @dbname =
N'+#39+ic+#39+',');
DataInfo.qQuery.SQL.Add('@filename1 =
N'+#39+ExtractFilePath(ParamStr(0))+df+#39+',');
DataInfo.qQuery.SQL.Add('@filename2 =
N'+#39+ExtractFilePath(ParamStr(0))+lf+#39+';');
DataInfo.qQuery.ExecSQL;
end;
pos:=PosEx('Initial Catalog=',cs,1)+16;
i:=PosEx(';',cs,pos);
len:=i-pos;
Delete(cs,pos,len);
Insert(ic,cs,pos);
DataInfo.ADOConnection.Close;
DataInfo.ADOConnection.ConnectionString:=cs;
try
DataInfo.ADOConnection.Open;
except
MessageDlg('Невозможно открыть соединение с базой данных
'+#39+ic+#39,mtError,[mbOk],0);
DataInfo.ADOConnection.Close;
Result:=False;
Exit
end;
Result:=True;
end;
procedure TPasswordDlg.FormShow(Sender: TObject);
begin
PasswordDlg.ActiveControl:=lcbUserName;
end;
procedure TPasswordDlg.btnNoClick(Sender: TObject);
begin
if MessageDlg('Заканчиваем
работу?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
ModalResult:=-1;
Exit
end;
ModalResult:=0;
end;
procedure TPasswordDlg.btnYesClick(Sender: TObject);
begin
if lcbUserName.Text='' then
begin
MessageDlg('Выберите пользователя',mtWarning,[mbOk],0);
ModalResult:=mrNone;
end
else
begin
UserId:=DataInfo.qListWorkers.FieldByName('Id').asInteger;
BranchId:=DataInfo.qListWorkers.FieldByName('BranchId').asInteger;
DataInfo.qListBranches.Open;
DataInfo.qListBranches.Locate('Id',BranchId,[]);
BranchName:=DataInfo.qListBranches.FieldByName('BranchName').asString;
DataInfo.qListBranches.Close;
UserName:=DataInfo.qListWorkers.FieldByName('FIO').asString+' -
'+DataInfo.qListWorkers.FieldByName('Position').asString;
isManager:=DataInfo.qListWorkers.FieldByName('isManager').asBoolean;
UserPassword:=Password.Text;
ModalResult:=1
end
end;
end.
// ввод данных о рабочем времени
unit worftime;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dxSkinsCore, dxSkinsDefaultPainters, cxStyles, cxGraphics,
cxEdit, cxDBLookupComboBox, cxCheckBox, Menus,
cxLookAndFeelPainters,
StdCtrls, cxButtons, cxVGrid, cxDBVGrid, cxControls, cxInplaceContainer,
cxLookAndFeels, cxDropDownEdit, cxCurrencyEdit;
type
TfrmTime = class(TForm)
vgTime: TcxDBVerticalGrid;
btnYes: TcxButton;
btnNo: TcxButton;
vgTimeQuestionId: TcxDBEditorRow;
procedure FormShow(Sender: TObject);
procedure btnNoClick(Sender: TObject);
procedure btnYesClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmTime: TfrmTime;
implementation
uses DataBase;
{$R *.dfm}
procedure TfrmTime.FormShow(Sender: TObject);
begin
if frmTime.Tag=1 then
begin
frmTime.Caption:='Новий ответ';
DataInfo.qListTime.Insert;
end
else
begin
procedure TfrmTime.btnNoClick(Sender: TObject);
begin
DataInfo.qListTime.Cancel;
frmTime.Close;
end;
procedure TfrmTime.btnYesClick(Sender: TObject);
begin
if DataInfo.qListTime.FieldByName('Task').isNull then
begin
end;
frmTime.Close;
end;
end.
// ввод информации в справочники
unit Workers;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dxSkinsCore, dxSkinsDefaultPainters, cxStyles, cxGraphics,
cxEdit, cxDBLookupComboBox, cxCheckBox, Menus,
cxLookAndFeelPainters,
StdCtrls, cxButtons, cxVGrid, cxDBVGrid, cxControls, cxInplaceContainer,
cxLookAndFeels, cxDropDownEdit, cxCurrencyEdit;
type
TfrmWorkers = class(TForm)
vgWorkers: TcxDBVerticalGrid;
btnYes: TcxButton;
btnNo: TcxButton;
vgWorkersBranchId: TcxDBEditorRow;
vgWorkersFIO: TcxDBEditorRow;
vgWorkersPosition: TcxDBEditorRow;
vgWorkersAddress: TcxDBEditorRow;
vgWorkersPhone: TcxDBEditorRow;
vgWorkersEMail: TcxDBEditorRow;
vgWorkersPassword: TcxDBEditorRow;
vgWorkersisManager: TcxDBEditorRow;
procedure FormShow(Sender: TObject);
procedure btnNoClick(Sender: TObject);
procedure btnYesClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmWorkers: TfrmWorkers;
implementation
uses DataBase;
{$R *.dfm}
procedure TfrmWorkers.FormShow(Sender: TObject);
begin
if frmWorkers.Tag=1 then
begin
frmWorkers.Caption:='Новый сотрудник';
DataInfo.qListWorkers.Insert;
end
else
begin
frmWorkers.Caption:=DataInfo.qListWorkers.FieldByName('FIO').asString;
DataInfo.qListWorkers.Edit;
end;
end;
procedure TfrmWorkers.btnNoClick(Sender: TObject);
begin
DataInfo.qListWorkers.Cancel;
frmWorkers.Close;
end;
procedure TfrmWorkers.btnYesClick(Sender: TObject);
begin
if DataInfo.qListWorkers.FieldByName('FIO').isNull then
begin
MessageDlg('Укажите ФИО сотрудника!',mtError,[mbOk],0);
Exit
end;
DataInfo.qListWorkers.Post;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)