Разработка программного продукта, оптимизирующего создание отчетов по базе данных
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
телефонный справочник с некоторой дополнительной информацией (должность, E-mail).
Ранее на предприятии для этой цели никаких специальных программных продуктов не было, и необходимую информацию можно было получить, только используя запросы к базе данных. В связи с тем, что такой способ обращения к базе данных подразумевает определенные сложности в составлении отчетов, а именно проблематичность группировки данных по отделам и необходимость переписывать запрос, если нужны данные по другому отделу, было решено создать программное средство, которое удобно в использовании и не требует дополнительных знаний языка запросов.
В конечном варианте программа должна предоставлять возможность предварительного просмотра полученного отчета, печати, выгрузки данных в Excel, поиска данных о сотруднике по фамилии, иметь простой интерфейс, справочную систему. Также, поскольку данные в базе конфиденциальны, предполагается окно для ввода имени пользователя и пароля.
2.2 Предметная область
Основным объектом для работы является база данных на Oracle. Она имеет следующую структуру:
В базе данных имеется 6 сущностей:
PERSON - стержень;
PERSTEL - характеристика;
PERSJOB - ассоциация;
JOB - характеристика;
PERSMAIL - характеристика;
STRUCTURE - характеристика.
Благодаря возможностям Oracle первичные ключи у сущностей не определены.
Связи:
Сущность PERSON связана с сущностями PERSJOB и STRUCTURE: 1 - 1.
Сущность PERSON связана с сущностями PERSTEL и PERSMAIL: 1 - много.
Сущность PERSJOB связана с сущностью JOB: 1 - 1.
Сущность STRUCTURE связана сама с собой: 1 - 1.
Ограничения целостности:
Таблица JOB:
NAME - тип данных - символьная строка длиной 150 символов, может быть пустым.
ID - тип данных - целое, может быть пустым.
RANK- тип данных - целое, может быть пустым.
Таблица PERSJOB:_PERSON - тип данных - целое, не пустое.
ID_JOB - тип данных - целое, не пустое.
Таблица PERSMAIL:
ID_PERSON - тип данных - целое, не пустое. - тип данных - символьная строка длиной 100 символов, не пустое.
Таблица PERSON:
ID - тип данных - целое, не пустое, уникально.
ID_STRUCT - тип данных - символьная строка длиной 11 символов, может быть пустым.
DATE_CREATED - тип данных - дата, может быть пустым, по умолчанию текущая дата.
F - тип данных - символьная строка длиной 64 символа, может быть пустым.
I - тип данных - символьная строка длиной 64 символа, может быть пустым.
O - тип данных - символьная строка длиной 64 символа, может быть пустым.
OFFICE - тип данных - символьная строка длиной 100 символов, может быть пустым.
IMG - тип данных - большой объект (BLOB), может быть пустым.
DATE_BIRTH - тип данных - дата, может быть пустым.
Таблица PERSTEL:
ID_PERSON - тип данных - целое, не пустое.
TEL - тип данных - символьная строка длиной 100 символов, не пустое.
Таблица STRUCTURE:
ID - тип данных- символьная строка длиной 11 символов, может быть пустое.
NAME - тип данных- символьная строка длиной 100 символов, может быть пустое.
PARENT_ID - тип данных- символьная строка длиной 11 символов, может быть пустое.
INFO - тип данных- символьная строка длиной 256 символов, может быть пустое.
ORD - тип данных - целое, может быть пустое.
Особенностью данной БД является иерархическая структура таблицы STRUCTURE, то есть она связана сама с собой (поля ID и PARENT_ID). Таким образом, эту таблицу можно представить в виде дерева: корневая вершина - запись, у которой поле PARENT_ID пустое, на следующем уровне будут записи, в которых в поле PARENT_ID указан ID корневой вершины и так далее до конечных листов. Из-за такой структуры таблицы возникает необходимость использовать рекурсивные (иерархические) запросы, так как надо показать какой отдел к какому подразделению относится. Именно для правильного отображения данных в некоторых таблицах добавлены дополнительные атрибуты, например ORD в таблице STRUCTURE и RANK в таблице JOB. Например, благодаря сортировке по этим полям при отображении дерева отделов Управление находится выше АТЭЦ, а при формировании отчетов начальники отделов отображаются первыми, а не в алфавитном порядке по фамилиям всех сотрудников.
2.3 Описание программного продукта
Созданный программный продукт имеет интуитивно понятный интерфейс и является максимально простым для работы.
При запуске приложения на экран выводится форма для ввода логина и пароля. При неправильном вводе выдается соответствующее сообщение. Если авторизация пройдена, то открывается главная форма. В её левой части расположено поле, в котором отображается дерево предприятий и отделов. В зависимости от того предприятия (отдела), который в нем выбран, изменяется текст в поле заголовка, который отображает полный путь к выбранному предприятию (отделу), по которому будет составляться отчет.
По нажатию кнопки Составить отчет будут отображены данные по сотрудникам данного предприятия (отдела) и его подотделов.
Если это те данные, которые необходимы пользователю (то есть он правильно выбрал отдел), то пользователь может выгрузить данные в Excel или просмотреть отчет, который, впоследствии, можно распечатать.
Если пользователь выгружает данные в Excel, то открывается книга Excel, в которой в виде таблицы записаны данные по запросу. Дальше пользователь может делать все то, что позволяет Excel.
2.4 Разработка программного продукта
В качестве среды разработки выбрана среда программирования Borland C++ Builder 6. Языком программирования выбран С++.
При разработке также использовался программный продукт Toad for Oracle для о