p align="left">SQL.Text := 'SELECT @@IDENTITY'; Open(); if Not (eof) then begin result := Fields.Fields[0].Value; end; Close(); Free; end; end; request := 'CREATE TABLE Профессия ' + '( ' + ID IDENTITY (1, 1) CONSTRAINT PK_Profession_ID PRIMARY KEY, '+ nameProfession CHAR(255) NOT NULL UNIQUE '+ ')'; Conn.Execute(request); request := 'CREATE TABLE Статус ' + '( ' + ' ID IDENTITY (1, 1) CONSTRAINT PK_Profession_ID PRIMARY KEY, ' + nameStatus CHAR(255) NOT NULL UNIQUE '+ ')'; Conn.Execute(request); request := 'CREATE TABLE Рабочие ' +'( ' + ' ID IDENTITY (1, 1) CONSTRAINT PK_Woker_ID PRIMARY KEY, ' + ' WokerName CHAR(128) NOT NULL , ' + ' TabNumber INTEGER , ' + ' LinkProfession INTEGER not null CONSTRAINT LINK_Profession_ID ' + ' REFERENCES Профессия(ID) , ' + ' LinkStatus INTEGER not null CONSTRAINT LINK_Status_ID ' + ' REFERENCES Статус(ID)' + ')'; Conn.Execute(request); request := 'CREATE TABLE Отпуски ' + '( ' + ' ID IDENTITY (1, 1) CONSTRAINT PK_Holidays_ID PRIMARY KEY , ' + ' LinkWoker INTEGER not null CONSTRAINT LINK_Woker_ID ' + ' REFERENCES Рабочие(ID) , ' + ' DateBegin Date , ' + ' Length INTEGER ' + ')'; Conn.Execute(request); request := 'CREATE TABLE Типы_дней ' + '( ' + ' ID INTEGER UNIQUE, ' + ' NameOfType CHAR(128) ' + ')'; Conn.Execute(request); request := 'CREATE TABLE Месяцы ' + '( ' + ' ID INTEGER UNIQUE, ' + ' MonthName CHAR(128) ' + ')'; Conn.Execute(request); request := 'CREATE TABLE Сохраненные_графики ' + '( ' + ' ID IDENTITY (1, 1) CONSTRAINT PK_SavedGraphic_ID PRIMARY KEY , ' + ' NameGraphic CHAR(128) , ' + ' DateOfSave DATE , ' + ' LinkMonthNum INTEGER not null CONSTRAINT LINK_Month_ID ' + ' REFERENCES Месяцы(ID) , ' + ' YearNum CHAR(128) ' + ')'; Conn.Execute(request); request := 'CREATE TABLE Графики ' + '( ' + ' ID IDENTITY (1, 1) CONSTRAINT PK_Graphic_ID PRIMARY KEY, ' + ' LinkSaveID INTEGER not null CONSTRAINT LINK_SavedGraphics_ID ' + ' REFERENCES Сохраненные_графики(ID) , ' + ' DateOfCell DATE , ' + ' LinkWoker INTEGER not null CONSTRAINT LINK_Woker_IDN ' + ' REFERENCES Рабочие(ID) , ' + ' LinkTypeOfDay INTEGER not null CONSTRAINT LINK_TypeOfDay_ID ' + ' REFERENCES Типы_дней(ID) ' + ')'; Conn.Execute(request); request := 'CREATE TABLE Праздники ' + '( ' + ' ID IDENTITY (1, 1) CONSTRAINT PK_Celebrate_ID PRIMARY KEY , ' + ' Title CHAR(128) ' + ')'; Conn.Execute(request); request := 'CREATE TABLE Выходные ' + '( ' + ' ID IDENTITY (1, 1) CONSTRAINT PK_DateCelebrate_ID PRIMARY KEY , ' + ' DateCelebrate DATE , ' + ' LinkName INTEGER not null CONSTRAINT LINK_HOL_ID' + ' REFERENCES Праздники(ID) ' + ')'; Conn.Execute(request); //---------------------------------Заполнение полей значениями------------------ request := 'INSERT INTO Месяцы(ID, MonthName)'+ ' VALUES (0, ''Январь '')'; Conn.Execute(request); request := 'INSERT INTO Месяцы(ID, MonthName)'+ ' VALUES (1, ''Февраль '')'; Conn.Execute(request); request := 'INSERT INTO Месяцы(ID, MonthName)'+ ' VALUES (2, ''Март '')' ; Conn.Execute(request); request := 'INSERT INTO Месяцы(ID, MonthName)'+ ' VALUES (3, ''Апрель '')'; Conn.Execute(request); request := 'INSERT INTO Месяцы(ID, MonthName)'+ ' VALUES (4, ''Май '')'; Conn.Execute(request); request := 'INSERT INTO Месяцы(ID, MonthName)'+ ' VALUES (5, ''Июнь '')'; Conn.Execute(request); request := 'INSERT INTO Месяцы(ID, MonthName)'+ ' VALUES (6, ''Июль '')'; Conn.Execute(request); request := 'INSERT INTO Месяцы(ID, MonthName)'+ ' VALUES (7, ''Август '')'; Conn.Execute(request); request := 'INSERT INTO Месяцы(ID, MonthName)'+ ' VALUES (8, ''Сентябрь '')'; Conn.Execute(request); request := 'INSERT INTO Месяцы(ID, MonthName)'+ ' VALUES (9, ''Октябрь '')'; Conn.Execute(request); request := 'INSERT INTO Месяцы(ID, MonthName)'+ ' VALUES (10, ''Ноябрь '')'; Conn.Execute(request); request := 'INSERT INTO Месяцы(ID, MonthName)'+ ' VALUES (11, ''Декабрь '')'; Conn.Execute(request); //------------------------------------------------------------------------------------/ request := 'INSERT INTO Типы_дней(ID, NameOfType)'+ ' VALUES (0, ''Смена1 '')'; Conn.Execute(request); request := 'INSERT INTO Типы_дней(ID, NameOfType)'+ ' VALUES (1, ''Смена2 '')'; Conn.Execute(request); request := 'INSERT INTO Типы_дней(ID, NameOfType)'+ ' VALUES (2, ''Смена3 '')'; Conn.Execute(request); request := 'INSERT INTO Типы_дней(ID, NameOfType)'+ ' VALUES (3, ''Смена4 '')'; Conn.Execute(request); request := 'INSERT INTO Типы_дней(ID, NameOfType)'+ ' VALUES (4, ''Нерабочий день '')'; Conn.Execute(request); request := 'INSERT INTO Типы_дней(ID, NameOfType)'+ ' VALUES (5, ''Отпуск '')'; Conn.Execute(request); //------------------------------------------------------------------------------------/ request := 'INSERT INTO Профессия(ID, NameProfession)'+ ' VALUES (1, ''ПЭС '')'; Conn.Execute(request); request := 'INSERT INTO Профессия(ID, NameProfession)'+ ' VALUES (2, ''ДЭС '')'; Conn.Execute(request); //------------------------------------------------------------------------------------/ request := 'INSERT INTO Статус(ID, NameStatus)'+ ' VALUES (1, ''Вентиляторщик, работающий в выходные '')'; Conn.Execute(request); request := 'INSERT INTO Статус(ID, NameStatus)'+ ' VALUES (2, ''Вентиляторщик, не работающий в выходные '')'; Conn.Execute(request); request := 'INSERT INTO Статус(ID, NameStatus)'+ ' VALUES (3, ''Дежурный '')'; Conn.Execute(request); request := 'INSERT INTO Статус(ID, NameStatus)'+ ' VALUES (4, ''Рабочий'')'; Conn.Execute(request); //------------------------------------------------------------------------------------/ request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (1, ''Забудский С. Ю.'',78704, 1, 1)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (2, ''Ивановский А. В.'',79856, 1, 1)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (3, ''Палагушкин Б. А.'',79485, 1, 1)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (4, ''Девяткин А. М.'',55288, 1, 1)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (5, ''Филонов М. Л.'',107083, 2, 2)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (6, ''Васекин С. А.'',79446, 1, 3)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (7, ''Статилко В. В.'',78715, 1, 3)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (8, ''Васильев А. Д.'',55337, 1, 3)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (9, ''Матейко А. В.'',55681, 1, 3)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (10, ''Чирок А. Н.'',55844, 1, 3)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (11, ''Никулин А. Н.'',67128, 1, 4)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (12, ''Букин Б. И.'',52696, 1, 2)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (13, ''Сибгатулин Р. И.'',104624, 1, 3)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (14, ''Сибгатулин Р. И.'',71763, 1, 3)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (15, ''Денисенко В. В.'',80087, 1, 3)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (16, ''Аборонов В. И.'',55780, 1, 3)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (17, ''Симулин С. Г.'',86149, 1, 4)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (18, ''Майер В. В.'',109859, 1, 4)'; Conn.Execute(request); request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+ ' VALUES (19, ''Гетц А. В.'',109525, 1, 1)'; Conn.Execute(request); //------------------------------------------------------------------------------------/ request := 'INSERT INTO Праздники(ID, Title)'+ ' VALUES (1, ''Новый год'')'; Conn.Execute(request); request := 'INSERT INTO Праздники(ID, Title)'+ ' VALUES (2, ''Международный женский день'')'; Conn.Execute(request); request := 'INSERT INTO Праздники(ID, Title)'+ ' VALUES (3, ''Наурыз мейрамы'')'; Conn.Execute(request); request := 'INSERT INTO Праздники(ID, Title)'+ ' VALUES (4, ''Праздник единства народа Казахстана'')'; Conn.Execute(request); request := 'INSERT INTO Праздники(ID, Title)'+ ' VALUES (5, ''День Победы'')'; Conn.Execute(request); request := 'INSERT INTO Праздники(ID, Title)'+ ' VALUES (6, ''День Конституции Республики Казахстан'')'; Conn.Execute(request); request := 'INSERT INTO Праздники(ID, Title)'+ ' VALUES (7, ''День республики'')'; Conn.Execute(request); request := 'INSERT INTO Праздники(ID, Title)'+ ' VALUES (8, ''День Независимости'')'; Conn.Execute(request); //------------------------------------------------------------------------------------/ request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+ ' VALUES (1, ''01.01.2008'', 1)'; Conn.Execute(request); request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+ ' VALUES (2, ''02.01.2008'', 1)'; Conn.Execute(request); request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+ ' VALUES (3, ''08.03.2008'', 2)'; Conn.Execute(request); request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+ ' VALUES (4, ''22.03.2008'', 3)'; Conn.Execute(request); request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+ ' VALUES (5, ''01.05.2008'', 4)'; Conn.Execute(request); request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+ ' VALUES (6, ''09.05.2008'', 5)'; Conn.Execute(request); request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+ ' VALUES (7, ''30.08.2008'', 6)'; Conn.Execute(request); request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+ ' VALUES (8, ''25.10.2008'', 7)'; Conn.Execute(request); request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+ ' VALUES (9, ''16.12.2008'', 8)'; Conn.Execute(request); request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+ ' VALUES (10, ''17.12.2008'', 8)'; Conn.Execute(request); request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+ ' VALUES (11, ''15.12.2007'', 8)'; Conn.Execute(request); request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+ ' VALUES (12, ''16.12.2007'', 8)'; Conn.Execute(request); request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+ ' VALUES (13, ''17.12.2007'', 8)'; Conn.Execute(request); request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+ ' VALUES (14, ''08.31.2007'', 2)'; Conn.Execute(request); //------------------------------------------------------------------------------------/ request := 'INSERT INTO Отпуски(ID, LinkWoker, DateBegin, Length)'+ ' VALUES (1, 14, ''08.11.2007'', 26)'; Conn.Execute(request); request := 'INSERT INTO Отпуски(ID, LinkWoker, DateBegin, Length)'+ ' VALUES (2, 16, ''18.12.2007'', 26)'; Conn.Execute(request); request := 'INSERT INTO Отпуски(ID, LinkWoker, DateBegin, Length)'+ ' VALUES (3, 2, ''24.12.2007'', 20)'; Conn.Execute(request); request := 'INSERT INTO Отпуски(ID, LinkWoker, DateBegin, Length)'+ ' VALUES (4, 9, ''01.11.2007'', 10)'; Conn.Execute(request); request := 'INSERT INTO Отпуски(ID, LinkWoker, DateBegin, Length)'+ ' VALUES (5, 6, ''01.11.2007'', 18)'; Conn.Execute(request); 7. Интерфейс программы Интерфейс программы состоит из 3 окон. При запуске программы открывается главное окно, представленное на рисунке 7.1 Рис 7.1 - Главное окно На главной форме приложения находится главное меню, содержащее пункты Файл, Справочник, Справка. Пункты меню распадаются на подменю Файл -> Открыть, Сохранить, Предварительный просмотр, Печать; Справочники -> Справочник рабочих, Справочник отпусков, Справочник праздников, Справочник названий праздников; Справка -> О программе. Команда «Открыть» вызывает окно выбора для загрузки названия и дата ранее сохраненных графиков, представленное на рисунке 7.2 Рисунок 7.2 - окно открытия ранее сохраненных графиков Команда «Сохранить» вызывается окно сохранения графика, в котором нужно указать ему название. Окно представлено на Рисунке 7.3 Рисунок 7.3 - Окно сохранения графика Команда «Предварительный просмотр» рассматривается в разделе «Отчеты». Команда «Справочник рабочих», вызывает окно содержащее сведения о рабочих, предоставляющее возможность добавления или изменения данных о рабочих. Окно представлено на Рисунке 7.4 Рисунок 7.4 - Окно справочника рабочих Команда «Справочник отпусков», вызывает окно содержащее сведения об отпусках рабочих, предоставляющее возможность добавления или изменения данных об отпусках. Окно представлено на Рисунке 7.5 Рисунок 7.5 - Окно справочника отпусков Команда «Справочник Праздников», вызывает окно содержащее сведения о государственных праздниках, предоставляющее возможность добавления или изменения данных о дате празднования. Окно представлено на Рисунке 7.6 Рисунок 7.7 - Окно справочника праздников Команда «Справочник названий праздников», вызывает окно содержащее сведения о названия государственных праздников, предоставляющее возможность добавления или изменения данных о названии праздника. Окно представлено на Рисунке 7.8 Рисунок 7.8 - Окно Справочника названий праздников Команда «О программе» вызывает окно, содержащее сведения о разработчике и краткое описание созданного приложения. Окно представлено на Рисунке 7.9 Рисунок 7.9 - Окно «О программе» Внизу формы расположен выпадающий список для выбора месяца генерируемого графика, а также поле выбора года. Генерация графика осуществляется по нажатии кнопки «Генерировать график». Результат генерации представлен на Рисунке 7.10 Рисунок 7.10 - результат генерации графика 8. Отчеты В данной программе можно просмотреть и распечатать отчет, содержащий информацию о графике учета рабочего времени на заданный месяц. Команда «Предварительный просмотр» вызывает окно, отображающее как будет выглядеть график на печати. Окно представлено на Рисунке 8.1 Рисунок 8.1 - Окно предпросмотра печати, отчет программы Команда «Печать» выводит график указанного месяца и года на принтер. Заключение В результате выполнения данного курсового проекта было разработано приложение удобное в обращении, позволяющее хранить необходимые сведения в единой Базе Данных, а также генерировать автоматически график работ, что в настоящее время, необходимо для быстрого и точного принятия решений, относительно расписания работ. Вообще, задача составления расписания является достаточно сложной и актуальной. Необходимость в автоматической генерации расписания возникает там, где существует возможность выбора той или иной очередности выполнения работ на производстве, при составлении расписания движения поездов и самолетов, обслуживании клиентов в сервисных системах, составление расписаний занятий в учебных заведениях и т.д. После апробирования данного приложения на предприятии можно судить о том, что в рамках курсовой работы мне удалось создать удовлетворяющую требованиям предприятия автоматическую генерацию графика учета рабочего времени, с возможностью хранения посредством Базы Данных Список использованных источников 1. Терлецкая А. М. - лекции по дисциплине «Технология и разработка баз данных»; 2. П. Дарахвелидзе, Е. Марков. Разработка web-служб средствами Delphi - СПб: БХВ-Петербург, 2003 3. http://club.shelek.com/viewart.php?id=177
Страницы: 1, 2, 3
|