Не отобразилась форма расчета стоимости? Переходи по ссылке

Не отобразилась форма расчета стоимости? Переходи по ссылке

Курсовая работа на тему «Разработка базы данных для автоматизации деятельности специалиста по технике безопасности и охраны труда»

В настоящее время информационные системы используются повсеместно. Они стали неотъемлемой частью большинства рабочих процессов. Их внедрение приводит к улучшению качества продукции, ускорению обработки информации, уменьшению трудовых и экономических затрат.

Введение

Информационная система — представляет собой совокупность организационных, технических, программных и информационных средств, объединенных в единую систему с целью сбора, хранения, обработки и выдачи необходимой информации, предназначена для выполнения заданных функций.

Автоматизация производственных процессов также стало распространённым явлением. Автоматизация облегчает и ускоряет работу.

Автоматизация — одно из направлений научно-технического прогресса, применение саморегулирующих технических средств, экономико-математических методов и систем управления, освобождающих человека от участия в процессах получения, преобразования, передачи и использования энергии, материалов или информации, существенно уменьшающих степень этого участия или трудоемкость выполняемых операций.

Цель данной курсовой работы — разработка базы данных для автоматизации деятельности специалиста по ТБ и ОТ.

Задачи работы:

—       постановка задачи;

—       проектирование логической модели;

—       создание физической модели;

—       формирование БД;

—       создание запросов;

—       создание интерфейса к БД.

1. Постановка задачи

Контроль ТБ — это трудоёмкая задача. Функции для системы автоматизации деятельности специалиста по ТБ следующие:

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

—       учёт персонала;

—       учёт травм и несчастных случаев;

—       формирование графиков медосмотров;

—       учёт результатов медосмотров;

—       учёт результатов тестирования персонала;

—       учёт нарушений охраны труда;

—       формирование отчётов.

Для решения поставленной задачи потребуется учитывать следующие данные:

—       персонал;

—       работа;

—       медосмотры;

—       проверки;

—       прохождение медосмотра;

—       прохождение проверки;

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

—       инциденты;

—       участники;

—       предписания;

—       список инцидентов для основания.

Рассмотрим реквизиты персонала:

—       ФИО;

—       дата рождения;

—       пол;

—       адрес регистрации;

—       номер телефона;

—       СНИЛС;

—       серия и номер паспорта.

Работа для каждого служащего идентифицируется должностью и отделом, работает или уволен.

Реквизиты медосмотра:

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

—       дата проведения;

—       краткое описание.

Реквизиты проверки знаний:

—       дата проведения;

—       краткое описание.

Прохождение медосмотра это:

—       сотрудник;

—       пройдено или нет;

—       причина не прохождения.

Прохождение проверки это:

—       сотрудник;

—       пройдено или нет;

—       причина не прохождения.

Инцидент характеризуется:

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

—       номер инцидента;

—       дата и время;

—       тип инцидента;

—       описание;

—       была ли получена травма.

Участник:

—       сотрудник;

—       роль.

Предписание:

—       сотрудник;

—       дата создания;

—       действительно.

Список инцидентов содержит номера инцидентов.

Из рассмотренных данных видно, что медосмотр и проверка можно объединить в одну сущность: график. С также объединить прохождение в единое.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

Следовательно, БД будет состоять из следующих сущностей:

—       персонал;

—       график;

—       инцидент;

—       предписание;

—       прохождение;

—       работа;

—       участник;

—       список.

Также, в системе должны фигурировать следующие справочники: должность; отдел; причина; тип инцидента; роль.

2. Логическая модель

Для реализации поставленной задачи требуется разработать базу данных со следующими сущностями:

—       данные о персонале;

—       данные о работе;

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

—       данные о графиках;

—       данные о прохождении;

—       данные о инцидентах;

—       данные об участниках;

—       данные о предписаниях;

—       списки.

Справочники:

—       отделы;

—       должности;

—       роли;

—       типы инцидентов;

—       причины.

Рассмотрим связи между сущностями и справочниками.

Рассмотрим связи между сущностями подробнее:

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

.        «Должность» — «Работает», тип связи «один-ко-многим», ограничение not null;

.        «Отделение» — «Работает», тип связи «один-ко-многим», ограничение not null;

.        «Персонал» — «Работает», тип связи «один-ко-многим», ограничение not null;

.        «График» — «Прохождение», тип связи «один-ко-многим», ограничение not null;

.        «Причина» — «Прохождение», тип связи «один-ко-многим»;

.        «Персонал» — «Прохождение», тип связи «один-ко-многим», ограничение not null;

.        «Тип случая» — «Случай», тип связи «один-ко-многим», ограничение not null;

.        «Случай» — «Участник», тип связи «один-ко-многим», ограничение not null;

.        «Роль» — «Участник», тип связи «один-ко-многим», ограничение not null;

.        «Персонал» — «Участник», тип связи «один-ко-многим», ограничение not null;

.        «Персонал» — «Предписание», тип связи «один-ко-многим», ограничение not null;

.        «Предписание» — «Список», тип связи «один-ко-многим», ограничение not null;

.        «Инцидент» — «Список», тип связи «один-ко-многим», ограничение not null.

Инфологическая модель представлена на рисунке 1.

Рисунок 1 — Инфологическая модель базы данных

Теперь можно разработать логическую модель базы данных. Рассмотрим атрибуты сущностей. В качестве первичного ключа для каждой сущности введём понятие идентификатор — код. Данный код должен быть возрастать с шагом в 1.

В таблице 1 представлены сущности и их атрибуты. На рисунке 2 построена логическая модель базы данных.

инфологический программный логический

Таблица 1 — Атрибуты сущностей

Рисунок 2 — Логическая модель базы данных

3. Физическая модель

База данных состоит из следующих таблиц:

.        Post;

.        Department;

.        Job;

.        Personal;

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

.        Schedule;

.        Reason;

.        Pass;

.        Incident;

.        TypeIncident;

.        Actor;

.        Role;

.        Instruction;

.        ListIncident.

В таблицах 2 — представлен состав таблиц базы данных.

Таблица 2 — «Post»

Таблица 3 — «Department»

Таблица 4 — «Job»

Таблица 5 — «Personal»

Таблица 6 — «Schedule»

Таблица 7 — «Reason»

Таблица 8 — «Pass»

Таблица 9 — «Incident»

Таблица 10 — «TypeIncident»

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

Таблица 11 — «Actor»

Таблица 12 — «Role»

Таблица 13 — «Instruction»

Таблица 14 — «ListInstruction»

На рисунке 3 представлена ER-диаграмма базы данных АРМ инженера по ТБ.

Рисунок 3 — ER-модель базы данных

Сформируем из данной ER-модели схему данных в MS SQL Server — рисунок 4.

Рисунок 4 — Схема данных

4. Связь приложения с базой данных

Среда Delphi является одной из наилучших сочетаний объектно-ориентированного и визуального программирования.

Технология Microsoft ActiveX Data Objects обеспечивает универсальный доступ к источникам данных из приложений БД. Такую возможность предоставляют функции набора интерфейсов, созданные на основе общей модели объектов СОМ и описанные в спецификации OLE DB.

Технология ADO и интерфейсы OLE DB обеспечивают для приложений единый способ доступа к источникам данных различных типов. Например, приложение, использующее ADO, может применять одинаково сложные операции и к данным, хранящимся на корпоративном сервере SQL, и к электронным таблицам, и локальным СУБД. Запрос SQL, направленный любому источнику данных через ADO, будет выполнен.

В Delphi была реализована возможность работы с технологией ADO через компоненты. Это позволяет быстро создавать системы управления базами данных любой сложности.

Компонент TADOConnection вобрал возможности перечислителя, источника данных и сессии с возможностями обслуживания транзакций.

Четыре компонента наборов данных (ADODataSet, ADOTable, ADOQuery и ADOStoredProc) фактически полностью реализованы общим для них базовым классом TCustomADODataSet. Этот компонент несет ответственность за выполнение большинства функций, присущих набору данных. Производные компоненты являются тонкими оболочками, которые делают доступными для внешнего мира те или иные возможности базового компонента. Таким образом, компоненты обладают множеством общих черт.

Компоненты доступа к данным ADO могут использовать два варианта подключения к хранилищу данных. Это стандартный метод ADO и стандартный метод Delphi.

В первом случае компоненты используют свойство connectionstring для прямого обращения к хранилищу данных. Во втором случае используется специальный компонент TADOConnection, который обеспечивает расширенное управление соединением и позволяет обращаться к данным нескольким компонентам одновременно.

Connectionstring.

Свойство connectionstring предназначено для хранения информации о соединении с объектом ADO. В нем через точку с запятой перечисляются все необходимые параметры. Как минимум, это должны быть имена провайдера соединения или удаленного сервера:

Connectionstring: = ‘Remote Server=ServerName;Provider=ProviderName’;

При необходимости указываются путь к удаленному провайдеру:

Connectionstring: = ‘Remote Provider=ProviderName’;

…и параметры, необходимые провайдеру:

‘User Name=User_Name;Password=Password’;

Каждый компонент, обращающийся к хранилищу данных ADO самостоятельно, задавая параметры соединения в свойстве Connectionstring, открывает собственное соединение. Чем больше приложение содержит компонентов ADO, тем больше соединений может быть открыто одновременно.

Поэтому целесообразно реализовать механизм соединения ADO через специальный компонент — TADOConnection. Этот компонент открывает соединение, также заданное свойством Connectionstring, и предоставляет разработчику дополнительные средства управления соединением.

Настройку свойства connectionstring можно осуществлять с помощью мастера. В начале, нужно указать провайдер данных, в случае подключения к MS SQl Server — Microsoft OLE DB Provider for SQL Server. Пример показан на рисунке 5.

Рисунок 5 — Выбор провайдера данных

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

Затем, указываем имя сервера, указываем параметры для входа в сервер. После чего, становится доступным выбор каталога базы данных. Пример данного окна настройки показан на рисунке 6.

Рисунок 6 — Настройка подключения

В данном приложении для связи с базой данных используется технология ADO. Для подключения к БД компонент ADOConnection. Для получения данных из каждой таблицы используется компонент класса TADOTable. Для создания запросов к базе данных, например формирования отчётов применяется компонент класса TADOQuery.

На рисунке 7 представлен пример дата модуля, где настроена связь с БД.

Рисунок 7 — Модуль данных

5. Разработка приложения

Для формирования отчётов требуется разработать запросы к базе данных. Ниже представлены запросы для всех отчётов.

Для отчёта о графике медосмотров за период требуется запрос:

«select(varchar,s.sDate,104) +’ ‘+ isNull(s.Description,») as [Осмотр]

,isNull(pr.FIO,’Не начинался’) as [Работник]

,case when isNull(r.Name,»»)=»» then »» else isNull(r.Name,»») end as [Причина]

,case when isNull(pr.FIO,»»)=» then »» else (case when isNull(p.PassEnd,0)=1 then » Пройдено» else »Не пройдено» end) end as [Пройдено]Schedule sjoin Pass p on p.Schedule=s.IDjoin Personal pr on pr.ID=p.Personaljoin Reason r on r.ID=p.Reason».

Для отчёта о графике проверок за период требуется запрос:

«select(varchar,s.sDate,104) +’ ‘+ isNull(s.Description,») as [Проверка]

,isNull(pr.FIO,’Не начинался’) as [Работник]

,case when isNull(r.Name,»»)=»» then »» else isNull(r.Name,»») end as [Причина]

,case when isNull(pr.FIO,»»)=» then »» else (case when isNull(p.PassEnd,0)=1 then » Пройдено» else »Не пройдено» end) end as [Пройдено]Schedule sjoin Pass p on p.Schedule=s.IDjoin Personal pr on pr.ID=p.Personaljoin Reason r on r.ID=p.Reason».

Для отчёта о инцидентах с травмами за период требуется запрос:

«cast(i.ID as varchar(5))+» »+i.Name+» »+ti.Name as [Инцидент]

,r.Name+» »+p.FIO as [Участник]Incident ijoin actor a on a.Incident = i.IDjoin Personal p on p.ID=a.Personaljoin Role r on r.ID=a.Rolejoin TypeIncident ti on ti.ID=i.TypeIncident(i.sDate between :sdt and :edt) and (isNull(i.Travma,0)=0)

order by i.sDate».

Для отчёта о инцидентах по работнику за период требуется запрос:

«select.ID as [Номер]

,i.Name as [Название]

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

,ti.Name as [Тип]

,r.Name as [Роль]Incident ijoin actor a on a.Incident = i.IDjoin Personal p on p.ID=a.Personaljoin [Role] r on r.ID=a.Rolejoin TypeIncident ti on ti.ID=i.TypeIncident(a.Personal=:pr) and (i.sDate between :sdt and :edt) by i.sDate».

На рисунке 8 представлено главное окно, разработанное в среде Delphi. В верхней части окна расположена таблица инцидентов. Под ней расположены поля управления данными. Ниже расположена таблица участников инцидентов.

Рисунок 8 — Главное окно

Для редактирования списка участников требуется в нижней таблице вызвать всплывающее меню и выбрать пункт добавить. Откроется окно управление участниками — рисунок 9.

Рисунок 9 — Окно управление участниками

Для управления данными о медосмотрах требуется в главном меню выбрать пункты: «Основное» — «Медосмотр». Откроется окно, которое изображено на рисунке 10.

Рисунок 10 — Окно медосмотров

Окно так же, как и главное разделено на три отдела: главная таблица медосмотров, поля данных медосмотра, таблица прохождения. Для редактирования прохождения требуется, как и в главном окне, вызвать всплывающее меню и выбрать пункт «Добавить». Откроется окно, представленное на рисунке 11.

Рисунок 11 — Окно прохождения

Рассмотрим окно управления данными о предписаниях — рисунок 12. Окно выдержано в том же стиле.

Рисунок 12 — Окно предписаний

В таком же стиле оформлено окно редактирования списка инцидентов, на основании которых было составлено предписание — рисунок 13.

Рисунок 13 — Список инцидентов

6. Листинг программы

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

unit uMain;

interface

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.Menus, Vcl.Grids,

Vcl.DBGrids, Vcl.DBCtrls, Vcl.StdCtrls, Vcl.ComCtrls, Vcl.Mask, Vcl.ExtCtrls;

TfrmMain = class(TForm)

pnlMain: TPanel;

pnlGrid: TPanel;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

btnCancel: TButton;

btnSave: TButton;

pnlLeft: TPanel;

pnlRight: TPanel;

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

pmLeft: TPopupMenu;

pmRight: TPopupMenu;

edtFIO: TDBEdit;

dtpBirthdate: TDateTimePicker;

cbWork: TDBCheckBox;

edtPhone: TDBEdit;

cbSpec: TDBLookupComboBox;

grdLeft: TDBGrid;

grdRight: TDBGrid;

mm: TMainMenu;

imWorker: TMenuItem;

imEdit: TMenuItem;

N5: TMenuItem;

imSearch: TMenuItem;

imLibrary: TMenuItem;

imLibrary1: TMenuItem;

imLibrary3: TMenuItem;

imLibrary4: TMenuItem;

N14: TMenuItem;

imItem: TMenuItem;

imReport: TMenuItem;

imSettings: TMenuItem;

imLinking: TMenuItem;

imReport1: TMenuItem;

imReport2: TMenuItem;

imReport3: TMenuItem;

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

imAddLeft: TMenuItem;

imEditLeft: TMenuItem;

imDeleteLeft: TMenuItem;

imAddRight: TMenuItem;

imEditRight: TMenuItem;

imDeleteRight: TMenuItem;

Label6: TLabel;

edtNomer: TDBEdit;

cbCeh: TDBLookupComboBox;

Label5: TLabel;

imCeh2: TMenuItem;

cbSex: TDBComboBox;

edtRazr: TDBEdit;

Label7: TLabel;

Label8: TLabel;

procedure FormShow(Sender: TObject);

procedure pmLeftPopup(Sender: TObject);

procedure pmRightPopup(Sender: TObject);

procedure btnSaveClick(Sender: TObject);

procedure imEditClick(Sender: TObject);

procedure btnCancelClick(Sender: TObject);

procedure imAddLeftClick(Sender: TObject);

procedure imEditLeftClick(Sender: TObject);

procedure imAddRightClick(Sender: TObject);

procedure imEditRightClick(Sender: TObject);

procedure imDeleteLeftClick(Sender: TObject);

procedure imDeleteRightClick(Sender: TObject);

procedure imSearchClick(Sender: TObject);

procedure imItemClick(Sender: TObject);

procedure imLibraryClick(Sender: TObject);

procedure imLinkingClick(Sender: TObject);

procedure imReportClic(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

private

procedure ModeView(mode: boolean); //true — Veiw; false — Modify

public

{ Public declarations }

end;

frmMain: TfrmMain;

{$R *.dfm}

uDM, Search, uItem, uList, uVzisk, uLibrary, uReport;

//Дополнительные функцииTfrmMain.btnCancelClick(Sender: TObject);

DM.tblWorker.Cancel;

ModeView(true);;

TfrmMain.btnSaveClick(Sender: TObject);

DM.tblWorker.FieldByName(‘ДР’).AsDateTime:=dtpBirthdate.DateTime;

DM.tblWorker.Post;

ModeView(true);;

TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);

frmSearch.Show;

self.Free;;

TfrmMain.FormShow(Sender: TObject);

ModeView(Tag=0);

if Tag=1 then DM.tblWorker.Append

else dtpBirthDate.DateTime:=DM.tblWorker.FieldByName(‘ДР’).AsDateTime;

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

imSettings.Visible:=DM.user.admin;

imLibrary.Visible:=not DM.user.gost;

imWorker.Visible:=not DM.user.gost;;

TfrmMain.imAddLeftClick(Sender: TObject);

frm: TfrmList;

Application.CreateForm(TfrmList, frm);

DM.tblList.Append;

frm.Tag:=0;

frm.ShowModal;

DM.tblList.Refresh;;

TfrmMain.imAddRightClick(Sender: TObject);

frm: TfrmVzisk;

Application.CreateForm(TfrmVzisk, frm);

DM.tblVzisk.Append;

frm.Tag:=0;

frm.ShowModal;

DM.tblVzisk.Refresh;;

TfrmMain.imDeleteLeftClick(Sender: TObject);

if MessageDlg(‘Вы действительно хотите удалить запись?’,mtWarning,mbOkCancel,0)=mrOk then

DM.tblList.Delete;;

TfrmMain.imDeleteRightClick(Sender: TObject);

if MessageDlg(‘Вы действительно хотите удалить запись?’,mtWarning,mbOkCancel,0)=mrOk then

DM.tblVzisk.Delete;;

TfrmMain.imEditClick(Sender: TObject);

ModeView(false);

DM.tblWorker.Edit;;

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

TfrmMain.imEditLeftClick(Sender: TObject);

frm: TfrmList;

Application.CreateForm(TfrmList, frm);

DM.tblList.Edit;

frm.Tag:=1;

frm.ShowModal;;

TfrmMain.imEditRightClick(Sender: TObject);

frm: TfrmVzisk;

Application.CreateForm(TfrmVzisk, frm);

DM.tblVzisk.Edit;

frm.Tag:=1;

frm.ShowModal;;TfrmMain.imLibraryClick(Sender: TObject);

frm: TfrmLibrary;

Application.CreateForm(TfrmLibrary,frm);

frm.LoadLibrary((Sender as TMenuItem).Tag);

frm.ShowModal;

frm.Free;;TfrmMain.imReportClic(Sender: TObject);

frm: TfrmReport;

Application.CreateForm(TfrmReport,frm);

frm.Tag:=(Sender as TMenuItem).Tag;

frm.ShowModal;

frm.Free;;TfrmMain.imLinkingClick(Sender: TObject);

DM.SettingLink;;TfrmMain.imItemClick(Sender: TObject);

frm: TfrmItem;

Application.CreateForm(TfrmItem, frm);

frm.ShowModal;;TfrmMain.imSearchClick(Sender: TObject);

frmSearch.Show;

self.Free;;TfrmMain.ModeView(mode: boolean);//true — Veiw; false — Modify

pnlGrid.Enabled:= mode;

pnlMain.Enabled:= not mode;

btnSave.Visible:= not mode;

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

btnCancel.Visible:= not mode;;TfrmMain.pmLeftPopup(Sender: TObject);

if DM.user.gost then

begin

imAddLeft.Visible:=false;

imEditLeft.Visible:=false;

imDeleteLeft.Visible:=false;

end

else

begin

imAddLeft.Enabled:=edtNomer.Text<>»;

imEditLeft.Enabled:=grdLeft.DataSource.DataSet.RecordCount>0;

imDeleteLeft.Enabled:=grdLeft.DataSource.DataSet.RecordCount>0;

end;;TfrmMain.pmRightPopup(Sender: TObject);

if DM.user.gost then

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

begin

imAddRight.Visible:=false;

imEditRight.Visible:=false;

imDeleteRight.Visible:=false;

end

else

begin

imAddRight.Enabled:=edtNomer.Text<>»;

imEditRight.Enabled:=grdRight.DataSource.DataSet.RecordCount>0;

imDeleteRight.Enabled:=grdRight.DataSource.DataSet.RecordCount>0;

end;

end;.

Дамп базы данных

USE [master]

/****** Object: Database [TB] Script Date: 05/14/2017 11:12:25 ******/DATABASE [TB] ON PRIMARY

( NAME = N’TB’, FILENAME = N’c:Program FilesMicrosoft SQL ServerMSSQL10_50.SQLEXPRESS2008MSSQLDATATB.mdf’ , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )

LOG ON

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

( NAME = N’TB_log’, FILENAME = N’c:Program FilesMicrosoft SQL ServerMSSQL10_50.SQLEXPRESS2008MSSQLDATATB_1.ldf’ , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)DATABASE [TB] SET COMPATIBILITY_LEVEL = 100(1 = FULLTEXTSERVICEPROPERTY(‘IsFullTextInstalled’))[TB].[dbo].[sp_fulltext_database] @action = ‘enable’DATABASE [TB] SET ANSI_NULL_DEFAULT OFFDATABASE [TB] SET ANSI_NULLS OFFDATABASE [TB] SET ANSI_PADDING OFFDATABASE [TB] SET ANSI_WARNINGS OFFDATABASE [TB] SET ARITHABORT OFFDATABASE [TB] SET AUTO_CLOSE OFFDATABASE [TB] SET AUTO_CREATE_STATISTICS ONDATABASE [TB] SET AUTO_SHRINK OFFDATABASE [TB] SET AUTO_UPDATE_STATISTICS ONDATABASE [TB] SET CURSOR_CLOSE_ON_COMMIT OFFDATABASE [TB] SET CURSOR_DEFAULT GLOBALDATABASE [TB] SET CONCAT_NULL_YIELDS_NULL OFFDATABASE [TB] SET NUMERIC_ROUNDABORT OFFDATABASE [TB] SET QUOTED_IDENTIFIER OFFDATABASE [TB] SET RECURSIVE_TRIGGERS OFFDATABASE [TB] SET DISABLE_BROKERDATABASE [TB] SET AUTO_UPDATE_STATISTICS_ASYNC OFFDATABASE [TB] SET DATE_CORRELATION_OPTIMIZATION OFFDATABASE [TB] SET TRUSTWORTHY OFFDATABASE [TB] SET ALLOW_SNAPSHOT_ISOLATION OFFDATABASE [TB] SET PARAMETERIZATION SIMPLEDATABASE [TB] SET READ_COMMITTED_SNAPSHOT OFFDATABASE [TB] SET HONOR_BROKER_PRIORITY OFFDATABASE [TB] SET READ_WRITEDATABASE [TB] SET RECOVERY SIMPLEDATABASE [TB] SET MULTI_USERDATABASE [TB] SET PAGE_VERIFY CHECKSUMDATABASE [TB] SET DB_CHAINING OFF[TB]

/****** Object: Table [dbo].[Department] Script Date: 05/14/2017 11:12:26 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONANSI_PADDING ONTABLE [dbo].[Department](

[ID] [int] IDENTITY(1,1) NOT NULL,

[Name] [varchar](50) NOT NULL,

CONSTRAINT [PK_Department] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]ANSI_PADDING OFF

/****** Object: Table [dbo].[TypeIncident] Script Date: 05/14/2017 11:12:26 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONANSI_PADDING ONTABLE [dbo].[TypeIncident](

[ID] [int] IDENTITY(1,1) NOT NULL,

[Name] [varchar](50) NOT NULL,

CONSTRAINT [PK_TypeIncident] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]ANSI_PADDING OFF

/****** Object: Table [dbo].[Schedule] Script Date: 05/14/2017 11:12:26 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONANSI_PADDING ONTABLE [dbo].[Schedule](

[ID] [int] IDENTITY(1,1) NOT NULL,

[TypeSched] [int] NOT NULL,

[sDate] [datetime] NOT NULL,

[Description] [varchar](100) NULL,

CONSTRAINT [PK_Schedule] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]ANSI_PADDING OFF

/****** Object: Table [dbo].[Role] Script Date: 05/14/2017 11:12:26 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONANSI_PADDING ONTABLE [dbo].[Role](

[ID] [int] IDENTITY(1,1) NOT NULL,

[Name] [varchar](50) NOT NULL,

CONSTRAINT [PK_Role] PRIMARY KEY CLUSTERED

(

[ID] ASC

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]ANSI_PADDING OFF

/****** Object: Table [dbo].[Reason] Script Date: 05/14/2017 11:12:26 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONANSI_PADDING ONTABLE [dbo].[Reason](

[ID] [int] IDENTITY(1,1) NOT NULL,

[Name] [varchar](50) NOT NULL,

CONSTRAINT [PK_Reason] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]ANSI_PADDING OFF

/****** Object: Table [dbo].[Post] Script Date: 05/14/2017 11:12:26 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONANSI_PADDING ONTABLE [dbo].[Post](

[ID] [int] IDENTITY(1,1) NOT NULL,

[Name] [varchar](50) NOT NULL,

CONSTRAINT [PK_Post] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]ANSI_PADDING OFF

/****** Object: Table [dbo].[Personal] Script Date: 05/14/2017 11:12:26 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONANSI_PADDING ONTABLE [dbo].[Personal](

[ID] [int] IDENTITY(1,1) NOT NULL,

[FIO] [varchar](60) NOT NULL,

[Birthdate] [datetime] NOT NULL,

[Sex] [char](1) NOT NULL,

[Phone] [varchar](15) NOT NULL,

[Address] [varchar](100) NULL,

[SNILS] [varchar](12) NULL,

[Passport] [varchar](10) NULL,

CONSTRAINT [PK_Personal] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]ANSI_PADDING OFF

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

/****** Object: Table [dbo].[Pass] Script Date: 05/14/2017 11:12:26 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[Pass](

[ID] [int] IDENTITY(1,1) NOT NULL,

[Schedule] [int] NOT NULL,

[Personal] [int] NOT NULL,

[Reason] [int] NULL,

[PassEnd] [bit] NULL,

CONSTRAINT [PK_Pass] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

/****** Object: Table [dbo].[Job] Script Date: 05/14/2017 11:12:26 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[Job](

[ID] [int] IDENTITY(1,1) NOT NULL,

[Personal] [int] NOT NULL,

[Department] [int] NOT NULL,

[Post] [int] NOT NULL,

[EndJob] [bit] NULL,

CONSTRAINT [PK_Job] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

[ID] [int] IDENTITY(1,1) NOT NULL,

[sDate] [datetime] NOT NULL,

[Description] [varchar](100) NULL,

[Personal] [int] NOT NULL,

[EndInstruction] [bit] NULL,

CONSTRAINT [PK_Instruction] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]ANSI_PADDING OFF

/****** Object: Table [dbo].[Incident] Script Date: 05/14/2017 11:12:26 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONANSI_PADDING ONTABLE [dbo].[Incident](

[ID] [int] IDENTITY(1,1) NOT NULL,

[Name] [varchar](50) NOT NULL,

[TypeIncident] [int] NOT NULL,

[sDate] [datetime] NOT NULL,

[Description] [text] NULL,

[Travma] [bit] NULL,

CONSTRAINT [PK_Incident] PRIMARY KEY CLUSTERED

([ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]ANSI_PADDING OFF

/****** Object: Table [dbo].[Actor] Script Date: 05/14/2017 11:12:26 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[Actor](

[ID] [int] IDENTITY(1,1) NOT NULL,

[Incident] [int] NOT NULL,

[Personal] [int] NOT NULL,

[Role] [int] NOT NULL,

CONSTRAINT [PK_Actor] PRIMARY KEY CLUSTERED

([ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

/****** Object: Table [dbo].[ListIncident] Script Date: 05/14/2017 11:12:26 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[ListIncident](

[ID] [int] IDENTITY(1,1) NOT NULL,

[Instruction] [int] NOT NULL,

[Incident] [int] NOT NULL,

CONSTRAINT [PK_ListIncident] PRIMARY KEY CLUSTERED

([ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

/****** Object: ForeignKey [FK_Pass_Personal] Script Date: 05/14/2017 11:12:26 ******/TABLE [dbo].[Pass] WITH CHECK ADD CONSTRAINT [FK_Pass_Personal] FOREIGN KEY([Personal])[dbo].[Personal] ([ID])UPDATE CASCADEDELETE CASCADETABLE [dbo].[Pass] CHECK CONSTRAINT [FK_Pass_Personal]

/****** Object: ForeignKey [FK_Pass_Reason] Script Date: 05/14/2017 11:12:26 ******/TABLE [dbo].[Pass] WITH CHECK ADD CONSTRAINT [FK_Pass_Reason] FOREIGN KEY([Reason])[dbo].[Reason] ([ID])UPDATE CASCADETABLE [dbo].[Pass] CHECK CONSTRAINT [FK_Pass_Reason]

/****** Object: ForeignKey [FK_Pass_Schedule] Script Date: 05/14/2017 11:12:26 ******/TABLE [dbo].[Pass] WITH CHECK ADD CONSTRAINT [FK_Pass_Schedule] FOREIGN KEY([Schedule])[dbo].[Schedule] ([ID])UPDATE CASCADEDELETE CASCADETABLE [dbo].[Pass] CHECK CONSTRAINT [FK_Pass_Schedule]

/****** Object: ForeignKey [FK_Job_Department] Script Date: 05/14/2017 11:12:26 ******/TABLE [dbo].[Job] WITH CHECK ADD CONSTRAINT [FK_Job_Department] FOREIGN KEY([Department])[dbo].[Department] ([ID])UPDATE CASCADEDELETE CASCADETABLE [dbo].[Job] CHECK CONSTRAINT [FK_Job_Department]

/****** Object: ForeignKey [FK_Job_Personal] Script Date: 05/14/2017 11:12:26 ******/TABLE [dbo].[Job] WITH CHECK ADD CONSTRAINT [FK_Job_Personal] FOREIGN KEY([Personal])[dbo].[Personal] ([ID])UPDATE CASCADEDELETE CASCADETABLE [dbo].[Job] CHECK CONSTRAINT [FK_Job_Personal]

/****** Object: ForeignKey [FK_Job_Post] Script Date: 05/14/2017 11:12:26 ******/TABLE [dbo].[Job] WITH CHECK ADD CONSTRAINT [FK_Job_Post] FOREIGN KEY([Post])[dbo].[Post] ([ID])UPDATE CASCADEDELETE CASCADETABLE [dbo].[Job] CHECK CONSTRAINT [FK_Job_Post]

/****** Object: ForeignKey [FK_Instruction_Personal] Script Date: 05/14/2017 11:12:26 ******/TABLE [dbo].[Instruction] WITH CHECK ADD CONSTRAINT [FK_Instruction_Personal] FOREIGN KEY([Personal])[dbo].[Personal] ([ID])UPDATE CASCADEDELETE CASCADETABLE [dbo].[Instruction] CHECK CONSTRAINT [FK_Instruction_Personal]

/****** Object: ForeignKey [FK_Incident_TypeIncident] Script Date: 05/14/2017 11:12:26 ******/TABLE [dbo].[Incident] WITH CHECK ADD CONSTRAINT [FK_Incident_TypeIncident] FOREIGN KEY([TypeIncident])[dbo].[TypeIncident] ([ID])UPDATE CASCADEDELETE CASCADETABLE [dbo].[Incident] CHECK CONSTRAINT [FK_Incident_TypeIncident]

/****** Object: ForeignKey [FK_Actor_Incident] Script Date: 05/14/2017 11:12:26 ******/TABLE [dbo].[Actor] WITH CHECK ADD CONSTRAINT [FK_Actor_Incident] FOREIGN KEY([Incident])[dbo].[Incident] ([ID])UPDATE CASCADEDELETE CASCADETABLE [dbo].[Actor] CHECK CONSTRAINT [FK_Actor_Incident]

/****** Object: ForeignKey [FK_Actor_Personal] Script Date: 05/14/2017 11:12:26 ******/TABLE [dbo].[Actor] WITH CHECK ADD CONSTRAINT [FK_Actor_Personal] FOREIGN KEY([Personal])[dbo].[Personal] ([ID])UPDATE CASCADEDELETE CASCADETABLE [dbo].[Actor] CHECK CONSTRAINT [FK_Actor_Personal]

/****** Object: ForeignKey [FK_Actor_Role] Script Date: 05/14/2017 11:12:26 ******/TABLE [dbo].[Actor] WITH CHECK ADD CONSTRAINT [FK_Actor_Role] FOREIGN KEY([Role])[dbo].[Role] ([ID])UPDATE CASCADEDELETE CASCADETABLE [dbo].[Actor] CHECK CONSTRAINT [FK_Actor_Role]

/****** Object: ForeignKey [FK_ListIncident_Incident] Script Date: 05/14/2017 11:12:26 ******/TABLE [dbo].[ListIncident] WITH CHECK ADD CONSTRAINT [FK_ListIncident_Incident] FOREIGN KEY([Incident])[dbo].[Incident] ([ID])UPDATE CASCADEDELETE CASCADETABLE [dbo].[ListIncident] CHECK CONSTRAINT [FK_ListIncident_Incident]

/****** Object: ForeignKey [FK_ListIncident_Instruction] Script Date: 05/14/2017 11:12:26 ******/TABLE [dbo].[ListIncident] WITH CHECK ADD CONSTRAINT [FK_ListIncident_Instruction] FOREIGN KEY([Instruction])[dbo].[Instruction] ([ID])UPDATE CASCADEDELETE CASCADETABLE [dbo].[ListIncident] CHECK CONSTRAINT [FK_ListIncident_Instruction]

Заключение

В данной курсовой работе требовалось спроектировать АРМ инженера по ТБ.

Определены функции приложения:

—       учёт персонала;

—       учёт травм и несчастных случаев;

—       формирование графиков медосмотров;

—       учёт результатов медосмотров;

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

—       учёт результатов тестирования персонала;

—       учёт нарушений охраны труда;

—       формирование отчётов.

В проектной главе была произведена постановка задачи. Выведены сущности, которые составляют базу данных системы: персонал; график; инцидент; предписание; прохождение; работа; участник; список.

Построена инфологическая модель базы данных, рассмотрены связи между сущностями.

Спроектирована физическая модель БД, база данных состоит из следующих таблиц: Post; Department; Job; Personal; Schedule; Reason; Pass; Incident; TypeIncident; Actor; Role; Instruction; ListIncident.

Построены запросы. Создан интерфейс пользователя.

Литература

1. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. — СПб.: Питер, 2015. — 368с.

2. Грофф Д., Вайнберг П., Оппель Э. SQL. Полное руководство. — СПб.: Вильямс, 214. — 960с.

3. Илюшечкин В. Основы использования и проектирования баз данных. Учебник. — М.:Юрайт, 2014. — 214с.

4. Коваленко В. Проектирование информационных систем. / Коваленко В. — М.: Форум, 2012. — 320с.

5. Кузнецов С. Базы данных. — М.: Academia, 2012. — 496с.

6. Основы использования и проектирования баз данных. Учебник / Илюшечкин В. — М.: Юрайт, 2014. — 214с.

7. Осипов Д. Delphi. Программирование для Windows, OS X, iOS и Android. — СПб.: БХВ-Петербург, 2016. — 310с.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

Средняя оценка 0 / 5. Количество оценок: 0

Поставьте оценку первым.

Сожалеем, что вы поставили низкую оценку!

Позвольте нам стать лучше!

Расскажите, как нам стать лучше?

1101

Закажите такую же работу

Не отобразилась форма расчета стоимости? Переходи по ссылке

Не отобразилась форма расчета стоимости? Переходи по ссылке