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

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    136,9 Кб
  • Опубликовано:
    2012-09-15
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

Содержание


Содержание

. Ознакомительная часть

.1 Деятельность отдела информационных технологий

.2 Технические характеристики

.3 Технические характеристики ПК, используемого для разработки

.4 Программные пакеты

. Практическая часть

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

.2 Предметная область

.3 Описание программного продукта

.4 Разработка программного продукта

.5 Описание интерфейса ПП

. Анализ результатов

Список используемой литературы

Приложения

1. Ознакомительная часть

 

.1 Деятельность отдела информационных технологий


Отдел информационных технологий относится к управлению филиала «Кольский» ОАО «ТГК-1».

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

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

В сопровождение баз данных входит работа с БД Oracle, БД MSSQL, поддержка SAP/R3 HR, КСУ ФХД, КИДО (контроль исполнения договорных обязательств), ГКПЗ (годовая комплексная программа закупок), ИСИДА (БД используемая для документооборота), АСБУ на базе 1С.

В сопровождение локальной вычислительной сети входит настройка телекоммуникаций (маршрутизация, настройка ЛВС), подключение к ЛВС рабочих станций, серверов, оргтехники, техническая поддержка пользователей.

Обслуживание телекоммуникаций включает в себя обслуживание серверов ЛВС, поддержку АД (Active Directory) включая структурные подразделения, обслуживание структурированных кабельных систем филиала, электронной почты, интернета и каналов связи, поддержку сервисов DNS/DHCP.

ОИТ сопровождает следующие программные комплексы: бухгалтерский комплекс (АСБУ на базе 1С, ЗУП на базе 1С, САП), КИДО, ГКПЗ, ИСИДА, АССД для ООЗД, информационно правовые системы.

В область защиты информации входит защита персональных данных пользователей, разграничение прав доступа, аудит безопасности.

Также отдел занимается сметно-договорной работой, работой с подрядчиками, снабжением филиала расходными материалами для оргтехники. Это входит в задачи договорно-экономического характера и материального обеспечения.

1.2 Технические характеристики


В распоряжении предприятия имеется большое число персональных компьютеров. В основном это:

Ø  компьютеры AQUARIUS с характеристиками:

·        Процессор: P4 3GHz;

·        Оперативная память: 1 Гб;

·        HDD: 160 Гб;

·        DVD-rom;

·        Video on Board.

Ø  компьютеры HP Z210 c характеристиками:

·        Процессор: Intel Core i5 3,3 GHz;

·        Оперативная память: 4 Гб;

·        HDD: 500 Гб;

·        DVD-rom;

·        Card reader;

·        Video on Board.

Ø  ноутбуки HP:

·        Процессор: Intel Core 2 duo 2.6 GHz x2;

·        Оперативная память: 2 Гб;

·        HDD: 250 Гб;

·        DVD-rom;

·        Card reader;

·        Встроенный адаптер беспроводной связи.

Все персональные компьютеры предприятия объединены в локальную сеть, главный узел которой располагается в серверной, где стоит большое количество серверов (около 20). Персональные компьютеры подключены витой парой к маршрутизаторам, которые оптоволокном подключены к серверам.

Интернет настроен через прокси-сервер. Канал 100 Мбит. Если пользователю необходим доступ в Интернет по рабочим моментам, ему назначается ежемесячный лимит траффика, при выработке которого блокируется доступ к сети Интернет. Лимит разный для всех пользователей и зависит от необходимости по трудовым обязанностям. Заблокированы социальные сети (Вконтакте, Одноклассники), сервисы мгновенных сообщений (ICQ), онлайн-игры, торрент-трекеры.

Функциональная схема














Отдел информационных технологий получает задания от руководства на еженедельных плановых совещаниях. Задания бывают трех типов: написание программного продукта, обеспечение работоспособности имеющихся систем и настройка новых, а так же задачи поддержки 1С бухгалтерии. Для написания программных продуктов в отделе существует штат программистов. Обеспечение работоспособности и настройку систем осуществляют электроники. Поддержку 1С бухгалтерии осуществляют специалисты в этой области. Комплексное выполнение всех поставленных задач обеспечивает оптимизацию работы других отделов, бесперебойную работу программных и аппаратных комплексов предприятия.

1.3 Технические характеристики ПК, используемого для разработки


) Ноутбук HP Compaq 6720s

Процессор: Intel® Core™ 2 Duo CPU T7250 (2 ГГц x 2).

Память: 1 Гб.

Жесткий диск: 150 Гб.

Оптические устройства: Дисковод DVD+/-RW.

Порты: USB 2.0 (3 шт).

Встроенный адаптер локальной сети Intel® 82562GT 10/100.

Встроенный адаптер беспроводной связи Intel® PRO/Wireless 3945ABG.

Устройство считывания карт памяти.

.4 Программные пакеты

) Операционная система: Microsoft Windows 7 Корпоративная.

Среда разработки: Borland C++ Builder 6.

Офисные пакеты: MS Office 2010.

Дополнительное ПО: Mozilla Firefox 12.0, Toad for Oracle 10.6.

2. Практическая часть

 

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


Требуется разработать программное средство, работающее с базой данных Oracle и оптимизирующее составление отчетов по базе данных, представляющей собой телефонный справочник с некоторой дополнительной информацией (должность, E-mail).

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

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

2.2 Предметная область


Основным объектом для работы является база данных на Oracle. Она имеет следующую структуру:


В базе данных имеется 6 сущностей:

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 для отслеживания соответствия результатов запросов в разрабатываемом продукте данным в БД.

Для успешного использования программы, на компьютере должны быть установлены: Microsoft Office любой версии начиная с 2003, операционная система Windows XP или Windows 7, а также настроен доступ к серверу, на котором хранится база данных.

Так как данный программный продукт разрабатывался только для составления отчетов, в нем не предусмотрено возможности добавлять, изменять или удалять данные, что позволяет поддерживать ссылочную целостность в БД.

При разработке использовались объекты стандартных классов Borland C++ Builder, таких как TForm, TButton, TEdit, TADOConnection, TADOQuery и другие.

Класс TADOConnection использован в силу того, что позволяет работать с базой без определения ее в BDE Administrator. То есть можно подключиться к серверу и работать с базой непосредственно на нем.

В программном продукте имеется четыре формы: форма авторизации, основная форма, форма отчетов и форма для справки.

Форма авторизации отвечает, соответственно, за авторизацию пользователя.

Основная форма является главной рабочей областью программного продукта.

Форма отчетов содержит только объект класса TQReport, на котором задается структура отчета.

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

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

Запрос для создания дерева предприятий и отделов не изменяется, поэтому он сразу прописан в свойстве SQL объекта класса TADOQuery. Запрос для отображения данных сотрудников должен меняться в зависимости от того, какой отдел выбран, но он тоже сразу прописан в свойстве SQL другого объекта класса TADOQuery, но при необходимости в нем меняются некоторые параметры.

 

.5 Описание интерфейса ПП


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

При создании главной формы сразу же выполняется запрос, необходимый для построения дерева, и отображается полученное дерево. Далее пользователю следует выбрать нужный ему отдел и нажать кнопку «Составить отчет». На форму будет выведен результат запроса в виде списка сотрудников с необходимыми данными и отделами, в которых они работают. На рис.2 приведен внешний вид программы с уже выполненным запросом для составления отчета.

Далее пользователь может выбрать: просмотреть отчет, нажав кнопку со значком лупы и распечатать его из открывшегося окна, выгрузить данные в Excel и продолжить работать с ними уже в нем или, если это не тот отдел, который был нужен (например, отдел с таким же названием, но на другом предприятии), заново выбрать отдел и составить отчет.

На рис.3 окно предварительного просмотра отчета.

На кнопку со знаком «?» открывается справка, в которой показано, за что отвечает каждая область главной формы.

3. Анализ результатов

информационный программный база данные

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

в целях защиты конфиденциальных данных при запуске запрашивается логин и пароль;

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

результат выполнения запроса выводится непосредственно в приложении для проверки, тот ли отдел выбран;

результат выполнения запроса можно вывести в форме отчета или выгрузить в Excel одним нажатием кнопки.

Использование данного программного продукта позволяет оптимизировать процесс составления отчетов по БД Oracle без требования от пользователя знания языка SQL, структуры БД, умения составления отчетов вручную (выбор необходимых полей, группировка и т.д.). Также благодаря этому приложению можно составлять телефонные справочники по отделам или всему предприятию в Excel и удобно с ними работать (форматировать, распространять, печатать).

- добавление возможности создания отчетов по другим БД (например график отпусков для отдела кадров);

преобразование разработанного программного продукта в полноценный продукт для работы с БД (добавление, изменение, удаление данных, создание новых таблиц, предоставление пользователю возможности самому выбирать необходимые поля для отображения в отчете);

- добавление возможности экспорта в другие приложения (например в Word);

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

Список используемой литературы

.        Е. Догадкин Введение в Oracle 9i: SQL. Руководство слушателя. Том 2. - М.: НОУ «УКЦ Форс», 2002. - 458 с.

.        Н. Культин C++ Builder в задачах и примерах. - СПб: «БХВ Петербург», 2005. - 328 с.

Приложения


Запросы

Запрос для создания дерева:

SELECT name as n, level, id FROM structureWITH parent_id = 10000000000BY PRIOR id = parent_id AND id != '90150000000'id != '92350000000' AND id != '90040000000'id != '90050000000' AND id != '90120000000'id != '92350000000' AND id != '90140000000'id != '94875102396' AND id != '90751300000'id != '90961580000' AND id != '90971590000'id != '91750000000' AND id != '91350000000'id != '91550000000' AND id != '91953900000'id != '91956500000' AND id != '92150000000'id != '92555700000' AND id != '92956100000'id != '90010000000' AND id != '90020000000'id != '90030000000'SIBLINGS BY ord, name

Данные выбираются из одной таблицы, в которой содержится информация об отделах и предприятиях. Таблица иерархическая (ссылается сама на себя) и данные можно представить в виде дерева. Но в таблице также содержится информация и о других предприятиях (например головной офис). Отображать необходимо только информацию о сотрудниках «Кольского» филиала, отсюда такое большое количество условий.

Запрос для составления отчета:distinct replace(f || ' ' || i || ' ' || o,'.','') fio, replace(job.name, '.','') job, job.rank as rank, mail, replace(tel,',',', ') tel, person.id_struct, person.id, b.name as name, b.rn as rn, replace(b.path, '/%/', '') path from personjoin

(SELECT id_person, wm_concat(tel) AS telperstelBY id_person) a on a.ID_PERSON = Person.idjoin persjob on PERSON.ID = PERSJOB.ID_PERSONjoin job on job.id = PERSJOB.ID_JOBjoin

(SELECT name, level, parent_id, id, rownum as rn, SYS_CONNECT_BY_PATH(name, '/') as PathstructureWITH parent_id = 10000000000BY PRIOR id = parent_id AND id != '90150000000'id != '92350000000' AND id != '90040000000'id != '90050000000' AND id != '90120000000'id != '92350000000' AND id != '90140000000'id != '94875102396' AND id != '90751300000'id != '90961580000' AND id != '90971590000'id != '91750000000' AND id != '91350000000'id != '91550000000' AND id != '91953900000'id != '91956500000' AND id != '92150000000'id != '92555700000' AND id != '92956100000'id != '90010000000' AND id != '90020000000'id != '90030000000'SIBLINGS BY ord, name) b on PERSON.ID_STRUCT = b.idjoin

(SELECT id_person, wm_concat(mail) AS mailpersmailBY id_person) c on c.ID_PERSON = person.idby rn, person.id_struct, rank, fio

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

Интерфейс

Рис.1 Окно авторизации

Рис.2 (Данные сотрудников закрашены по просьбе руководителя практики)

Рис.3 (Данные сотрудников закрашены по просьбе руководителя практики)

Листинг.__fastcall TInfo::ExcelRepClick(TObject *Sender)

{>Visible = false;->First(); //create Excel filei, count, pole;cur_value;oExcel, oWb, book, oSh, sheet, cell;=CreateOleObject("Excel.Application");=oExcel.OlePropertyGet("Workbooks");.OlePropertySet("SheetsInNewWorkbook",1);.OleProcedure("add");=oWb.OlePropertyGet("item",1);=oExcel.OlePropertyGet("Worksheets");=oSh.OlePropertyGet("item",1);.OlePropertySet("Name","Отчет");=1;max_length = 12;(count<=Path->Lines->Count) //write current department

{=sheet.OlePropertyGet("Cells").OlePropertyGet("Item",count,1);.OlePropertySet("Value",Path->Lines->Strings[count-1].c_str());.OlePropertyGet("Borders").OlePropertySet("LineStyle",1);++;

}= 1;max_count = ADOQuery3->RecordCount+Path->Lines->Count;buf_dept;(count<=Titles->Lines->Count) //write data about persons

{                                             //change style of Excel cells=sheet.OlePropertyGet("Cells").OlePropertyGet("Item",Path->Lines->Count+1,count);.OlePropertySet("Value",Titles->Lines->Strings[count-1].c_str());.OlePropertyGet("Borders").OlePropertySet("LineStyle",1);.OlePropertySet("ColumnWidth", 12);_dept ="";(i=Path->Lines->Count+1;i<=max_count;i++)

{(buf_dept != ADOQuery3->FieldByName("PATH")->AsString)

{(count == 1)

{                                    //create header_count ++;=sheet.OlePropertyGet("Cells").OlePropertyGet("Item",i+1,count);_dept = ADOQuery3->FieldByName("PATH")->AsString;.OlePropertySet("Value", buf_dept.c_str());.OlePropertyGet("Borders").OlePropertySet("LineStyle",1);;

} else {++;_dept = ADOQuery3->FieldByName("PATH")->AsString;

}

}                                                                         //insert data into cells=sheet.OlePropertyGet("Cells").OlePropertyGet("Item",i+1,count);.OlePropertyGet("Activate");_value=ADOQuery3->FieldByName(Fields->Lines->Strings[count-1])->AsString;.OlePropertySet("Value",cur_value.c_str());(max_length < cur_value.Length()+7)

{_length = cur_value.Length()+7;             //change width of cells

}.OlePropertyGet("Borders").OlePropertySet("LineStyle",1);.OlePropertySet("ColumnWidth", max_length);.OlePropertySet("HorizontalAlignment",2);_value="";->Next();

}++;_length = 12;->First();

}>Visible = true;.OlePropertySet("Visible",true);

}

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!