Автоматизированная система "Помощник библиотекаря"

Проектирование и реализация информационной системы учета изданий в библиотеке. Преимущества системы автоматизации процесса инвентаризации. Разработка проекта в методологии SADT. Диаграммы декомпозиции второго и третьего уровней. Возможности программы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 08.02.2011
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

4

Техническое задание

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

Разработать ИС, формирующую отчеты по информационным запросам:

1) Зав. отделом: Определить, сколько экземпляров изданий конкретного типа имеется в отделе всего и, в том числе контрольных. Результат вывести на экран и печатать.

2) Зав. Библиотекой: Сформировать отчет об экземплярах конкретного издания и их распределения в библиотеке по отделам. В таблице указать все инвентарные номера экземпляров и признак контрольного экземпляра. Подсчитать общее количество экземпляров данного издания. Оформить секторную диаграмму распределения экземпляров по отделам в количестве и в процентах от общего количества. Результаты представить в табличной и графической форме с выводом на экран и печать.

Введение

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

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

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

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

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

Программа обладает развитым графическим интерфейсом. С данной программой могут работать пользователи различной квалификации.

Приложение создано в инструментальной среде разработки приложений Delphi, реализующей современные подходы к программированию: объектно-ориентированный подход и визуальные средства быстрой разработки приложений. СУБД MS ACCESS.

В данной пояснительной записке описывается разработанная программа.

1. Разработка проекта системы в методологии SADT

1.1 Краткое описание методологии и инструментальных средств

программа библиотека автоматизация информационный

Инструментальная среда BPwin 4.1

BPWin 4.0 поддерживает три методологии: IDEF0, IDEF3, DFD.

Методология IDEF0 является наиболее удобным языком моделирования бизнес-процессов. В IDEF0 система представляется как совокупность взаимодействующих работ или функций. Такая чисто функциональная ориентация является принципиальной - функции системы анализируются независимо от объектов, которыми они оперируют. Это позволяет более четко смоделировать логику и взаимодействие процессов организации. Находясь под управлением, система преобразует входы в выходы, используя механизмы.

Диаграммы потоков данных (DFD) используются для описания документооборота и обработки информации. Подобно IDEF0, DFD представляет модельную систему как сеть связанных между собой работ. Их можно использовать как дополнение к модели IDEF0 для более наглядного отображения текущих операций документооборота в корпоративных системах обработки информации. В отличие от IDEF0, DFD рассматривает систему как совокупность предметов. Контекстная диаграмма часто включает работы и внешние ссылки.

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

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

Поскольку в разрабатываемой системе автоматизируется документооборот, то удобно использовать нотацию DFD. Нотация DFD включает такие понятия, как внешняя ссылка и хранилище данных, что делает ее более удобной (по сравнению с IDEF0) для моделирования документооборота.

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

На основе модели, построенной в BРWin, можно построить модель данных. Для построения модели данных используется удобный инструмент - ERWin (средство разработки структуры базы данных).

Инструментальная среда ERwin 4.1

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

При проектировании структуры новой базы данных определяют сущности (объекты, явления) предметной области, которые должны найти свое отражение в базе данных. Объект - это такая абстракция множества предметов реального мира, что все экземпляры этого объекта имеют одни и те же характеристики и подчиняются одним и тем же правилам поведения. Объекты обладают определенными свойствами - атрибутами. Атрибут - это абстракция одной характеристики объекта. Каждый атрибут имеет имя и может получать значения из некоторого множества допустимых значений. Как правило, каждому объекту в базе данных соответствует таблица, а его атрибутам - поля этой таблицы.

Erwin построение модели на логическом и физическом уровне. Логический уровень - это абстрактный взгляд на данные, на нем данные представляются так, как выглядят в реальном мире, и могут называться так, как они называются в реальном мире. Физический уровень модели данных зависит от конкретной СУБД, фактически являясь отображением системного каталога. В физическом уровне модели содержится информация обо всех объектах базы данных.

1.2 Контекстная диаграмма системы

Контекстная диаграмма - общее описание системы и ее взаимодействия с внешней средой. Управляющие, регламентирующие и нормативные данные входят в блок сверху. Исходные данные, запросы, документы, которые обрабатываются при выполнении данной функции, указываются с левой стороны. Результаты выполнения функции - с правой стороны. Механизм или исполнитель, осуществляющий операцию, отображается снизу. Для разрабатываемой системы: исходные данные -выходные данные - информация об изданиях, авторах, отделах; управляющие данные -правила работы библиотеки; механизмы - зав. отделом и зав. библиотекой.

Рис 2.1 - Контекстная диаграмма системы

1.3 Диаграммы декомпозиции второго и третьего уровней

После описания системы в целом проводится разбиение ее на крупные фрагменты. Этот процесс называется функциональной декомпозицией, а диаграммы, которые описывают каждый фрагмент и взаимодействие фрагментов, называются диаграммами декомпозиции. После декомпозиции контекстной диаграммы проводится декомпозиция каждого фрагмента системы на более мелкие и так далее, до достижения нужного уровня подробности описания. Блок «Библиографический отдел» распадается на 3 блока: «Учет изданий», «Формирование отчетов», «Построение диаграмм». В блоке «Учет изданий» обеспечивается ведение учета имеющихся в библиотеке изданий, блок «Формирование отчетов» - формирование отчетов для зав. отделом и зав. библиотекой. блок «Построение диаграмм» - построение диаграмм по распределению экземпляров изданий в бибилиотеке. отчетов для ректора ВУЗа и декана факультета.

Рис 1.2 -Диаграмма декомпозиции первого уровня

Рис 1.3 -Диаграмма декомпозиции второго уровня

1.4 Логическая и физическая схема базы данных

Логический уровень - это абстрактный взгляд на данные. Объекты модели, представляемые на логическом уровне, называются сущностями и атрибутами. Логический уровень модели данных может быть построен на основе другой модели, например на основе модели процессов. Логический уровень модели данных является универсальным и никак не связан с конкретной реализацией СУБД.

Рис. 1.4 - Логическая модель

Физический уровень модели данных, зависит от конкретной БД, фактически являясь отображением системного каталога. В физическом уровне модели содержится информация обо всех объектах базы данных, поскольку стандартов на объекты базы данных не существует, физический уровень модели зависит от конкретной реализации СУБД. Следовательно, одному и тому же логическому уровню модели могут соответствовать несколько разных физических уровней различных моделей. Если на логическом уровне модели не имеет большого значения, какой конкретно тип данных у атрибута (хотя и поддерживаются абстрактные типы данных), то на физическом уровне модели важно описать всю информацию о конкретных физических объектах - таблицах, колонках, индексах, процедурах и т. д.

Рис. 1.5 - Физическая модель

2. Реализация проекта информационной системы

2.1 Обоснование выбора среды реализации

В качестве среды разработки автоматизированной системы выбрана Delphi. Выбор этого программного продукта обусловлен следующим:

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

б) библиотека визуальных компонентов предоставляет огромное разнообразие созданных разработчиками Delphi программных заготовок, которые после несложной настройки готовы к работе в рамках создаваемого приложения. Использование компонентов не только во много раз уменьшает время создания программы, но и существенно снижает вероятность случайных программных ошибок;

в) мощность и гибкость языка программирования Object Pascal - достоинство Delphi, выгодно отличающее эту среду от других инструментов RAD. От языка Visual Basic язык Pascal отличает строгая типизированность, позволяющая ещё на этапе компиляции обнаружить многие ошибки;

г) среди прочих преимуществ Delphi можно выделить самую эффективную работу с базами данных. Это обусловливается тремя обстоятельствами: высоко производительной машиной для доступа к данным разного формата (ADO, ODBC), наличием многочисленных компонентов, ориентированных на работу в этой сфере;

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

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

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

Microsoft Access - один из компонентов семейства офисных приложений Microsoft Office - является одной из самых популярных СУБД. Данный программный продукт предоставляет пользователю широкие возможности для ввода, обработки и представления данных. Эти средства являются не только удобными, но и высокопродуктивными, что обеспечивает высокую скорость разработки приложений. Изначально система управления базами данных Access обладала рядом возможностей:

- объединение информации из самых разных источников (электронных таблиц, текстовых файлов, других баз данных);

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

- интеграция с другими компонентами Microsoft Office.

Совершенствуясь от версии к версии, система Access стала инструментом, который способен выполнять требования различных категорий пользователей: от новичков до профессиональных разработчиков.

Microsoft Access относится к реляционным СУБД. Реляционная база данных представляет собой совокупность связанных между собой определенными отношениями таблиц, предназначенных для хранения данных. Отношения между таблицами являются существенной частью этой модели данных. В Access под базой данных подразумевают более широкое понятие - приложение, которое основано на реляционной базе данных и имеет интерфейс, позволяющий работать с хранящимися в ней данными.

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

В реляционной модели очень важным является понятие связи между таблицами. Связь - это логическое отношение между объектами, представленными таблицами. Связь между записями двух таблиц основана обычно на совпадении значений атрибутов, по которым эта связь устанавливается. Когда одной записи таблицы соответствует несколько записей другой таблицы, такая связь называется «один-ко-многим». При этом первую таблицу принято называть главной, а вторую - подчиненной. Если каждой записи в одной таблице соответствует только одна запись в другой таблице. То такая связь называется «один-к-одному», она встречается в практике реже. По аналогии можно определить еще один тип связи - «многие-ко-многим».

Любая СУБД позволяет выполнять следующие простейшие операции с данными:

· добавить в таблицу одну или несколько записей;

· удалить из таблицы одну или несколько записей;

· обновить значения некоторых полей в одной или нескольких записях;

· найти одну или несколько записей, удовлетворяющих заданному условию.

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

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

В данной курсовой работе для написания информационной ВУЗА, использовалась именно СУБД Access по причине удобства хранения данных, доступа к ним, возможности хранения и обработки разнородной информации о большом количестве объектов.

2.2 Описание программных модулей

2.2.1 Описание структуры таблиц

Для решения задачи необходимо создать 7 таблиц, структура которых приведена ниже.

Таблица 2.1 - Автор

Название поля

Тип данных

Примечание

АвторID

Счетчик

Первичный ключ. Обеспечивает уникальность записи

ФИО автора

Текст(50)

ФИО автора

Примечание

Текст(150)

Дополнительная информация

Таблица 2.2 - АИ

Название поля

Тип данных

Примечание

АИID

Счетчик

Первичный ключ. Обеспечивает уникальность записи

IDИздания

Числовой

Внешний ключ

IDАвтора

Числовой

Внешний ключ

Таблица 2.3 - Издание

Название поля

Тип данных

Примечание

ИзданиеID

Счетчик

Первичный ключ. Обеспечивает уникальность записи

Название

Текст(50)

Название издания

Место издания

Текст(30)

Место издания

IDИздательства

Числовой

Внешний ключ

Год издания

Числовой

Год издания

IDТипа

Числовой

Внешний ключ

Примечание

Текст(150)

Дополнительная информация

Таблица 2.4 - Тип

Название поля

Тип данных

Примечание

ТипID

Счетчик

Первичный ключ. Обеспечивает уникальность записи

Тип

Текст(50)

Тип издания

Примечание

Текст(150)

Дополнительная информация

Таблица 2.5 - Издательство

Название поля

Тип данных

Примечание

ИздательствоID

Счетчик

Первичный ключ. Обеспечивает уникальность записи

Издательство

Текст(50)

Название издательства

Примечание

Текст(150)

Дополнительная информация

Таблица 2.6 - Экземпляр

Название поля

Тип данных

Примечание

ЭкзID

Счетчик

Первичный ключ. Обеспечивает уникальность записи

Инвентарный номер

Текст(20)

Инвентарный номер экземпляра

Контрольный экземпляр

Логический

Признак ценности экземпляра

ОтделID

Числовой

Внешний ключ

Наличие

Логический

Признак наличия экземпляра

Примечание

Текст(150)

Дополнительная информация

Таблица 2.7 - Отдел

Название поля

Тип данных

Примечание

ОтделID

Счетчик

Первичный ключ. Обеспечивает уникальность записи

Отдел

Текст(50)

Название издательства

Примечание

Текст(150)

Дополнительная информация

При определении структуры таблиц задается список полей (имена которых выбирает проектировщик), устанавливается их тип, длина, а также определяется первичный ключ.

Логическая связь между таблицами отображена на рис. 2.1 в виде ЕR-модели.

ЕR-модель или модель «сущность-связь» является наиболее распространенным средством моделирования данных. С ее помощью определяются важные для предметной области объекты (сущности), их свойства (атрибуты) и отношения друг с другом. Очень важным свойством модели «сущность-связь» является возможность ее представления в виде графической схемы, что значительно облегчает анализ.

Рис. 2.1 - Схема данных (ER-модель)

2.3 Руководство пользователя

Данная информационная система предназначена для работников библиотеки для хранения информации об имеющихся изданиях.

В программе реализованы следующие функции:

· добавление информации об изданиях, а именно: название, тип, издательство, место издания, год издания, примечание

· удаление выбранной записи;

· редактирование информации, содержащейся в базе данных;

· хранение информации об изданиях в базе данных.

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

Для эффективной работы программы необходимы следующие технические средства: IBM/PC совместимые компьютеры, имеющие следующие технические характеристики:

· операционная система - Windows 2000/2003/XP;

· процессор - Pentium не ниже III или аналогичные 1.70GHz;

· 128 Mb оперативной памяти;

· жесткий диск - не меньше 1 Gb;

· мышь;

· клавиатура;

· принтер.

2.3.1 Подготовка к работе

Программа будет распространяться на CD-дисках или дискетах, на лицевой стороне которых должно быть написано название программы, ее производитель. Дистрибутив содержит резервную копию базы данных, файл с данными о рабочей группе, исходный файл базы данных. Этот дистрибутив необходимо будет скопировать на жесткий диск компьютера, на котором будет использоваться база данных. Для начала работы с программой необходимо запустить исходный файл базы данных, который называется BIBLIO (исполняемый файл приложения - EXE).

2.3.2 Описание операций

Разработанная система позволяет осуществить следующие действия:

· добавление информации об изданиях, а именно: название, тип, издательство, место издания, год издания, примечание

· удаление выбранной записи;

· редактирование информации, содержащейся в базе данных;

· хранение информации об изданиях в базе данных.

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

· Формирование диаграмм о распределении имеющихся экземпляров изданий по отделам библиотеки.

2.3.3 Аварийные ситуации

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

2.4 Описание контрольного примера и результатов испытаний

При запуске программы на экране появляется форма, в которой необходимо ввести имя пользователя и пароль (Рис. 2.2):

Рис. 2.2- Форма «Справочник библиотекаря»

Для работы со справочной информацией об издательствах необходимо нажать на кнопку «Издательства». Появляется следующая форма (Рис. 2.3):

Рис. 2.3- Форма «Справочник издательств»

Для работы со справочной информацией о типах изданий необходимо нажать на кнопку «Типы изданий». Появляется следующая форма (Рис. 2.4):

Рис. 2.4- Форма «Типы изданий»

Для работы со справочной информацией об авторах необходимо нажать на кнопку «Авторы». Появляется следующая форма (Рис. 2.5):

Рис. 2.5- Форма «Справочник авторов»

Для работы со справочной информацией об отделах необходимо нажать на кнопку «Отделы». Появляется следующая форма (Рис. 2.6):

Рис. 2.6- Форма «Справочник отделов»

Для просмотра отчета по распределению экземпляров изданий заданного типа по отделам библиотеки необходимо нажать кнопку «Распределение экземпляров заданного типа издания по отделам». При этом появляется форма, на которой из выпадающего списка необходимо выбрать тип издания и нажать кнопку просмотр отчета (Рис. 2.7):

Рис. 2.7- Форма «Издания по типу»

При этом на экране появится отчет в форме MS EXCEL. Внешний вид данного отчета представлен на рисунке 2.8.

Рис. 2.8- Отчет «Издания по выбранному типу»

Для просмотра отчета по распределению экземпляров заданного издания по отделам библиотеки необходимо нажать кнопку «Распределение экземпляров заданного издания по отделам». При этом появляется форма, на которой из выпадающего списка необходимо выбрать наименование издания и нажать кнопку просмотр отчета (Рис. 2.9):

Рис. 2.9- Форма «Информация о распределении экземпляров издания»

При этом на экране появится отчет в форме MS EXCEL. Внешний вид данного отчета представлен на рисунке 2.10.

Рис. 2.10- Отчет «Издания по выбранному типу»

Для просмотра диаграммы по распределению экземпляров изданий по отделам библиотеки необходимо нажать кнопку «Распределение экземпляров по отделам (Диаграммы)». При этом появляется форма, на которой изображена диаграмма (Рис. 2.11):

Рис. 2.11- Форма «Диаграмма распределения экземпляров изданий по отделам»

Заключение

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

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

· освобождению работников от рутинной работы за счет ее автоматизации;

· обеспечению достоверности информации;

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

· наглядный контроль за учетом изданий в библиотеке

Библиографический список

1. Вендров А.М. Проектирование программного обеспечения экономических информационных систем. -- М.: Финансы и статистика, 2003. - 352 с.

2. Смирнова Г.Н. Проектирование экономических информационных систем /Г.Е. Смирнова, А.А. Сорокин, 3.Ф. Тельнов. - М. : Финансы и статистика, 2001. -512 с.

3. Маклаков С.В. BPwin и ЕRwin. CASE-средства разработки информационных систем. - М.: ДИАЛОГ-МИФИ, 1999. - 256 с.

Приложение А

Программный модуль UnBibl

unit UnBibl;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ToolWin, ActnMan, ActnCtrls, ActnMenus, ExtCtrls, StdCtrls,

Buttons, ActnList, Grids, DBGrids, DBCtrls, DB, dbcgrids, Mask;

type

TFmBiblio = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

ActionMainMenuBar1: TActionMainMenuBar;

Panel4: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

ActionManager1: TActionManager;

ActPubl: TAction;

Panel5: TPanel;

Panel6: TPanel;

Panel7: TPanel;

Panel8: TPanel;

Panel9: TPanel;

DBNavigator1: TDBNavigator;

DBGrid1: TDBGrid;

SpeedButton1: TSpeedButton;

DBNavigator2: TDBNavigator;

DBGrid2: TDBGrid;

Edit1: TEdit;

Label1: TLabel;

Panel10: TPanel;

Panel11: TPanel;

DBNavigator3: TDBNavigator;

Panel12: TPanel;

DBGrid3: TDBGrid;

Edit2: TEdit;

Label2: TLabel;

BitBtn5: TBitBtn;

BitBtn6: TBitBtn;

BitBtn7: TBitBtn;

Action1: TAction;

Action2: TAction;

Action3: TAction;

Action4: TAction;

procedure ActPublExecute(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure Edit2Change(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

procedure BitBtn6Click(Sender: TObject);

procedure BitBtn7Click(Sender: TObject);

procedure Action1Execute(Sender: TObject);

procedure Action2Execute(Sender: TObject);

procedure Action3Execute(Sender: TObject);

procedure Action4Execute(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FmBiblio: TFmBiblio;

implementation

uses UnDM, UnPublisher, UnType, UnAuthor, UnDep, UnShowType, UnShowCopy, UnDiagr;

{$R *.dfm}

procedure TFmBiblio.ActPublExecute(Sender: TObject);

begin

FmPublisher.ShowModal; //Показать форму "Издательства"

end;

procedure TFmBiblio.BitBtn2Click(Sender: TObject);

begin

FmType.ShowModal; ////Показать форму "Типы"

end;

rocedure TFmBiblio.BitBtn3Click(Sender: TObject);

begin

FmAuthor.ShowModal; //Показать форму "Авторы"

end;

procedure TFmBiblio.BitBtn4Click(Sender: TObject);

begin

FmDep.ShowModal; //Показать форму "Отделы"

end;

procedure TFmBiblio.SpeedButton1Click(Sender: TObject);

begin

If SpeedButton1.Down then Panel7.Visible := true //Отображение/скрытие панели в зависимости от того нажата ли кнопка

else Panel7.Visible := false;

end;

procedure TFmBiblio.Edit1Change(Sender: TObject);

begin

DM.TbEdition.Locate('Название',Edit1.Text,[loCaseInsensitive,loPartialKey]);

Поиск по полю "Название"

end;

procedure TFmBiblio.Edit2Change(Sender: TObject);

begin

DM.TbCopy.Locate('Инвентарный номер',Edit2.Text,[loCaseInsensitive,loPartialKey]);

//Поиск по полю "Инвентарный номер"

end;

procedure TFmBiblio.BitBtn5Click(Sender: TObject);

begin

FmShowType.ShowModal; //Показать форму "Отчет по типам"

end;

procedure TFmBiblio.BitBtn6Click(Sender: TObject);

begin

FmShowCopy.ShowModal; //Показать форму "Отчет по экземплярам"

end;

procedure TFmBiblio.BitBtn7Click(Sender: TObject);

var i : integer;

begin

FmDiagr.DBChart1.Series[0].Clear;//УДаляем все имеющиеся диаграммы

FmDiagr.DBChart1.Title.Text.Clear; //Очищаем заголовок

FmDiagr.DBChart1.Title.Text.Add('Распределение экземпляров по отделам в количестве'); //Добавляем новый заголовок

DM.QDiagr.First;

for i := 0 to DM.QDiagr.RecordCount -1 do //Перебор всех записей в цикле

begin

FmDiagr.DBChart1.Series[0].Add(DM.QDiagr.FieldByName('Count-ЭкзID').Value, DM.QDiagr.FieldByName('Отдел').AsString, clRed);

//Добавление отдела и числа экземпляров в отделе

DM.QDiagr.Next;

end;

FmDiagr.ShowModal;

end;

procedure TFmBiblio.Action1Execute(Sender: TObject);

begin

FmType.ShowModal; //Показать форму "Типы"

end;

procedure TFmBiblio.Action2Execute(Sender: TObject);

begin

FmAuthor.ShowModal; //Показать форму "Авторы"

end;

procedure TFmBiblio.Action3Execute(Sender: TObject);

begin

FmDep.ShowModal; //Показать форму "Отделы"

end;

procedure TFmBiblio.Action4Execute(Sender: TObject);

begin

Close; //Закрыть форму

end;

end.

Программный модуль UnAuthor

unit UnAuthor;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Form,

Dialogs, Grids, DBGrids, StdCtrls, Buttons, DBCtrls, ExtCtrls, DB;

type

TFmAuthor = class(TForm)

Panel1: TPanel;

Label1: TLabel;

DBNavigator1: TDBNavigator;

Edit1: TEdit;

BitBtn1: TBitBtn;

DBGrid1: TDBGrid;

procedure Edit1Change(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FmAuthor: TFmAuthor;

implementation

uses UnDM;

{$R *.dfm}

procedure TFmAuthor.Edit1Change(Sender: TObject);

begin

DM.TbAuthor.Locate('ФИО автора',Edit1.Text,[loCaseInsensitive,loPartialKey]);

//Поиск по полю "ФИО автора"

end;

procedure TFmAuthor.BitBtn1Click(Sender: TObject);

begin

close;

end;

end.

Программный модуль UnType

unit UnType;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, DBGrids, StdCtrls, Buttons, DBCtrls, ExtCtrls, DB;

type

TFmType = class(TForm)

Panel1: TPanel;

Label1: TLabel;

DBNavigator1: TDBNavigator;

Edit1: TEdit;

BitBtn1: TBitBtn;

DBGrid1: TDBGrid;

procedure Edit1Change(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FmType: TFmType;

implementation

uses UnDM;

{$R *.dfm}

procedure TFmType.Edit1Change(Sender: TObject);

begin

DM.TbType.Locate('Тип',Edit1.Text,[loCaseInsensitive,loPartialKey]);

//Поиск по столбцу "тип"

end;

procedure TFmType.BitBtn1Click(Sender: TObject);

begin

close;

end;

end.

Программный модуль UnDM

unit UnDM;

interface

uses

SysUtils, Classes, DB, ADODB;

type

TDM = class(TDataModule)

ADOC: TADOConnection;

TbPublisher: TADOTable;

TbPublisherID: TAutoIncField;

TbPublisherDSDesigner: TWideStringField;

TbPublisherDSDesigner2: TWideStringField;

DSPublisher: TDataSource;

TbType: TADOTable;

TbTypeID: TAutoIncField;

TbTypeDSDesigner: TWideStringField;

TbTypeDSDesigner2: TWideStringField;

DSType: TDataSource;

DSAuthor: TDataSource;

TbAuthor: TADOTable;

TbAuthorID: TAutoIncField;

TbAuthorDSDesigner: TWideStringField;

TbAuthorDSDesigner2: TWideStringField;

TbDep: TADOTable;

DSDep: TDataSource;

TbDepID: TAutoIncField;

TbDepDSDesigner: TWideStringField;

TbDepDSDesigner2: TWideStringField;

TbEdition: TADOTable;

DSEdition: TDataSource;

TbEditionID: TAutoIncField;

TbEditionDSDesigner: TWideStringField;

TbEditionDSDesigner2: TWideStringField;

TbEditionID2: TIntegerField;

TbEditionDSDesigner3: TIntegerField;

TbEditionID3: TIntegerField;

TbEditionDSDesigner4: TWideStringField;

TbEditionField: TStringField;

TbEditionField2: TStringField;

DSCopy: TDataSource;

TbCopy: TADOTable;

TbCopyID: TAutoIncField;

TbCopyDSDesigner: TWideStringField;

TbCopyDSDesigner2: TBooleanField;

TbCopyID2: TIntegerField;

TbCopyID3: TIntegerField;

TbCopyDSDesigner3: TBooleanField;

TbCopyDSDesigner4: TWideStringField;

TbCopyField: TStringField;

TbAE: TADOTable;

DSAE: TDataSource;

TbAEID: TAutoIncField;

TbAEID2: TIntegerField;

TbAEID3: TIntegerField;

TbAEField: TStringField;

QShowType: TADOQuery;

QShowTypedep: TWideStringField;

QShowTypeID: TAutoIncField;

QShowTypeCountID1: TIntegerField;

QShowTypeCountID: TIntegerField;

QShowEdition: TADOQuery;

QDiagr: TADOQuery;

QDiagrDSDesigner: TWideStringField;

QDiagrCountID: TIntegerField;

procedure TbCopyDSDesigner2GetText(Sender: TField; var Text: String;

DisplayText: Boolean);

procedure TbCopyDSDesigner2SetText(Sender: TField; const Text: String);

procedure TbCopyDSDesigner3GetText(Sender: TField; var Text: String;

DisplayText: Boolean);

procedure TbCopyDSDesigner3SetText(Sender: TField; const Text: String);

private

{ Private declarations }

public

{ Public declarations }

end;

var

DM: TDM;

implementation

{$R *.dfm}

procedure TDM.TbCopyDSDesigner2GetText(Sender: TField; var Text: String;

DisplayText: Boolean);

begin

If Sender.AsBoolean then text:='+' //Если значение = true, тогда отображаем + иначе -

else text:='-';

end;

procedure TDM.TbCopyDSDesigner2SetText(Sender: TField; const Text: String);

begin

Sender.Value:=(Text = '+'); //Если вводится +, то значение = true

end;

procedure TDM.TbCopyDSDesigner3GetText(Sender: TField; var Text: String;

DisplayText: Boolean);

begin

If Sender.AsBoolean then text:='+' //Если значение = true, тогда отображаем + иначе -

else text:='-';

end;

procedure TDM.TbCopyDSDesigner3SetText(Sender: TField; const Text: String);

begin

Sender.Value:=(Text = '+'); //Если вводится +, то значение = true

end;

end.

Программный модуль UnShowType

unit UnShowType;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DBCtrls, StdCtrls, Buttons, ComObj;

type

TFmShowType = class(TForm)

DBLookupComboBox1: TDBLookupComboBox;

Label1: TLabel;

BitBtn1: TBitBtn;

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FmShowType: TFmShowType;

implementation

uses UnDM;

{$R *.dfm}

procedure TFmShowType.BitBtn1Click(Sender: TObject);

var Excel: Variant;

WorkbookName: string;

i, PosInc: Integer;

sum,sum1 : integer;

begin

DM.QShowType.Active := false;

DM.QShowType.Parameters[0].Value := DBLookupComboBox1.KeyValue; //Задание параметра - издание

DM.QShowType.Parameters[1].Value := DBLookupComboBox1.KeyValue; //Задание параметра - издание

//Задаем параметры для запроса

DM.QShowType.Active := true;

WorkbookName := GetCurrentDir + '\dep.xlt'; //Задаем путь к шаблону докуиента Excel

Excel := CreateOleObject('Excel.Application'); //Создаем объект Excel

try

Excel.Workbooks.Open(WorkbookName);//Открываем книгу

//Экспорт данных из таблиц БД:

Excel.WorkSheets[1].Select;//Делаем текущим первый лист

DM.QShowType.First;

PosInc := 4; //Начальная позиция

sum := 0;

sum1 := 0;

//Ввод значений в соответствующие ячейки

Excel.Cells[1,4] := DBLookupComboBox1.Text;

for i:=0 to DM.QShowType.RecordCount-1 do

begin

if i <> DM.QShowType.RecordCount-1 then

begin

Excel.Rows.Item[PosInc+1].Select;//выделяем текущую строку +1

Excel.Selection.Insert;//вставка строки

Excel.Rows.Item[PosInc].Select;//выделяем текущую строку

Excel.Selection.Copy;//Копируем текущую строку

Excel.Rows.Item[PosInc+1].Select;//Выделяем текущую строку +1

Excel.ActiveSheet.Paste;//Вставляем в выделенную строку скопированные значения

Excel.Application.CutCopyMode := False;//Выключаем режим копирования

end;

//Ввод значений в соответствующие ячейки

Excel.Cells[PosInc,1] := DM.QShowType.FieldByName('dep.Отдел').AsString;

Excel.Cells[PosInc,2] := IntToStr(DM.QShowType.FieldByName('Count-ИзданиеID1').AsInteger);

Excel.Cells[PosInc,3] := FloatToStr(DM.QShowType.FieldByName('Count-ИзданиеID').AsInteger);

PosInc := PosInc +1;

sum := sum + DM.QShowType.FieldByName('Count-ИзданиеID1').AsInteger;

sum1 := sum1 + DM.QShowType.FieldByName('Count-ИзданиеID').AsInteger;

DM.QShowType.Next;

end; //for

Excel.Cells[PosInc,2] := IntToStr(sum);

Excel.Cells[PosInc,3] := IntToStr(sum1);

Excel.WorkSheets[1].Select;

Excel.Visible := True;

except

Excel.Quit; //Завершение работы с объектом

end;

end;

end.

Программный модуль UnShowCopy

unit UnShowCopy;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DBCtrls, StdCtrls, Buttons, ComObj;

type

TFmShowCopy = class(TForm)

DBLookupComboBox1: TDBLookupComboBox;

Label1: TLabel;

BitBtn1: TBitBtn;

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FmShowCopy: TFmShowCopy;

implementation

uses UnDM;

{$R *.dfm}

procedure TFmShowCopy.BitBtn1Click(Sender: TObject);

var Excel: Variant;

WorkbookName: string;

i, PosInc: Integer;

sum : integer;

begin

DM.QShowEdition.Active := false;

DM.QShowEdition.Parameters[0].Value := DBLookupComboBox1.KeyValue; //Задание параметра - тип издания

//Задаем параметры для запроса

DM.QShowEdition.Active := true;

WorkbookName := GetCurrentDir + '\copy.xlt'; //Задаем путь к шаблону докуиента Excel

Excel := CreateOleObject('Excel.Application'); //Создаем объект Excel

try

Excel.Workbooks.Open(WorkbookName); //Открываем книгу

//Экспорт данных из таблиц БД:

Excel.WorkSheets[1].Select; //Делаем текущим первый лист

DM.QShowEdition.First;

PosInc := 5; //Начальная позиция

sum := 0;

//Ввод значений в соответствующие ячейки

Excel.Cells[1,2] := DBLookupComboBox1.Text;

Excel.Cells[2,2] := DM.QShowEdition.FieldByName('Год издания').AsString;

for i:=0 to DM.QShowEdition.RecordCount-1 do

begin

if i <> 0 then

begin

Excel.Rows.Item[PosInc+1].Select; //выделяем текущую строку +1

Excel.Selection.Insert; //вставка строки

Excel.Rows.Item[PosInc].Select; //выделяем текущую строку

Excel.Selection.Copy; //Копируем текущую строку

Excel.Rows.Item[PosInc+1].Select; //Выделяем текущую строку +1

Excel.ActiveSheet.Paste; //Вставляем в выделенную строку скопированные значения

Excel.Application.CutCopyMode := False; //Выключаем режим копирования

end;

//Ввод значений в соответствующие ячейки

Excel.Cells[PosInc,1] := DM.QShowEdition.FieldByName('Инвентарный номер').AsString;

Excel.Cells[PosInc,2] := DM.QShowEdition.FieldByName('Отдел').AsString;

if DM.QShowEdition.FieldByName('Контрольный экземпляр').AsBoolean = true then Excel.Cells[PosInc,3] := '+'

else Excel.Cells[PosInc,3] := '-';

if DM.QShowEdition.FieldByName('Наличие').AsBoolean = true then Excel.Cells[PosInc,4] := '+'

else Excel.Cells[PosInc,4] := '-';

sum := sum + 1; //Вычисляем общее количество

DM.QShowEdition.Next;

end; //for

Excel.Cells[1,4] := IntToStr(sum); //Выводим количество изданий

Excel.WorkSheets[1].Select;

Excel.Visible := True;

except

Excel.Quit;

end;

end;

end.

Программный модуль UnDiagr

unit UnDiagr;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, TeeProcs, TeEngine, Chart, DbChart, Series, StdCtrls;

type

TFmDiagr = class(TForm)

DBChart1: TDBChart;

Panel1: TPanel;

Series1: TPieSeries;

RadioGroup1: TRadioGroup;

procedure RadioGroup1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FmDiagr: TFmDiagr;

implementation

uses UnDM, DB;

{$R *.dfm}

procedure TFmDiagr.RadioGroup1Click(Sender: TObject);

var i, sum : integer;

begin

FmDiagr.DBChart1.Series[0].Clear; //Удаляем все имеющиеся диаграммы

FmDiagr.DBChart1.Title.Text.Clear;//Очищаем название

Case RadioGroup1.ItemIndex of

0 : begin //В количестве

FmDiagr.DBChart1.Title.Text.Add('Распределение экземпляров по отделам в количестве'); //Задаем название

DM.QDiagr.First;

for i := 0 to DM.QDiagr.RecordCount -1 do //Перебор всех записей в цикле

begin

FmDiagr.DBChart1.Series[0].Add(DM.QDiagr.FieldByName('Count-ЭкзID').Value, DM.QDiagr.FieldByName('Отдел').AsString, clRed);

//Выводим отдел и количество экземпляров

DM.QDiagr.Next;

end;

end;

1 : begin //В процентах

FmDiagr.DBChart1.Title.Text.Add('Распределение экземпляров по отделам в процентах');//Задаем название

DM.QDiagr.First;

sum := 0;

for i := 0 to DM.QDiagr.RecordCount -1 do //Перебор всех записей в цикле

begin

sum := sum + DM.QDiagr.FieldByName('Count-ЭкзID').AsInteger; //Формирование общего количества

DM.QDiagr.Next;

end;

DM.QDiagr.First;

for i := 0 to DM.QDiagr.RecordCount -1 do //Перебор всех записей в цикле

begin

FmDiagr.DBChart1.Series[0].Add(DM.QDiagr.FieldByName('Count-ЭкзID').Value/sum * 100, DM.QDiagr.FieldByName('Отдел').AsString, clRed);

//Вывод распределения экземпляров по отделам в процентах

DM.QDiagr.Next;

end;

end;

end;

end;

end.

Программный модуль UnPublisher

unit UnPublisher;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, DBGrids, StdCtrls, DBCtrls, ExtCtrls,DB, Buttons;

type

TFmPublisher = class(TForm)

Panel1: TPanel;

DBNavigator1: TDBNavigator;

Edit1: TEdit;

Label1: TLabel;

DBGrid1: TDBGrid;

BitBtn1: TBitBtn;

procedure Edit1Change(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FmPublisher: TFmPublisher;

implementation

uses UnDM;

{$R *.dfm}

procedure TFmPublisher.Edit1Change(Sender: TObject);

begin

DM.TbPublisher.Locate('Издательство',Edit1.Text,[loCaseInsensitive,loPartialKey]);

//Поиск по полю "Издательство"

end;

procedure TFmPublisher.BitBtn1Click(Sender: TObject);

begin

Close; //Закрыть форму

end;

end.

Размещено на Allbest.ru


Подобные документы

  • Формы и системы оплаты труда, их классификация. Декомпозиция производственного процесса по методологии IDEF0. Создание контекстной диаграммы для функциональной модели. Проектирование диаграммы декомпозиции для производственного процесса хранения цемента.

    курсовая работа [615,6 K], добавлен 21.01.2017

  • Изучение теории управления образовательными учреждениями и ВУЗами. Проектирование, реализация и внедрение автоматизированной информационной системы для автоматизации кафедры ВУЗа. Описание разработанной системы, расчет экономической эффективности проекта.

    дипломная работа [4,5 M], добавлен 09.03.2010

  • Разработка информационной системы для анализа, хранения и обработки информации необходимой для автоматизации учета в автомобильном салоне "Aurore Auto" с помощью технологий Rational Rose, PHP и MySQL. Реализация и экономическая эффективность проекта.

    дипломная работа [2,2 M], добавлен 20.05.2011

  • История возникновения стандарта IDEF0. Особенности процесса и концепции методологии функционального моделирования SADT, ее структура и применение. Пример практической разработки модели информационной системы "Управления федерального казначейства".

    курсовая работа [731,5 K], добавлен 09.10.2012

  • Тестирование информационной системы учета протоколов несоответствия учебно-тренировочного подразделения АЭС. Формирование функциональных возможностей информационной системы. Построение структурно-функциональной модели по стандарту IDEF0, методологии SADT.

    дипломная работа [1,1 M], добавлен 11.03.2012

  • Разработка информационной системы для ведения каталога книг/читателей, поисковой системы, предварительных заказов на приобретение книг. Анализ затрат на разработку системы. Архитектура объектно-ориентированной системы. Диаграмма классов, модули системы.

    курсовая работа [906,1 K], добавлен 24.06.2013

  • Разработка и реализация проекта информационной системы, предназначенной для хранения сведения о клиентах и недвижимости. Моделирование и реализация информационной системы. Разработка пользовательского интерфейса. Затраты на написание программы и отладку.

    курсовая работа [1,0 M], добавлен 30.06.2022

  • Выбор методологии проектирования и разработка информационной системы "Расчёт зарплаты" для предприятия ОАО РТП "Авторемонтник". Архитектурное проектирование базы данных информационной системы и разработка её интерфейса. Тестирование программного модуля.

    дипломная работа [2,3 M], добавлен 25.05.2014

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

    курсовая работа [3,0 M], добавлен 28.06.2011

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

    курсовая работа [920,8 K], добавлен 11.11.2022

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.