Диплом: Автоматизация учета рабочего времени и расчета заработной платы на предприятии ОАО "Пелла"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
87
9. Гандэрлой Майк. ADO и ADO.NET : полное руководство :
[архитектура доступа к данным, основы технологии . NET, использование
ADO и ADO.NET для извлечения и редактирования данных, работа с
отключенными наборами данных, использование ADO из .NET, управление
данными в Web с помощью ASP.NET, синхронизация наборов данных с
помощью XML, работа с различными клиентами и провайдерами данных :
перевод с английского] / Майк Ганделрой. - Санкт-Петербург [и др.] :
КОРОНА принт [и др.], 2017. - 906 с.
10. Голицына О. Л. Базы данных : [учебное пособие для студентов
учреждений среднего профессионального образования, обучающихся по
специальностям Автоматизированные системы обработки информации и
управления (по отраслям), Программное обеспечение вычислительной
техники и автоматизированных систем, Техническое обслуживание средств
вычислительной техники и компьютерных сетей] / О. Л. Голицына, Н. В.
Максимов, И. И. Попов. - Изд. 2-е, испр. и доп. - Москва : Форум : ИНФРА-
М, 2019. - 399 с.
11. Голицына О. Л. Языки программирования : [учебное пособие для
студентов образовательных учреждений среднего профессионального
образования] / О. Л. Голицына, Т. Л. Партыка, И. И. Попов. - Москва :
ФОРУМ : ИНФРА-М, 2018. - 397 с.
12. Емельянова, Н. З. Информационные системы в экономике / Н. З.
Емельянова, Т. Л. Партыка, И. И. Попов. - Москва: ИНФРА-М, 2016. – 421 с.
13. Зубов, Артем. Программирование на DELPHI. / Артем Зубов. -
СПб. [и др.] : Питер, 2015. - 396 с.
14. Илюшечкин В. М. Основы использования и проектирования баз
данных : учебное пособие : [для студентов высших учебных заведений,
обучающихся по направлению " Информатика и вычислительная техника"] /
В. М. Илюшечкин. - Москва : Высшее образование, 2017. - 213 с.
88
15. Кантарь, И. Л. Автоматизированные рабочие места
управленческого аппарата / И.Л. Кантарь – СПб: Нива, 2016. – 306 с.
16. Карпиленко Е. В. Основы программирования : [учебник для
студентов образовательных учреждений среднего профессионального
образования] / Е. В. Карпиленко. - Ростов-на-Дону : Феникс, 2017. – 317 с.
17. Кириллов В. В. Введение в реляционные базы данных : [базы
данных и управление ими, реляционная модель данных, SQL - стандартный
язык для работы с реляционными базами данных, основы проектирования
реляционных баз данных, создание приложений на языке SQL и его
процедурных расширениях, хранимые процедуры, примеры создания баз
данных, инструментарий для создания баз данных и приложений к ним] /
Владимир Кириллов, Геннадий Громов. - Санкт-Петербург : БХВ-Петербург,
2015. - 454 с.
18. Ковалева, В.Д. Автоматизированное рабочее место экономиста:
учебник / В.Д. Ковалева . - М.: Финансы и статистика, 2017. – 601 с.
19. Козлов А В. Программирование для Интернет в DELPHI / А.В.
Козлов ; Под общ. ред. А.Я.Архангельского. - М. : Бином, 2016. - 366 с.
20. Коробко И. В. Справочник системного администратора по
программированию Windows : [объектная модель Active Directory,
интерфейсы ADO и IADs, идентификаторы безопасности и NTFS, групповые
политики и реестр, синтаксис командных файлов, Windows Script Host,
Windows Installer] / Иван Коробко. - Санкт-Петербург : БХВ-Петербург, 2016.
- 556 с.
21. Культин Н. Б. Основы программирования в Delphi : [среда
разработки, назначение базовых компонентов, программирование графики,
мультимедиа и баз данных, создание справочной системы и установочного
CD] / Никита Культин. - 2-е изд. - Санкт-Петербург : БХВ-Петербург, 2015. -
630 с.
89
22. Кучеренко В. Тонкости программирования на DELPHI / В.
Кучеренко. - М. : Познават. кн. плюс, 2015. -192 с.:
23. Малыхина М. П. Базы данных: основы, проектирование,
использование : [принципы построения баз данных и СУБД, концептуальное
проектирование баз данных, реляционная модель данных, языки
программирования баз данных, администрирование баз данных : учебное
пособие для студентов вузов, обучающихся по направлению подготовки
"Информатика и вычислительная техника"] / М. П. Малыхина. - 2-е изд. -
Санкт-Петербург : БХВ-Петербург, 2017. -528 с.
24. Мишенин А. И. Сборник задач по программированию[ :
простейшие программы, циклы и массивы, обработка матриц, численные
методы, обработка символьной информации : учебно-методическое пособие
для студентов высших учебных заведений, обучающихся по специальности
080801 "Прикладная информатика (по областям)" и другим
междисциплинарным специальностям] / А. И. Мишенин. - Москва : Финансы
и статистика : ИНФРА-М, 2017. - 221с.
25. Никсон Робин. Создаем динамические веб-сайты с помощью
PHP, MySQL и JavaScript / Робин Никсон ; [пер. с англ. Н. Вильчинский]. -
Санкт-Петербург : Питер, 2015.
26. Романова, Ю. Д. Информатика и информационные технологии:
конспект лекций / Ю. Д. Романова, И. Г. Лесничая - Москва: Эксмо, 2016. –
440 с.
27. Савицкий, Н. И. Экономическая информатика / Н. И. Савицкий. -
М.: Экономистъ, 2005. – 334 с.
28. Симонович, С. В. Общая информатика / С. В. Симонович. -
Санкт-Петербург: Питер, 2018. – 561 с.
29. Сингаевская Г. И. Функции в Microsoft Office Excel 2007 :
[основы работы в Excel 2007, включая создание графиков и диаграмм, работу
90
с формулами, использование имен, использование функций и других средств
Excel 2007 в научных и прикладных задачах, в статистическом анализе,
финансовых расчетах, программирование на языке VBA - создание макросов,
программ, разработка собственных функций] / Г. И. Сингаевская. - Москва [и
др.] : Диалектика, 2018.
30. Фаронов В. В. Delphi : программирование на яз. Высокого
уровня: [Учеб. для вузов по направлению подгот. дипломир. специалистов
"Информатика и вычисл. техника" / В. В. Фаронов. - СПб. и др. : Питер, 2015.
- 639 с.
31. Фаронов В. В. Delphi. Программирование на языке высокого
уровня : [учебник для студентов высших учебных заведений, обучающихся
по направлению подготовки дипломированных специалистов "Информатика
и вычислительная техника"] / В. В. Фаронов. - Санкт- Петербург [и др.] :
Питер, 2017. - 639 с.
32. Фаронов В. В. Программирование баз данных в Delphi :
[реализация соврем. технологий баз данных средствами Delphi] / В. Фаронов.
- СПб. [и др.] : Питер, 2015. - 458 с.
33. Фельдман С. К. Система программирования DELPHI без
секретов: как создать приложение для Windows с "нуля" : энциклопедия /
Сергей Фельдман.- М. : Новый изд. дом [и др.], 2015. – 688 с.
34. Фролов И. М. Энциклопедия Microsoft Office 2003 : [рук. по
новейшей версии пакета Microsoft office] / Иван Фролов. - М. : Новый изд.
дом, 2015. – 911 с.
.
91
ПРИЛОЖЕНИЯ
Приложение 1
Файл form__zapros1.pas
unit Form__zapros1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.DBGrids, Vcl.StdCtrls,
Vcl.ComCtrls, Vcl.Grids,DateUtils,Excel2000,ComObj;
type
TForm_zapros1 = class(TForm)
StringGrid_time: TStringGrid; MonthCalendar_begin: TMonthCalendar;
MonthCalendar_end: TMonthCalendar; Label1: TLabel;
Label2: TLabel; DBGrid_otdel: TDBGrid;
Label3: TLabel; Button1: TButton;
DBGrid_zavod: TDBGrid; Label4: TLabel;
Label5: TLabel; procedure FormCreate(Sender: TObject);
procedure view_time; procedure FormShow(Sender: TObject);
procedure MonthCalendar_endClick(Sender: TObject);
procedure MonthCalendar_beginClick(Sender: TObject);
procedure DBGrid_otdelCellClick(Column: TColumn);
procedure Button1Click(Sender: TObject);
procedure view_otdel; procedure view_dbgrid_otdel;
procedure DBGrid_zavodCellClick(Column: TColumn);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form_zapros1: TForm_zapros1;
92
implementation
{$R *.dfm}
uses datamodule;
procedure TForm_zapros1.Button1Click(Sender: TObject);
var E,myRange, Sheet : variant;
buf_zapros : string; i,j : integer;
begin
//создаю айл Excle
E := CreateOleObject('Excel.Application'); E.WorkBooks.open(GetCurrentDir+'\шаблоны\tabel.xlsx');
E.Visible := True;//включаю отображени программы Excel
Sheet:=E.Sheets.Item[1];
E.Cells[1,2] := 'Табель учета рабочего времени и зарплаты за период с
'+datetostr(form_zapros1.MonthCalendar_begin.Date)
+' до '+ datetostr(form_zapros1.MonthCalendar_end.Date);
for i := 0 to form_zapros1.StringGrid_time.RowCount do
for j := 0 to form_zapros1.StringGrid_time.ColCount do
E.Cells[i+1+2,j+1] := form_zapros1.StringGrid_time.Cells[j,i];
end;
procedure TForm_zapros1.DBGrid_otdelCellClick(Column: TColumn);
begin view_time; end;
procedure TForm_zapros1.DBGrid_zavodCellClick(Column: TColumn);
begin view_otdel;end;
procedure TForm_zapros1.FormCreate(Sender: TObject);
begin
form_zapros1.MonthCalendar_begin.Date := IncMonth(Now(),-1);
form_zapros1.MonthCalendar_end.Date := Now();end;
procedure TForm_zapros1.FormShow(Sender: TObject);
begin view_otdel; view_time; end;
procedure TForm_zapros1.MonthCalendar_beginClick(Sender: TObject);
begin view_time;end;
procedure TForm_zapros1.MonthCalendar_endClick(Sender: TObject);
begin view_time;end;
procedure TForm_zapros1.view_time;
var buf_Zapros : string; buf_kav : string;
i,j : integer;
myYear, myMonth, myDay : Word; date_time_begin,date_time_end : string;
kolvo_hours1,zarplata : real;
begin
buf_kav := ''''; //получаю дату
DecodeDate(form_zapros1.MonthCalendar_begin.Date, myYear, myMonth, myDay);
93
date_time_begin := buf_kav+inttostr(myYear)+'-'+inttostr(myMonth)+'-'+inttostr(myDay)+buf_kav;//YYYY-
MM-DD
DecodeDate(form_zapros1.MonthCalendar_end.Date, myYear, myMonth, myDay);
date_time_end := buf_kav+inttostr(myYear)+'-'+inttostr(myMonth)+'-'+inttostr(myDay)+buf_kav;//YYYY-MM-
DD
form_zapros1.StringGrid_time.ColWidths[0] := 90;//табельный номер
form_zapros1.StringGrid_time.ColWidths[1] := 250;//фио
form_zapros1.StringGrid_time.ColWidths[2] := 70;//время
buf_zapros := 'SELECT sotrudnik.tabel_nomer, CONCAT(sotrudnik.family,'+buf_kav+' '+buf_kav+',
sotrudnik.first_name,'+buf_kav+' '+buf_kav+', sotrudnik.second_name) AS FIO '
+' FROM otdel INNER JOIN (dolgnost INNER JOIN sotrudnik ON dolgnost.id_dolgnost =
sotrudnik.id_dolgnost) ON otdel.id_otdel = dolgnost.id_otdel '
+' WHERE otdel.id_otdel =
'+form_zapros1.DBGrid_otdel.DataSource.DataSet.FieldByName('id_otdel').AsString
+' ORDER BY sotrudnik.family, sotrudnik.first_name;';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_Zapros; datamodule1.Query_buf.Open;
//вывожу количество строк
form_zapros1.StringGrid_time.RowCount := datamodule1.Query_buf.RecordCount+1;
//вывожу количество столбцов
form_zapros1.StringGrid_time.ColCount :=
DaysBetween(form_zapros1.MonthCalendar_end.Date,form_zapros1.MonthCalendar_begin.Date)+3+2;
//заполняю нулями
for i := 1 to form_zapros1.StringGrid_time.RowCount do
for j := 1 to form_zapros1.StringGrid_time.ColCount do
form_zapros1.StringGrid_time.Cells[j,i] := '0';
//заполняю столбцы
i:= 0; form_zapros1.StringGrid_time.Cells[0,i] := 'Табель_номер';
form_zapros1.StringGrid_time.Cells[1,i] := 'ФИО'; datamodule1.Query_buf.First;
i := 1;
//вывожу фио и табельный номер
while not datamodule1.Query_buf.eof do begin
form_zapros1.StringGrid_time.Cells[0,i] := datamodule1.Query_buf.FieldByName('tabel_nomer').AsString;
form_zapros1.StringGrid_time.Cells[1,i] := datamodule1.Query_buf.FieldByName('FIO').AsString;
i:= i+1; datamodule1.Query_buf.Next;
end;
//вывожу даты в загаловки
for i := 0 to form_zapros1.StringGrid_time.colCount-1 do
form_zapros1.StringGrid_time.Cells[i+2+2,0] := datetostr(incday(form_zapros1.MonthCalendar_begin.Date,i));
94
//вывожу время работы
for i := 1 to form_zapros1.StringGrid_time.RowCount do
for j := 2+2 to form_zapros1.StringGrid_time.ColCount do
begin //плучаю дату
// DecodeDate(incday(form_zapros1.MonthCalendar_begin.Date,j), myYear, myMonth, myDay);
DecodeDate(strtodate(form_zapros1.StringGrid_time.Cells[j,0]), myYear, myMonth, myDay);
date_time_begin := buf_kav+inttostr(myYear)+'-'+inttostr(myMonth)+'-'+inttostr(myDay)+buf_kav;//YYYY-
MM-DD
buf_Zapros :='SELECT kolvo_hours '
+' FROM work_time '
+' WHERE work_time.date_work = '+date_time_begin
+' AND work_time.tabel_nomer = '+buf_kav+form_zapros1.StringGrid_time.Cells[0,i]+buf_kav+';';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_Zapros; datamodule1.Query_buf.Open;
if datamodule1.Query_buf.RecordCount <> 0 then
form_zapros1.StringGrid_time.Cells[j,i] := datamodule1.Query_buf.FieldByName('kolvo_hours').AsString;
end;
//вывожу кол-ыво часови зарплату
//вывжу названия столбцов
form_zapros1.StringGrid_time.Cells[2,0] := 'Сумма часов';
form_zapros1.StringGrid_time.Cells[3,0] := 'Зарплата';
for i := 1 to form_zapros1.StringGrid_time.RowCount-1 do
begin kolvo_hours1 := 0;
for j := 2+2 to form_zapros1.StringGrid_time.ColCount do begin
kolvo_hours1 := kolvo_hours1 +strtofloat(form_zapros1.StringGrid_time.Cells[j,i]); //подсчитываю кол-во
часов в строке
end;
form_zapros1.StringGrid_time.Cells[2,i] := floattostr(kolvo_hours1); //узнаю оклад
buf_zapros := 'SELECT dolgnost.oklad '
+' FROM dolgnost INNER JOIN sotrudnik ON dolgnost.id_dolgnost = sotrudnik.id_dolgnost '
+' WHERE sotrudnik.tabel_nomer ='+form_zapros1.StringGrid_time.Cells[0,i]+';';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_Zapros; datamodule1.Query_buf.Open;
form_zapros1.StringGrid_time.Cells[3,i] :=
floattostr(kolvo_hours1*datamodule1.Query_buf.FieldByName('oklad').AsFloat); end;
end;
procedure TForm_zapros1.view_otdel;
var buf_zapros : string;
begin
95
if form_zapros1.DBGrid_zavod.DataSource.DataSet.RecordCount <> 0 then
begin buf_zapros := 'SELECT otdel.id_otdel, otdel.name_otdel as Название_отдела '
+' FROM otdel '
+' WHERE otdel.id_zavod =
'+form_zapros1.DBGrid_zavod.DataSource.DataSet.FieldByName('id_zavod').AsString
+' ORDER BY otdel.name_otdel;';
datamodule1.Query_otdel_view.Close; datamodule1.Query_otdel_view.SQL.Clear;
datamodule1.Query_otdel_view.SQL.Text := buf_zapros; datamodule1.Query_otdel_view.Open;
view_dbgrid_otdel; view_time; end;
end;
procedure TForm_zapros1.view_dbgrid_otdel;
begin
form_zapros1.DBGrid_otdel.Columns[0].Visible := False;
form_zapros1.DBGrid_otdel.Columns[1].Width := 280;
end;
end.
96
Приложение 2
Файл Form_sotrudnik.pas
unit Form__sotrudnik;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, Data.DB;
type
TForm_sotrudnik = class(TForm)
DBGrid_sotrudnik: TDBGrid;
Button_delete: TButton;
Button_update: TButton;
GroupBox1: TGroupBox;
Label_tabel: TLabel;
Edit_tabel: TEdit;
Edit_family: TEdit;
Edit_name: TEdit;
Edit_secondname: TEdit;
Edit_phone: TEdit;
DBGrid_dolgnost: TDBGrid;
GroupBox_login: TGroupBox;
Label_login: TLabel;
Edit_login: TEdit;
Edit_password: TEdit;
DBGrid_dostup: TDBGrid;
Button_add: TButton;
DBGrid_otdel: TDBGrid;
CheckBox_login: TCheckBox;
DBGrid_zavod: TDBGrid;
Label17: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button_deleteClick(Sender: TObject);
procedure Button_updateClick(Sender: TObject);
procedure Button_addClick(Sender: TObject);
procedure clear_label;

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

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