Разработка программного продукта, оптимизирующего создание отчетов по базе данных

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

телефонный справочник с некоторой дополнительной информацией (должность, 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 для о