Наименование поля
|
Формат поля
|
Содержимое поля
|
числовой, счетчик
|
уникальный код удержания
|
КодУдержания
|
числовой
|
код удержания
|
КодТабеля
|
числовой
|
код табеля, по которому производится удержание
|
Дата
|
дата/время
|
дата создания удержания
|
Сумма
|
числовой
|
сумма удержания
|
3.3 SQL-код
по созданию таблиц и описания ограничений
/*удаление связей в таблицах*/TABLE ДолжностьDOL_KATTABLE
ЛицевойСчетLIC_SOTR,LIC_OTDEL,LIC_DOLTABLE ТабельTAB_LICTABLE НачисленоNACH_YA,
NACH_TABTABLE УдержаноUDER_YA, UDER_TAB
/*удаление таблиц*/TABLE СотрудникиTABLE ЛицевойСчетTABLE
ДолжностьTABLE КатегорияTABLE ОтделTABLE ТабельTABLE УдержаноTABLE
УдержанияTABLE НачисленоTABLE Начисления
/*создание таблиц*/TABLE Сотрудники (
Код int primary key identity,
Фамилия varchar (25) NOT NULL,
Имя varchar (15) NOT NULL,
Отчество varchar (25) NOT NULL
)TABLE ЛицевойСчет (
Код int primary key identity,
КодСотрудника int NOT NULL,
КодДолжности int NOT NULL,
ДатаПриема datetime NOT NULL,
ДатаУвольнения datetime,
Ставка float NOT NULL,
КодОтдела int NOT NULL
)TABLE Должность (
Код int primary key identity,
Название varchar (25) NOT NULL,
КодКатегории int NOT NULL
)TABLE Категория (
Код int primary key identity,
Название varchar (25) NOT NULL
)TABLE Отдел (
Код int primary key identity,
Название varchar (25) NOT NULL
)TABLE Табель (
Код int primary key identity,
КодЛицевогоСчета int NOT NULL,
Дата datetime NOT NULL,
ОтработанноеВремя int NOT NULL
)TABLE Удержано (
Код int primary key identity,
КодТабеля int NOT NULL,
КодУдержания int NOT NULL,
Дата datetime NOT NULL,
Сумма int NOT NULL
)TABLE Удержания (
Код int primary key identity,
Название varchar (25) NOT NULL
)TABLE Начислено (
Код int primary key identity,
КодТабеля int NOT NULL,
КодНачисления int NOT NULL,
Дата datetime NOT NULL,
Сумма int NOT NULL
)TABLE Начисления (
Код int primary key identity,
Название varchar (25) NOT NULL
)
/*создание связей в таблицах*/TABLE ДолжностьCONSTRAINT
DOL_KATKEY (КодКатегории)Категория (Код)TABLE ЛицевойСчетCONSTRAINT LIC_SOTRKEY
(КодСотрудника)Сотрудники (Код),LIC_DOLKEY (КодДолжности)Должность
(Код),LIC_OTDELKEY (КодОтдела)Отдел (Код)TABLE ТабельCONSTRAINT TAB_LICKEY
(КодЛицевогоСчета)ЛицевойСчет (Код)TABLE НачисленоCONSTRAINT NACH_YAKEY
(КодНачисления)Начисления (Код),NACH_TABKEY (КодТабеля)Табель (Код)TABLE
УдержаноCONSTRAINT UDER_YAKEY (КодУдержания)Удержания (Код),UDER_TABKEY
(КодТабеля)Табель (Код)
4. Схема
диалога пользователей с разработанным приложением
4.1
Корректировка таблиц-справочников
Спроектированная база данных содержит пять
таблиц-справочников:
. Сотрудники;
2. Категория;
. Отдел;
. Начисления;
. Удержания.
При выборе любой из таблицы-справочника имеется возможность
корректировки данных таблицы (изменение, добавление и удаление записей).
Для того, что бы корректрировать какую-либо таблицу имеется 2
способа:
. Этот способ основан на работу с кнопками. Если вы
хотите добавить запись в таблицу, то необходимо сначало выбрать эту таблицу,
после чего нажать на кнопку , расположенных в нижней части формы (рисунок
4.2). Переход на другое поле осуществляется с помощью клавиши Tab.
Если вы хотите удалить запись, то вам необходимо выделить
интересующую вам запись, после чего нажать на кнопку , расположенных в нижней
части формы (рисунок 4.3).
После нажатия на кнопку "Удалить" появляется окно
уведомления (рисунок 4.4).
Для подтверждения удаления данных необходимо нажать на кнопку
"Да".
Если эта запись используетс в дочерней таблице, то появиться
предупреждение (рисунок 4.5), и удаление записи будет отменено.
. Этот способ основан на "щелчку по записи".
Если вы хотите добавить запись, то необходимо сначало выбрать эту таблицу,
далее внизу ее будет расположена пустая строка для заполнения, поставить в нее
курсор и начать заполнять (рисунок 4.6).
Если вы хотите изменить данные в какой либо таблице,
необходимо сначала установить указатель на интересующую вас запись, после чего
дважды щёлкнуть мышкой (рисунок 4.7).
Для удаления надо установить указатель на интересующую вас
запись, нажать правой кнопкой мыши по записи и выбрать "Вырезать"
(рисунок 4.8).
4.2 Основная
функциональность приложения по ведению базы данных
В курсовой работе рассмотрены 5 дочерних таблиц (рисунок
4.9):
. Должности сотрудников;
2. Информация и лицевых счетах;
. Табеля;
. Информация о начислениях;
. Информация об удержаниях.
Главной задачей данного приложения является заполнени
лицевого счета на каждого сотрудника с указанием его должности, даты приема и
увольнения на работу, ставки и название отдела, в котором он работает,
заполнение количество отработанных часов в табель, расчет начислений и
удержаний по табелю.
Рассмотрим пошаговое оформление начисление или удержание
сотруднику.
Для начала работы, необходимо ввести ФИО сотрудника на форму
"Сотрудники" (рисунок 4.10).
Следующим шагом является заполнение формы "Информация о
лицевых счетах", которая находиться в пукте меню Таблицы.
Для заполнения лицевого счета сотрудника необходимо выбрать
ФИО сотрудника, выбрать должность на которую он будит принят, ввести дату
принятия на работу, ставку на которую он будет принят и название отдела, в
котором он будет работать (рисунок 4.11).
Если при добавлении записей пользователь не заполнит
необходимые поля, то появиться предупреждение (рисунок 4.12).
После заполнения информации о лицевом счете, переходим к
заполнению табеля. При его заполнении вам нужно указать количество отработанных
часов заданным сотрудником. Благодаря информации, заполненной по табелю
бухгалтер будет рассчитывать зарплату сотрудникам.
Для заполнения табеля выбираем форму "Табеля" в
пункте меню Таблицы. При выборе фамилии сотрудника, в списке показывается его
должность, даты приема и увольнения, что облегчает выбор и исключает неверность
информации (рисунок 4.13).
Заносим дату и отработанное время табеля (рисунок 4.14).
Заключительным шагом является в пункте меню Таблицы открыть
форму "Информация о начислениях". При выборе фамилии сотрудника, в
списке показывается его должность, даты приема и увольнения, дата создания
табеля, что облегчает выбор и исключает неверность информации (рисунок 4.15).
При выборе название начисления в списке показываются все
возможные начисления (рисунок 4.16). Если нужного вам начисления нет, нужно
открыть справочник "Начисления" и добавить нужное название.
Аналогичным способом добавим в форму "Информация об
удержаниях" нужную вам информацию (рисунок 4.17).
4.3
Построение печатных форм
В приложении реализовано построение пяти отчетов (рисунок
4.18):
- "Годовой отчет по лицевым
счетам" - отчет по лицевым счетам в течении года с указанием количества
сотрудников за указанный год (Фамилия, должность, дата приема, дата увольнения,
ставка, название отдела) (рисунки 4.18 и 4.19);
- "Начисления по сотрудникам" -
список сотрудников с указанием должности, даты приема и увольнения, даты
создания табеля, названия начисления, даты начисления и сумму, с указанием
итого по сумме начислений (рисунок 4.20);
- "Удержания по сотрудникам" -
список сотрудников с указанием должности, даты приема и увольнения, даты
создания табеля, названия удержания, даты удержания и сумму, с указанием итого
по сумме удержаний (рисунок 4.21);
- "Начисления по Гриневич" -
список названий начислений с указанием суммы и итого по сумме начислений для
сотрудника Гриневич (рисунок 4.22);
- "Увеличение начисления" - список
зарплаты сотрудников с указанием даты начисления и суммы, если поднять зарплату
на 5% (рисунок 4.23).
Для задания года в отчете "Годовой отчет по лицевым
счетам" используется запрос ЗапросОтчетЛицевойСчет. Текст запроса описан
ниже:[ЛицевойСчет]. [КодСотрудника],
[ЛицевойСчет]. [КодДолжности],
[ЛицевойСчет]. [ДатаПриема], [ЛицевойСчет]. [ДатаУвольнения],
[ЛицевойСчет]. [Ставка],
[ЛицевойСчет]. [КодОтдела]ЛицевойСчет( ( (Year
([ДатаПриема])) = [Введите год]));
Для использования процедуры Начисления По Сотруднику в отчете
Начисления по Гриневич, создается запрос Запрос Отчет Начисления к серверу.
Текст запроса описан ниже:Начисления По Сотруднику Гриневич
Для использования процедуры Начисления По Табелю в отчете
Увеличение Начисления, создается запрос Запрос Отчет Увеличение Начисления к
серверу. Текст запроса описан ниже:Начисления По Табелю 1
4.4
Дополнительная функциональность приложения
Использование отчетов очень удобно в работе с приложением.
Чтобы повысить удобство приложения, на каждой форме расположена кнопка . Вы легко сможете
распечатать нужную вам форму (рисунок 4.25).
Вам программа предложит сохранить документ (рисунок 4.26).
Далее вы сможете распечатать данную форму или сохранить для
дальнейшего использования.
Организован поиск на каждой из форм, достаточно только нажать
кнопку . Для этого необходимо
открыть интересующую вам форму, нажать кнопку поиска и ввести критерий поиска
(рисунок 4.27).
5.
Использование средств MS SQL Server
5.1
Использование представлений
Для вывода данных из таблиц базы данных используются
представления, приведенные в таблице 5.1.
Таблица 5.1 - Используемые в приложении представления
Название
|
Назначение
|
Где используется
|
СотрудникиДолжность
|
Выборка данных из нескольких таблиц
|
Для получения списка об информации по
сотруднику в таблице Табеля
|
СотрудникиНачисление
|
Выборка данных из нескольких таблиц
|
Для получения списка об информации по
сотруднику в таблице Информация о начислениях
|
СотрудникиУдержания
|
Выборка данных из нескольких таблиц
|
Для получения списка об информации по
сотруднику в таблице Информация об удержаниях
|
НачисленияДляОтчета
|
Выборка данных из нескольких таблиц
|
Отображение данных в отчете Начисления по
сотрудникам
|
УдержанияДляОтчета
|
Выборка данных из нескольких таблиц
|
Отображение данных в отчете Удержания по
сотрудникам
|
Ниже приведен текст SQL, создающий представления:
View СотрудникиДолжностьView СотрудникиДолжностьЛицевойСчет.
Код,
Сотрудники. Фамилия,
Название,
ДатаПриема,
Сотрудники. Фамилия,
Название,
ДатаПриема,
ДатаУвольнения,
Табель. ДатаСотрудники, Должность, ЛицевойСчет,
ТабельЛицевойСчет. КодСотрудника=Сотрудники. КодЛицевойСчет.
КодДолжности=Должность. КодТабель. КодЛицевогоСчета=ЛицевойСчет. КодView
СотрудникиУдержанияView СотрудникиУдержанияТабель. Код,
Сотрудники. Фамилия,
Название,
ДатаПриема,
ДатаУвольнения,
Табель. ДатаСотрудники, Должность, ЛицевойСчет,
ТабельЛицевойСчет. КодСотрудника=сотрудники. КодЛицевойСчет.
КодДолжности=Должность. КодТабель. КодЛицевогоСчета=ЛицевойСчет. КодView
НачисленияДляОтчетаView НачисленияДляОтчетаСотрудники. Фамилия,
Должность. Название,
ДатаПриема,
ДатаУвольнения,
Табель. Дата as ДатаТабеля,
Начисления. Название as НазваниеНачисления,
Начислено. Дата,
СуммаСотрудники, Должность, ЛицевойСчет,
Табель, Начислено, НачисленияЛицевойСчет.
КодСотрудника=сотрудники. КодЛицевойСчет. КодДолжности=Должность. КодТабель.
КодЛицевогоСчета=ЛицевойСчет. КодНачислено. КодТабеля=Табель. КодНачислено.
КодНачисления=Начисления. КодView УдержанияДляОтчетаView
УдержанияДляОтчетаСотрудники. Фамилия,
Должность. Название,
ДатаПриема,
ДатаУвольнения,
Табель. Дата as ДатаТабеля,
Удержания. Название as НазваниеУдержания,
Удержано. Дата,
СуммаСотрудники, Должность,
ЛицевойСчет, Табель, Удержано, УдержанияЛицевойСчет.
КодСотрудника=сотрудники. КодЛицевойСчет. КодДолжности=Должность. КодТабель.
КодЛицевогоСчета=ЛицевойСчет. КодУдержано. КодТабеля=Табель. КодУдержано.
КодУдержания=Удержания. Код
.2
Использование хранимых процедур
В таблице 5.2 приведено описание хранимых процедур,
используемых в приложении.
Таблица 5.2 - Используемые в приложении хранимые процедуры
Название
|
Назначение
|
Где используется
|
НачисленияПоСотруднику
|
Получение начислений по заданному сотруднику
|
Для отчёта "Начисления по Гриневич"
|
НачисленияПоТабелю
|
Получение списка сотрудников и их зарплату
|
Для отчёта "Увеличение начисления"
|
Ниже приведен SQL код создания процедур:
вывести все начисления по заданному сотруднику
PROCEDURE НачисленияПоСотрудникуPROCEDURE НачисленияПоСотруднику
@сотрудник varchar (30)Сотрудники. Фамилия,
Начисления. Название,
Начислено. Дата,
Начислено. СуммаСотрудники, ЛицевойСчет, Табель, Начислено,
Начисления
WHERE Сотрудники. Фамилия=@сотрудник
<mailto:Сотрудники.Фамилия=@сотрудник>ЛицевойСчет. КодСотрудника=сотрудники.
КодТабель. КодЛицевогоСчета=ЛицевойСчет. КодНачислено. КодТабеля=Табель.
КодНачислено. КодНачисления=Начисления. Код
/* В результате получится список табелей, которым подняли сумму
начисления на 5%*/Proc НачисленияПоТабелюProc НачисленияПоТабелю
@код_начисления intКодТабеля,
КодНачисления,
Дата,
Сумма#УвеличениеНачисленияНачисленоКодНачисления=@код_начисления#УвеличениеНачисления
set Сумма=Сумма+Сумма*0.05* from #УвеличениеНачисления
5.3
Использование временных таблиц
Описание временной таблицы использованной в приложении
приведено в таблице 5.3.
Таблица 5.3 - Используемые в приложении временные таблицы
Название
|
Назначение
|
Где используется
|
#УвеличениеНачисления
|
Увеличение зарплаты на 5%
|
В процедуре "НачисленияПоТабелю"
|
Текст хранимой процедуры использующей временную таблицу
приведен в п.5.2.
Заключение
В результате выполнения курсовой работы было разработано
приложение баз данных для расчета зарплаты в отделе бухгалтерия.
Приложение для работы с базой данных было разработанно средствами
Microsoft Access 2013 и MS SQL SERVER 2000.
При разработке приложения были выполнены следующие действия:
- разработано клиентское приложение с
качественным и понятным пользователю интерфейсом;
- написаны хранимые процедуры и
представления для переноса части функциональности на сервер.
Разработанное приложение предназначенно упростить работу
сотрудникам отдела бухгалтерии, путем замены работы с документами простым
внесения всех данных на сервер предприятия. Благодаря этому сократиться время
для обработки данных, и получение уже готовой информации.
Список
использованных источников
1
Винкоп, С. Использование Microsoft SQL Server 7.0: специальное издание / С.
Винкоп. - СПб.: Издательский дом "Вильямс", 2001. - 816 с.
Хоторн,
Р. Разработка баз данных Microsoft SQL Server 2000 на примерах / Р. Хоторн. -
М.: Бином, 2001. - 464 с.
Змитрович,
А.И. Базы данных: учебное пособие для вузов / А.И. Змитрович. - Мн.:
Университетское, 1991. - 271 с.
Риордан,
Р. Программирование в Microsoft SQL Server 2000. Шаг за шагом / Р. Риордан. -
М.: Эком, 2002. - 608 с.
Кренке,
Д. Теория и практика построения баз данных / Д. Кренке. - 8-е изд. - СПб.:
Питер, 2003. - 800 с.