Разработка пользовательского интерфейса АИС "Будущий абитуриент" - Дипломная работа

бесплатно 0
4.5 121
Основание для разработки автоматизированной информационной системы "Будущий абитуриент". Технические требования к программному изделию. Порядок контроля и приемки продукта. Рассмотрение исходной базы данных. Описание интерфейса программного обеспечения.


Аннотация к работе
Данная карточка будет содержать ID этого абитуриента в базе, с помощью которого возможно ускорить процесс поиска информации о нем в базе данных «Абитуриент». Таблица персональных данных «будущего» абитуриента включает в себя следующие атрибуты: персональные данные «будущего» абитуриента, информацию о его образовании, месте жительства и интересах, информацию о том кем он был зарегистрирован и на каком мероприятии. Таблица для хранения информации о сообщении включает в себя: тему текст сообщения, вложения, ссылки на «будущих» студентов, которым отправлено сообщение, ссылка на пользователя, который создал сообщение. Логическая часть - сообщение - состоит из двух таблиц: FST_MESSAGE (параметры сообщения), FST_L_PERSDATA_MESSAGE (таблица-связка сообщения с адресатами). Это фамилия, имя, отчество, пол, требуется ли общежитие, ссылка на мероприятие, ссылка на учебное заведение, адрес учебного заведения, название учебного заведения, ссылка на форму оплаты, email, домашний телефон, мобильный телефон, дата регистрации, ссылка на пользователя, ссылка на источник, от которого абитуриент узнал об Университете, дата рождения, интересы.Так как пользователи (операторы) в процессе работы значительное время будут проводить за ПЭВМ то актуально выбрать предметом исследования, для обеспечения безопасных и экологических условий труда пользователей, вредные факторы воздействия ПЭВМ на человека. Корпус ПЭВМ, клавиатура и другие блоки и устройства ПЭВМ должны иметь матовую поверхность одного цвета с коэффициентом отражения 0,4 - 0,6 и не иметь блестящих деталей, способных создавать блики. Помещения для ПЭВМ, в том числе помещения для работы с дисплеями, размещать в подвалах не допускается. После проведения анализа данной планировки помещения и размещение оборудования сделан вывод, что помещение используется нерационально и размещение оборудования не соответствует нормативным требованиям. Примем значение числа человек, одновременно работающих в помещении равным 3: Получим удельную площадь кабинета Пуд = 4,5 на одного человека.В результате дипломного проектирования было разработано программное обеспечение АИС «Будущий абитуриент».Программа предназначена для автоматизации работы с будущими абитуриентами, которые посещают мероприятия по ознакомлению с Московским государственным открытым университетом и процессом обучения в нем. В систему автоматизации входит регистрация будущего абитуриента в системе, формирование «Карточки абитуриента», создание и отправка сообщений зарегистрированным по электронной почте. После успешной авторизации открывается с полным набором вкладок: Файл-> Авторизация-> Выход; Абитуриент-> Регистрация-> Просмотр; Почта-> Отправить сообщение-> Просмотреть сообщения; Классификаторы->Источник. Если нажать на кнопку Создать сообщение, то откроется форма создания сообщения с установленной галочкой напротив выбранного абитуриента. По вкладке Просмотреть сообщения открывается форма просмотра сообщений, которая содержит две сводных таблицы и текстовых поля, хранящие информацию по выбранному из первой таблицы сообщению.

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

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

Необходимым условием гибкой системы персонализации является достоверность информации. В университетской базе данных хранится информация о студенте, которую во время приемной комиссии вносит центральная приемная комиссия (ЦПК) Московского государственного открытого университета (Университет) о тогда еще абитуриенте. Студент учится и не вспоминает о тех данных, которые он предоставил во время приема. Эти данные чаще всего изменяются: меняется паспорт по достижению 20 лет, меняется фамилия после замужества, очень часто беспричинно изменяются контактные номера и почтовые адреса, в том числе email. В результате факультеты работают с неактуальной информацией. Есть много способов этого избежать. Наиболее эффективный способ - создать ситуацию в которой студент будет знать какой информацией о нем владеет Университет. Для этой цели необходима «Карточка абитуриента».

В рамках данного дипломного проекта будут разработаны пользовательский интерфейс АИС «Будущий абитуриент» и «Карточка абитуриента» для хранения на бумажном носителе. Абитуриента в данном случае стоит назвать будущим или возможным.

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

Исходя из необходимости разработки гибкой системы персонализации, принято решение разработать вторую версию программы регистрации АИС«Будущий абитуриент» на основе имеющейся базы данных с внесением в нее необходимых изменений. Изменить общую концепцию регистрации и отправки сообщений.

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

1.1 Наименование программного изделия

Автоматизированная информационная система «Будущий абитуриент»

1.2 Основание для разработки

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

1.3 Назначение и цель

1.3.1 Назначение

Назначением данного дипломного проекта является разработка пользовательского интерфейса АИС «Будущий абитуриент», с возможностью получения ID будущего абитуриента и вывода его на печать.

1.3.2 Цель разработки

Целью работы является автоматизация работы с будущими абитуриентами, которые посещают мероприятия по ознакомлению с Московским государственным открытым университетом и процессом обучения в нем посредством системы регистрации будущих абитуриентов. В отличие от существующего приложения, система должна создавать «карточку будущего абитуриента», которая выдается ему на руки. Данная карточка будет содержать ID этого абитуриента в базе, с помощью которого возможно ускорить процесс поиска информации о нем в базе данных «Абитуриент».

1.4 Технические требования к программе или программному изделию

1.4.1 Требования к функциональным характеристикам

Разработанная система должна выполнять следующие функции: Технические: · Хранение истории сообщений.

· Отправка сообщений.

· Генерация ID.

· Хранение информации о зарегистрированных будущих абитуриентах.

· Формирование отчетов с использованием FASTREPORT.

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

· Предоставление информации об отправке сообщений.

· Предоставление пользователю возможности работы с компонентами в режиме исполнения.

1.4.2 Требования по надежности

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

1.4.3 Требования к условиям эксплуатации

Требования к условиям эксплуатации данного программного продукта соответствуют требованиям, предъявляемым к условиям эксплуатации персонального компьютера: работа должна проводиться в нормальных климатических условиях - в помещениях с температурой окружающей среды от 10 до 35?С, и относительной влажностью от 20 до 80%.

1.4.4 Требования к аппаратным средствам

Состав аппаратных средств и их основные характеристики: · Не менее 1Gb RAM

· ПО - Microsoft Office 2003 и выше.

1.4.5 Требования к документации

К программному изделию должны прилагаться следующие документы: · Техническое описание.

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

1.4.6 Требования к безопасности

Аппаратные средства должны быть заземлены в соответствии с инструкцией по эксплуатации ПК.

1.5 Безопасность при эксплуатации ПЭВМ

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

Необходимо произвести следующие расчеты: · По безопасности труда: расчет освещенности вычислительного центра.

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

1.6 Стадии и этапы разработки

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

Техническое предложение.

Эскизное проектирование.

Техническое проектирование.

Рабочая документация.

1.7 Порядок контроля и приемки

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

2. Рассмотрение исходной базы данных

Исходная база данных состоит из 22 таблиц, 21 процедуры, 20 триггеров, 8 генераторов. Структура данных описывает точку зрения пользователя на представление данных о «будущих» абитуриентах. Под «будущими» абитуриентами будем понимать учащихся средних образовательных учреждений или студентов высших учебных заведений, которые в будущем планируют соответственно поступить в высшие учебные заведения или получить еще одно высшее профессиональнее образование.

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

· FST_MAILLOGIN - характеристики адреса электронной почты.

· FST_MESSAGE - информация о сообщение.

· FST_PERS_DATA - информация о «будущем» абитуриенте.

Таблицы-классификаторы: · FST_FROM - откуда узнал о Московском Государственном Открытом Университете (МГОУ)

· STU_KL_FACULTY - хранит наименования факультетов.

· STU_KL_SPECIALIZATION - информация о специальностях МГОУ.

· X_EDUCATION - образование, полученное или получаемое «будущим» абитуриентом.

· X_SOURCE - источник (мероприятие, на котором был зарегистрирован «будущий» абитуриент.

· STU_KL_PAY_FORM - форма оплаты.

Таблица-связка: · FST_FPROF - связывает «будущего» абитуриента со специальностью. Дает возможность выбора нескольких специальностей.

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

В настоящее время ЦПК работает с первой версией АИС «Будущий абитуриент», которая зарекомендовала себя как программное обеспечение, отвечающее всем поставленным требованиям. Но изза изменений в системе образования, описанной выше, сотрудники деканатов Университета предложили изменить перечень вводимой информации при регистрации «будущих» абитуриентов и разработать отчет для зарегистрированного - «Карточка абитуриента».

Вторая версия программы АИС «Будущий абитуриент» должна уменьшить время, затраченное на регистрацию. Содержать модель для работы с отчетами, в том числе для формирования «Карточки абитуриента».

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

Необходимость разработки заключается в оптимизации кода с помощью использования представлений базы данных FIREBIRD.

Необходимые эксплуатационные свойства разработки: 1. Регистрация «будущих» абитуриентов.

2. Просмотр зарегистрированных.

3. Отправка сообщений.

4. Формирование «Карточки абитуриента».

Исходная база данных - база данных FIREBIRD. Ниже представлены характеристики данной системы управления базами данных (СУБД).

СУБД Firebird - компактная, кроссплатформенная, свободная система управления базами данных, база Firebird, работающая на GNU/Linux, Microsoft Windows и разнообразных Unix платформах.

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

Основные характеристики Firebird: - Соответствие требованиям ACID: Firebird сделан специально, чтобы удовлетворять требованиям «атомарности, целостности, изоляции и надежности» транзакций («Atomicity, Consistency, Isolation and Durability»).

- Версионная архитектура: Основная особенность Firebird - версионная архитектура, позволяющая серверу обрабатывать различные версии одной и той же записи в любое время (firebird time) таким образом, что каждая транзакция видит свою версию данных, не мешая соседним («читающие транзакции не блокируют пишущие, а пишущие не блокируют читающих»). Это позволяет использовать одновременно OLTP и OLAP запросы. информационный абитуриент база данные

- Хранимые процедуры: Используя язык PSQL (процедурный язык SQL ) Firebird, возможно создавать сложные хранимые процедуры для обработки данных полностью на стороне сервера. Для генерации отчетов особенно удобны хранимые процедуры с возможностью выборки, возвращающие данные в виде набора записей. Такие процедуры можно использовать в запросах точно так же как и обычные таблицы.

- События: Хранимые процедуры и триггеры могут генерировать события, на которые может подписаться клиент. После успешного завершения транзакции (COMMIT) он будет извещен о произошедших событиях и их количестве.

- Генераторы: Идея генераторов (последовательностей) делает возможной простую реализацию автоинкрементных полей, и не только их. Генераторы являются 64-битными хранимыми в базе данных счетчиками, работающими независимо от транзакций. Они могут быть использованы для различных целей, таких как генерация первичных ключей, управление длительными запросами в соседних транзакциях, и т. д.

- Базы данных только для чтения: позволяют распространять базы данных , к примеру, на CD-ROM.

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

- Резервное копирование на лету: Для резервного копирования нет надобности останавливать сервер. Процесс резервного копирования сохраняет состояние базы данных на момент своего старта, не мешая при этом работе с базой.

- Триггеры: Для каждой таблицы возможно назначение нескольких триггеров, срабатывающих до или после вставки, обновления или удаления записей. Для триггеров используется язык PSQL, позволяя вносить начальные значения, проверять целостность данных, вызывать исключения, и т. д. В Firebird 1.5 появились «универсальные» триггеры, позволяющие в одном триггере обрабатывать вставки, обновления и удаления записей таблицы.

- Наборы символов: Firebird поддерживает множество международных наборов символов (включая Unicode) с множеством вариантов сортировки.

Средства доступа к серверу. Firebird поддерживает множество способов доступа, включая: собственные наборы компонент для C/C , Delphi, классы для Ada, Firebird ODBC, JDBC (Jaybird), драйверы для Python, PHP, драйвер OLE DB, DBEXPRESS, провайдер данных .NET и прямой доступ с использованием клиентской библиотеки сервера (fbclient.dll или GDS32.dll).

3. Выбор языка и среды разработки

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

К языку программирования выдвигаются следующие требования: - наличие компонент для работы с СУБД FIREBIRD 2.1;

- поддержка объектно-ориентированного стиля программирования;

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

- использование визуальных компонент для наглядного проектирования интерфейса.

Перечисленными свойствами обладают следующие средства программирования: Delphi, Visual C , Borland С Builder, Qt и другие.

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

Visual C обычно используется при разработке приложений, предназначенных для работы с ОС Windows, использующих основные свойства ОС, а так же выполняющих большое количество вычислений.

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

Borland С Biulder по своим недостаткам аналогичен Visual C , но обладает еще одним - разработка баз данных на базе языка SQL и их поддержка ограничена.

Qt дает возможность создания платформо-независимых приложений для работы с базами данных, используя стандартные СУБД. Qt включает «родные» драйвера для Oracle, Microsoft SQL Server, Sybase Adaptive Server, IBM DB2, POSTGRESQL, MYSQL и ODBC-совместимых баз данных. Qt включает специфичные для баз данных виджеты, а также поддерживает расширение для работы с базами данных любых встроенных или отдельно написанных виджетов. Большое количество используемых классов на многие случаи жизни, у Qt полностью объектно-ориентированная библиотека. Одним из недостатков данного средства разработки приложений является то, что Qt Creator для Windows занимает большой объем памяти - порядка 200 мегабайт. В Qt-opensoucre под Windows компилятор только mingw и исполняемые файлы занимают от 5.5 метров.

Среди большого разнообразия продуктов для разработки приложений Delphi занимает одно из ведущих мест. Delphi 7 - мощная система визуального объектно - ориентированного проектирования, обладающая комбинацией нескольких важнейших технологий: - высокопроизводительный компилятор в машинный код;

- объектно-ориентированная модель компонент;

- визуальное построение приложений из программных прототипов;

- масштабируемые средства для построения баз данных.

Интегрированная среда разработки приложений Delphi 7 позволяет создавать, компилировать, тестировать и редактировать проект или группу проектов в единой среде программирования. Базируется на расширении языка Pascal-Object Pascal.

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

3.1 Выбор компонентной базы для доступа к СУБД FIREBIRD 2.1

Широкое распространение Interbase и его клонов по всему миру и использование в самых различных ипостасях привело к тому, чтобы было создано множество библиотек доступа к INTERBASE/FIREBIRD, ориентированных на самые различные среды программирования.

Наиболее популярные из них: IBPROVIDER, INTERBASE Express (IBX), Devrace FIBPLUS.

IBPROVIDER (OLE DB for INTERBASE) - большой выбор средств разработки, универсальных с точки зрения языка программирования. IBPROVIDER предоставляет мощный объектно-ориентированный низкоуровневый клиентский API для работы с INTERBASE. Встраиваясь в приложения баз данных, OLE DB-провайдер способен взять на себя всю работу по организации взаимодействия с сервером базы данных. OLE DB является общепризнанным промышленным стандартом доступа к данным, что позволяет легко разворачивать и управлять приложениями, разработанными с использованием IBPROVIDER.

Достоинствами компонентов IBPROVIDER являются: - возможность работы со всей линейкой СУБД INTERBASE, начиная с версии 4.х и заканчивая клонами INTERBASE 6 - FIREBIRD и Yaffil. Минимальным условием работы является наличие на компьютере клиента динамической библиотеки gds32.dll от INTERBASE 4;

- поддержка всех типов данных INTERBASE;

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

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

- полная поддержка синтаксиса SQL, параметризованных запросов;

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

INTERBASE Express (IBX) - набор компонент для Delphi и C Builder, позволяющий работать с серверами INTERBASE. Продукт основан на коде FREEIBCOMPONENTS и входит в стандартную поставку Borlabd Delphi/C Builder Enterprise Edition.

К особенностям IBX можно отнести: - явное управление транзакциями;

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

- поддержка встроенных и сторонних генераторов отчета;

- использование генераторов для значений ключевых полей.

Devrace FIBPLUS - библиотека гибких высокопроизводительных компонентов для Borland Delphi 5-7, C Builder 5-6, Kylix 3, предназначенных для работы с INTERBASE и FIREBIRD с использованием прямого INTERBASE API. FIBPLUS объединяет в себе простую архитектуры с удобством разработки, что позволяет создавать мощные и эффективные приложения.

Преимущества FIBPLUS: - поддержка всех версий INTERBASE, начиная с INTERDASE 4.0 и FIREBIRD 1.0;

- совместимость со всеми стандартными и сторонними визуальными db-компонентами и генераторами отчетов;

- полный контроль транзакций;

- улучшенная производительность в сравнении с аналогами. В частности TPFIBDATASET работает на 30-40% быстрее TIBDATASET в IBX, использует на 60-70% меньше памяти;

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

При использовании Delphi 7 можно было бы использовать встроенные компоненты IBX, но серьезным недостатком является вопрос последующей совместимости с СУБД FIREBIRD. Хотя сегодня многие все еще успешно используют IBX вместе с FIREBIRD, вполне возможно, что в будущем все изменится. IBX не тестируется с FIREBIRD и Borland не планирует поддерживать совместимость с будущими версиями FIREBIRD, т.к. разработчики FIREBIRD и INTERBASE развивают продукты в разных направлениях.

Функциональность IBPROVIDER и FIBPLUS аналогична, но стоимость первого продукта намного выше другого.

Для работы с базой данных FIREBIRD 2.1 логично использовать Devrace FIBPLUS - библиотеку-компонент, обладающую полной совместимостью с Delphi 3-7 и FIREBIRD всех версий.

Компоненты FIBPLUS представлены на двух закладках палитры компонентов. В таблице 1 перечислены все компоненты на закладке FIBPLUS. На закладке нет компонентов для миграции с BDE. Нет компонентов со свойствами и методами аналогичными Table или Query. Вместо этого FIBPLUS предоставляет только два компонента для доступа к данным - PFIBDATASET и PFIBQUERY, оба основанные на работе с SQL.

В таблице 2 перечислены компоненты на закладке FIBPLUS Services. Эти компоненты предоставляют доступ к Services API, появившемся в INTERBASE 6. Используя эти компоненты вы фактически можете реализовывать все функции, которые представлены в утилитах командной строки INTERBASE и Firebird.

Таблица 1. Компоненты на закладке FIBPLUS

Компонент Описание

PFIBDATABASE Подключение к базе данных

PFIBDATASET dataset в базе данных.

PFIBTRANSACTION Транзакция.

PFIBQUERY Облегченный компонент для выполнения SQL.

PFIBSTOREDPROC Вызов неселективных хранимых процедур.

PFIBUPDATEOBJECT Позволяет вам выполнять серии дополнительных SQL-команд при вставке, изменении и удалении записи в PFIBDATASET.

DATASETSCONTAINER Централизует обработку событий dataset. PFIBERRORHANDLER Централизует обработку ошибок.

PFIBSTATISTIC Собирает статистику о выполнении запросов в рамках приложения.

SIBFIBEVENTALERTER Принимает событие с сервера INTERBASE.

FIBSQLMONITOR Показывает команды SQL-команды, выполненные приложениями.

Таблица 2. Компоненты на закладке FIBPLUS Services

Компонент Описание

PFIBSERVERPROPERTIES Возвращает информацию о конфигурации сервера. PFIBCONFIGSERVICE Возвращает наборы параметров сервера, включая sweep-интервал, режим работы базы данных, размер страницы и режим доступа. Позволяет отключать и перезапускать базу данных и тень (shadow). PFIBLICENSINGSERVICE Вводит сертификаты лицензий и ключи. PFIBLOGSERVICE Читает лог-файл сервера.

PFIBSTATISTICALSERVICE Показывает статистику базы данных, включая OIT, OAT, и следующую транзакцию. PFIBBACKUPSERVICE Делает резервную копию базы данных .

PFIBRESTORESERVICE Восстанавливает базу данных из резервной копии. PFIBVALIDATIONSERVICE Проверяет или восстанавливает поврежденную базу данных. PFIBSECURITYSERVICE Добавляет, удаляет и модифицирует пользователей. PFIBINSTALL Устанавливает INTERBASE или Firebird.

PFIBUNINSTALL Удаляет INTERBASE или Firebird.

FIBPLUS - это прекрасный выбор, если предстоит работать с INTERBASE и/или Firebird. Компоненты позволяют легко использовать все свойства обеих СУБД в ваших приложениях. FIBPLUS делает использование полей-массивов простым делом, рассматривая их как массивы вариантов. Макросы упрощают модификацию SQL-команд в коде. А возможность сортировки результата запроса в памяти без переоткрытия запроса дают вам гибкость в просмотре данных с минимальным сетевым трафиком и загрузкой сервера. FIBPLUS делает разработку приложений для INTERBASE и Firebird проще, чем когда либо.

FIBPLUS - набор нативных компонентов Delphi, C Builder и Kylix, которые представляют доступ ко всем возможностям INTERBASE и Firebird. Компоненты FIBPLUS используют непосредственные вызовы API для получения максимальной производительности, а PFIBDATASET является потомком стандартного класса TDATASET для совместимости со стандартными и сторонними визуальными компонентами Delphi, C Builder и Kylix.

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

Для решения поставленной задачи на дипломное проектирование выбрана среда программирования Delphi 7 с установленной библиотекой компонент FIBPLUS.

4. Структура базы данных

База данных логически разделена на части: · Пользователь

· Сообщение

· Абитуриент

Пользовательская часть состоит из двух таблиц: SYS$USERS (персональные данные пользователя), FST_MAILLOGIN (параметры авторизации на почте). Пользователями разрабатываемой системы могут быть сотрудники ЦПК, которые занимаются работой по проведению мероприятий, направленных на ознакомление с МГОУ, для возможных абитуриентов. Информация о пользователе системы необходима для разграничения доступа к приложению, ведения статистики, например, когда и кем были зарегистрированы возможные абитуриенты. А также для реализации функционала отправки сообщения зарегистрированным абитуриентам.

Логическая часть - сообщение - состоит из двух таблиц: FST_MESSAGE (параметры сообщения), FST_L_PERSDATA_MESSAGE (таблица-связка сообщения с адресатами). Эти таблицы хранят информацию об отправленных сообщениях и информацию о том кому они были отправлены.

Абитуриентская часть состоит из 8 таблиц, назначение которых можно разделить на 3 уровня по временной шкале их заполнения на форме во время регистрации: 1. Мероприятие, во время которого происходит регистрация;

2. Данные по возможному абитуриенту;

3. Интересы регистрируемого.

Первый уровень включает в себя следующие таблицы: X_SOURCE (мероприятие). Второй уровень: FST_PERS_DATA (персональные данные возможного абитуриента), FST_FROM (параметры источника), X_EDUCATION (учебное заведение). Уровень интересов включает в себя следующие таблицы: STU_KL_SPECIALIZATION (специальность), STU_KL_FACULTY (факультет), FST_FPROF (таблица-связка абитуриента со специальностью и факультетом) STU_KL_PAY_FORM (Форма оплаты). Данные таблицы хранят информацию об интересах возможного абитуриента, например, на какой факультет и специальность он хотел бы поступить и какая форма оплаты для него приемлема.

В следующих подпунктах более подробно рассмотрена структура каждой таблицы.

4.1 Таблица персональных данных пользователя

Таблица хранит данные о пользователе, сохраненные в базе данных. Это имя пользователя (логин), полное имя пользователя, пароль пользователя для входа в систему. Перечень и тип атрибутов с их описанием отражены в таблице 3.

Таблица 3. Таблица персональных данных пользователя.

Имя атрибута Тип Описание

ID_USER Число Уникальный идентификатор пользователя

NAME_USER Строка Имя пользователя

FULL_NAME Строка Полное имя пользователя

PASSWORD_NAME Строка Пароль

4.2 Таблица параметров авторизации пользователя на почтовом сервере

Таблица хранит данные о параметрах авторизации пользователей на почте. Это адрес почтового сервера, имя пользователя на почтовом сервере, имя учетной записи, порт сервера SMTP, ссылка на пользователя, пароль на почтовом сервере. Перечень и тип атрибутов с их описанием отражены в таблице 4.

Таблица 4. Таблица параметров авторизации.

Имя атрибута Тип Описание

ID Число Уникальный идентификатор

AUTHENTICATIONTYPE Число Тип авторизации

HOST Строка Адрес почтового сервера

USERNAME Строка Имя пользователя на почтовом сервере

MAILLOGIN Строка Имя учетной записи

PORT Число Порт сервера SMTP

USER_ID Число Уникальный идентификатор пользователя

PASS Строка Пароль на почтовом сервере

4.3 Таблица параметров сообщения

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

Таблица 5. Таблица параметров сообщения.

Имя АТРИБУТАТИПОПИСАНИЕ

ID Число Уникальный идентификатор

THEME Строка Тема сообщения

TEXT Строка Текст сообщения

ENCLOSURE Строка Вложения

USER_ID Число Ссылка на пользователя

DATE_CREATE Дата Дата создания

4.4 Таблица-связка сообщения с адресатами

Таблица-связка хранит ссылки на сообщение и возможного абитуриента. А также дату отправки сообщения. Перечень и тип атрибутов с их описанием отражены в таблице 6.

Таблица 6. Таблица-связка сообщения с адресатами.

Имя АТРИБУТАТИПОПИСАНИЕ

PERS_DATA_ID Число Ссылка на возможного абитуриента

MESSAGE_ID Число Ссылка на сообщение

DATE_SEND Дата Дата отправки сообщения

4.5 Таблица, хранящая информацию по мероприятиям

Таблица хранит информацию о проводимых мероприятиях. Это название мероприятия, дата создания. Перечень и тип атрибутов с их описанием отражены в таблице 7.

Таблица 7. Таблица, хранящая информацию по мероприятиям.

Имя АТРИБУТАТИПОПИСАНИЕ

ID Число Уникальный идентификатор

SOURCE Строка Название мероприятия

DATE_CREATE Дата Дата создания

4.6 Таблица персональных данных возможного абитуриента

Таблица хранит информацию о персональных данных возможного абитуриента. Это фамилия, имя, отчество, пол, требуется ли общежитие, ссылка на мероприятие, ссылка на учебное заведение, адрес учебного заведения, название учебного заведения, ссылка на форму оплаты, email, домашний телефон, мобильный телефон, дата регистрации, ссылка на пользователя, ссылка на источник, от которого абитуриент узнал об Университете, дата рождения, интересы. Перечень и тип атрибутов с их описанием отражены в таблице 8.

Таблица 8. Таблица персональных данных возможного абитуриента.

Имя АТРИБУТАТИПОПИСАНИЕ

ID Число Уникальный идентификатор

SURNAME Строка Фамилия

NAME Строка Имя

SECOND_NAME Строка Отчество

SEX Число Пол

HOSTEL Число Требуется ли общежитие

SOURCE_ID Число Ссылка на мероприятие

EDUCATION_ID Число Ссылка на учебное заведение

EDUCATION_LIVING Строка Адрес учебного заведения

PAY_FORM_ID Число Ссылка на форму оплаты

EMAIL Строка Email

HOME_PHONE Строка Домашний телефон

MOBILE_PHONE Строка Мобильный телефон

DATE_REG Дата Дата регистрации

NAME_EDUCATION Строка Название учебного заведения

USER_ADD Число Ссылка на пользователя

FROM_ID Число Ссылка на источник

BERTHDAY Дата День рождения

DIRECTING Число Направленность

REPEAT Число Повторное посещение

4.7 Таблица параметров источника

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

Таблица 9. Таблица персональных данных возможного абитуриента.

Имя АТРИБУТАТИПОПИСАНИЕ

ID Число Уникальный идентификатор

GFROM Строка Источник

SYS$DATE Строка Дата создания

SYS$USERS_ID Строка Ссылка на пользователя

4.8 Таблица по учебным заведениям

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

Таблица 10. Таблица по учебным заведениям

Имя АТРИБУТАТИПОПИСАНИЕ

ID Число Уникальный идентификатор

EDUCATION Строка Название учебного заведения

4.9 Таблица со списком факультетов

Таблица хранит список факультетов Университета. Перечень и тип атрибутов с их описанием отражены в таблице 11.

Таблица 11. Таблица со списком факультетов

Имя АТРИБУТАТИПОПИСАНИЕ

ID Число Уникальный идентификатор

NAME Строка Название факультета

4.10 Таблица со списком специальностей

Таблица хранит список специальностей Университета. Это название специальности и ссылка на факультет этой специальности. Перечень и тип атрибутов с их описанием отражены в таблице 12.

Таблица 12. Таблица со списком специальностей

Имя АТРИБУТАТИПОПИСАНИЕ

ID Число Уникальный идентификатор

FACULT_ID Число Ссылка на факультет

NAME Строка Название специальности

CODE Строка Код специальности

4.11 Таблица-связка абитуриента со специальностью и факультетом

Таблица-связка хранит ссылки на абитуриента, специальность и факультет. Эта таблица хранит информацию об интересах возможного абитуриента. Перечень и тип атрибутов с их описанием отражены в таблице 13.

Таблица 13. Таблица-связка

Имя АТРИБУТАТИПОПИСАНИЕ

SPEC_ID Число Ссылка на специальность

FST_PD_ID Число Ссылка на абитуриента

FACULT_ID Число Ссылка на факультет

ID Число Уникальный идентификатор

4.12 Таблица со списком возможных форм оплаты

Таблица хранит список возможных форм оплаты за обучение в Университете. Перечень и тип атрибутов с их описанием отражены в таблице 14.

Таблица 14. Таблица со списком возможных форм оплаты

Имя АТРИБУТАТИПОПИСАНИЕ

ID Число Уникальный идентификатор

DESCRIPTION Строка Форма оплаты

Связь таблицы с другими таблицами отражена на рисунке 1.

Рис.1 Структура базы данных

5. Архитектура программного обеспечения

Программное обеспечение автоматизированной информационной системы «Будущий абитуриент» построено по двух уровневой архитектуре, показанной на рисунке 2. На верхнем уровне располагается клиентское приложение, на нижнем - сервер базы данных под управлением FIREBIRD 2.1.

Взаимодействие между уровнями происходит следующим образом: · Клиент отправляет запрос на сервер БД;

· База данных обрабатывает запрос и отправляет результат клиенту.

Запрос и ответ обрабатываются компонентами FIBPLUS и DATACCESS клиентского приложения. Данные отображаются на форме следующими компонентами: EXPRESSEDITORS6, EXPRESSDBEDITORS6, DEVEXPRESS, Dialogs, EXPRESSBARS, EXPRESSUTILITIES, EXPRESSEDITORS, INDYCLIENTS, Standart, Win32.

Рис.2 Архитектура ПО

6. Структура программного обеспечения

По виду предоставляемой информации пользователю программное обеспечение разделено на шесть модулей (таблица 15).

Таблица 15. Список модулей программного обеспечения

Модуль Описание

Vabit Модуль регистрации. Предоставляет пользователю поля для заполнения данных о возможном абитуриенте.

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

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

FABITSETSOURCE Модуль регистрации мероприятия. Предоставляет возможность зарегистрировать новое мероприятие, либо выбрать из списка.

UPOST Модуль формирования и отправки сообщения. Предоставляет поля для заполнения параметров сообщения, список зарегистрированных с email-адресами. Отправка сообщений выбранным адресатам.

U_Post_V Модуль просмотра сообщений. Предоставляет сводные таблицы по отправленным сообщениям

MAINFORM Модуль навигации. Дает возможность переключаться между основными модулями.

Модули могут работать независимо друг от друга. Для удобства отдельные модули связаны между собой навигацией.

По функциональным возможностям модули разложены на подсистемы: · Подсистема администрирования;

· Подсистема просмотра данных;

· Подсистема редактирования данных;

· Подсистема работы с сообщениями.

6.1 Подсистема администрирования

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

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

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

Блок-схема алгоритма авторизации представлена на рисунке 3.

Рис.3 Блок-схема алгоритма авторизации

6.2 Подсистема просмотра данных

Подсистема просмотра данных обеспечивает визуализацию запрашиваемой пользователем информации из БД. Подсистема состоит из набора компонент расположенных на форме (таблица компонент).

Таблица компонент.

Название компонент Описание

SQL - отчеты Табличные отчеты. Содержат информацию из таблицы БД.

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

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

Вывод
В результате дипломного проектирования было разработано программное обеспечение АИС «Будущий абитуриент». Программное обеспечение отвечает требованиям, предъявленным в техническом задании. На данный момент программное обеспечение интегрировано в программный комплекс Информатизация МГОУ и используется в работе ЦПК.

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

Список литературы
1. Путилин А.Б., Юрагов Е.А. Компонентное моделирование и программирование на языке UML. Практическое руководство по проектированию информационных систем. - М. НТ Пресс 2005 г.

2. Путилин А.Б., Юрагов Е.А. Дипломное проектирование. Методическое пособие по подготовке выпускной квалификационной работы по направлению 654600 «Информатика и вычислительная техника», специальность 230105 «Программное обеспечение вычислительной техники и автоматизированных систем». - М. изд. МГОУ 2010 г.

3. Хелен Борри, INTERBASE и Firebird. Практическое руководство для умных пользователей и начинающих разработчиков. - BHV, 2007 г.

4. Хелен Борри, FIREBIRD: руководство разработчика баз данных. - BHV, 2007

5. Эрик Хармон. Руководство разработчика баз данных в Delphi/Kylix. - Вильямс, 2002 г.

Приложение 1.

Листинг

{Модуль регистрации} unit Vabit;

interface uses

Windows, Messages, SYSUTILS, Variants, Classes, Graphics, Controls, Forms, Dialogs, SDIEVENT, CXGRAPHICS, CXLOOKANDFEELS, CXLOOKANDFEELPAINTERS, Menus, STDCTRLS, CXBUTTONS, CXCONTROLS, CXCONTAINER, CXEDIT, DXCNTNER, DXEXEDTR, DXEDLIB, DXDBELIB, CXGROUPBOX, CXPC, CXSTYLES, CXCUSTOMDATA, CXFILTER, CXDATA, CXDATASTORAGE, DB, CXDBDATA, CXGRIDLEVEL, CXCLASSES, CXGRIDCUSTOMVIEW, CXGRIDCUSTOMTABLEVIEW, CXGRIDTABLEVIEW, CXGRIDDBTABLEVIEW, CXGRID, CXRADIOGROUP, CXDBEDIT, CXTEXTEDIT, CXMASKEDIT, CXDROPDOWNEDIT, CXLOOKUPEDIT, CXDBLOOKUPEDIT, CXDBLOOKUPCOMBOBOX, CXCALENDAR, FIBDATASET, PFIBDATASET, DMMAIN, CXCHECKBOX, CXIMAGECOMBOBOX, Grids, DBGRIDS, FRXCLASS, FRXDBSET, FRXFIBCOMPONENTS;

type

TFVABIT = class(TFORM)

CXB_Print_ID: TCXBUTTON;

CXGROUPBOX1: TCXGROUPBOX;

CXB_Registr: TCXBUTTON;

CXB_Ok_Commit: TCXBUTTON;

CXB_Cancel: TCXBUTTON;

CXGROUPBOX2: TCXGROUPBOX;

Label2: TLABEL;

CXPC_Vbr: TCXPAGECONTROL;

CXTABSHEET1: TCXTABSHEET;

CXTABSHEET2: TCXTABSHEET;

CXGRID1DBTABLEVIEW1: TCXGRIDDBTABLEVIEW;

CXGRID1Level1: TCXGRIDLEVEL;

CXGRID1: TCXGRID;

Label1: TLABEL;

CXGRID2DBTABLEVIEW1: TCXGRIDDBTABLEVIEW;

CXGRID2Level1: TCXGRIDLEVEL;

CXGRID2: TCXGRID;

CXGROUPBOX3: TCXGROUPBOX;

CXGROUPBOX4: TCXGROUPBOX;

Label3: TLABEL;

Label4: TLABEL;

Label5: TLABEL;

CXDBME_HP: TCXDBMASKEDIT;

CXDBME_MP: TCXDBMASKEDIT;

CXDBME_Mail: TCXDBMASKEDIT;

Label6: TLABEL;

Label7: TLABEL;

Label8: TLABEL;

CXDBLCB_NAMEEDUC: TCXDBLOOKUPCOMBOBOX;

CXDBLOOKUPCOMBOBOX3: TCXDBLOOKUPCOMBOBOX;

CXGROUPBOX5: TCXGROUPBOX;

CXGROUPBOX6: TCXGROUPBOX;

CXDBDE_BD: TCXDBDATEEDIT;

CXDBRG_Sex: TCXDBRADIOGROUP;

CXGROUPBOX7: TCXGROUPBOX;

CXDBLCB_From: TCXDBLOOKUPCOMBOBOX;

CXDBRG_Hostel: TCXDBRADIOGROUP;

Label9: TLABEL;

Label10: TLABEL;

Label11: TLABEL;

CXME_ID_Abit: TCXMASKEDIT;

PFIBDS_All: TPFIBDATASET;

DS_All: TDATASOURCE;

CXDBTEXTEDIT1: TCXDBTEXTEDIT;

CXDBTEXTEDIT2: TCXDBTEXTEDIT;

CXDBTEXTEDIT3: TCXDBTEXTEDIT;

PFIBDS_From: TPFIBDATASET;

DS_From: TDATASOURCE;

CXDBIMAGECB_EDUCID: TCXDBIMAGECOMBOBOX;

PFIBDS_NAMEEDUC: TPFIBDATASET;

DS_NAMEEDUC: TDATASOURCE;

PFIBDS_LIVINGEDUC: TPFIBDATASET;

DS_LIVINGEDUC: TDATASOURCE;

PFIBDS_PAYFORM: TPFIBDATASET;

DS_PAYFORM: TDATASOURCE;

CXDBLCB_Pay: TCXDBLOOKUPCOMBOBOX;

CXDBRADIOGROUP1: TCXDBRADIOGROUP;

PFIBDS_Fakul: TPFIBDATASET;

PFIBDS_Spec: TPFIBDATASET;

DS_Fakul: TDATASOURCE;

CXGRID1DBTABLEVIEW1NAME: TCXGRIDDBCOLUMN;

DS_Spec: TDATASOURCE;

CXGRID2DBTABLEVIEW1NAME: TCXGRIDDBCOLUMN;

CXGRID1DBTABLEVIEW1Column1: TCXGRIDDBCOLUMN;

CXGRID2DBTABLEVIEW1Column1: TCXGRIDDBCOLUMN;

FRXREPORT_Pirnt: TFRXREPORT;

FRXDBDATASET1: TFRXDBDATASET;

FRXFIBCOMPONENTS1: TFRXFIBCOMPONENTS;

procedure FORMCLOSE(Sender: TOBJECT; var Action: TCLOSEACTION);

procedure FORMDESTROY(Sender: TOBJECT);

procedure CXB_REGISTRCLICK(Sender: TOBJECT);

procedure CXB_Ok_COMMITCLICK(Sender: TOBJECT);

procedure FORMCREATE(Sender: TOBJECT);

procedure CXB_CANCELCLICK(Sender: TOBJECT);

procedure CXME_ID_ABITKEYUP(Sender: TOBJECT; var Key: Word;

Shift: TSHIFTSTATE);

procedure CXB_Print_IDCLICK(Sender: TOBJECT);

private

{ Private declarations } public

{ Public declarations } end;

var

Fvabit: TFVABIT;

implementation

{$R *.dfm}

{Обрабатываем закрытие формы} procedure TFVABIT.FORMCLOSE(Sender: TOBJECT; var Action: TCLOSEACTION);

begin action := CAFREE;

end;

{Освобождаем память} procedure TFVABIT.FORMDESTROY(Sender: TOBJECT);

begin

Fvabit := nil;

end;

{Обрабатываем нажатие кнопки Регистрация} procedure TFVABIT.CXB_REGISTRCLICK(Sender: TOBJECT);

begin if PFIBDS_All.Modified then if PFIBDS_All.Fieldbyname("ID").ASVARIANT null then

PFIBDS_All.Post else begin

//кто зарегистрировал

PFIBDS_All.FIELDBYNAME("USER_ADD").ASINTEGER :=

DM_Main.NICKID;

//на каком мероприятии

PFIBDS_All.FIELDBYNAME("Source_ID").ASINTEGER :=

DM_Main.VSOURCE;

PFIBDS_All.Post;

//Показываем список факультетов и специальностей

PFIBDS_Fakul.FULLREFRESH;

PFIBDS_Spec.FULLREFRESH;

//в поле ID записываем сгенерированный ID воз. абитуриента CXME_ID_Abit.Text := PFIBDS_All.Fieldbyname("ID").ASSTRING;

end;

if PFIBDS_Fakul.Modified then

PFIBDS_Fakul.Post;

if PFIBDS_Spec.Modified then

PFIBDS_Spec.Post;

DM_Main.PFIBTWRITE.COMMITRETAINING;

end;

{Обрабатываем нажатие кнопки Сохранить} procedure TFVABIT.CXB_Ok_COMMITCLICK(Sender: TOBJECT);

begin if PFIBDS_All.Modified then

PFIBDS_All.Post;

if PFIBDS_Fakul.Modified then

PFIBDS_Fakul.Post;

if PFIBDS_Spec.Modified then

PFIBDS_Spec.Post;

DM_Main.PFIBTWRITE.COMMITRETAINING;

close;

MODALRESULT := MROK;

end;

{Обрабатываем создание формы регистрации} procedure TFVABIT.FORMCREATE(Sender: TOBJECT);

begin

PFIBDS_All.Active := true;

PFIBDS_From.Active := true;

PFIBDS_NAMEEDUC.Active := true;

PFIBDS_LIVINGEDUC.Active := true;

PFIBDS_PAYFORM.Active := true;

PFIBDS_Fakul.Active := true;

PFIBDS_Spec.Active := true;

end;

{Обрабатываем нажатие кнопки Отмена} procedure TFVABIT.CXB_CANCELCLICK(Sender: TOBJECT);

begin

DM_Main.PFIBTWRITE.Rollback;

MODALRESULT := MRCANCEL;

close;

end;

{Обрабатываем введение в поле ‘ID’ идентификационный номер возможного абитуриента во время повторного посещения МГОУ} procedure TFVABIT.CXME_ID_ABITKEYUP(Sender: TOBJECT; var Key: Word;

Shift: TSHIFTSTATE);

begin if Key = 13 then begin

CXB_Registr.Visible := false;

PFIBDS_All.Active := false;

PFIBDS_All.PARAMBYNAME("ID").ASSTRING := CXME_ID_Abit.Text;

PFIBDS_All.Active := true;

PFIBDS_All.Edit;

PFIBDS_All.FIELDBYNAME("REPEAT").ASINTEGER := 1;

end;

end;

{Обрабатываем нажатие кнопки Печать ID} procedure TFVABIT.CXB_Print_IDCLICK(Sender: TOBJECT);

begin

//открываем окно предварительного просмотра карточки воз.абитуриента FRXREPORT_Pirnt.SHOWREPORT(true);

end;

end.

{Модуль работы с сообщением} unit UPOST;

interface uses

Windows, Messages, SYSUTILS, Variants, Classes, Graphics, Controls, Forms, Dialogs, SDIEVENT, CXGRAPHICS, CXCONTROLS, CXLOOKANDFEELS, CXLOOKANDFEELPAINTERS, CXCONTAINER, CXEDIT, CXSPLITTER, CXGROUPBOX, Menus, DXCNTNER, DXEDITOR, DXEXEDTR, DXEDLIB, DXDBELIB, STDCTRLS, CXBUTTONS, CXTEXTEDIT, CXMASKEDIT, CXDROPDOWNEDIT, CXLOOKUPEDIT, CXDBLOOKUPEDIT, CXDBLOOKUPCOMBOBOX, CXSTYLES, CXCUSTOMDATA, CXFILTER, CXDATA, CXDATASTORAGE, DB, CXDBDATA, FIBDATASET, PFIBDATASET, CXGRIDLEVEL, CXCLASSES, CXGRIDCUSTOMVIEW, CXGRIDCUSTOMTABLEVIEW, CXGRIDTABLEVIEW, CXGRIDDBTABLEVIEW, CXGRID, CXPROGRESSBAR, DMMAIN, CXCHECKBOX, CXMEMO, CXDBEDIT, Grids, DBGRIDS, IDBASECOMPONENT, IDCOMPONENT, IDTCPCONNECTION, IDTCPCLIENT, IDMESSAGECLIENT, IDSMTP, IDMESSAGE;

type

TFPOST = class(TFORM)

SDIEVENTS: TSDIEVENTS;

CXGROUPBOX5: TCXGROUPBOX;

CXSPLITTER1: TCXSPLITTER;

CXGROUPBOX1: TCXGROUPBOX;

CXGROUPBOX2: TCXGROUPBOX;

CXDBLCB_Tema: TCXDBLOOKUPCOMBOBOX;

CXGROUPBOX3: TCXGROUPBOX;

CXGROUPBOX4: TCXGROUPBOX;

Label2: TLABEL;

Label4: TLABEL;

Label3: TLABEL;

CXGROUPBOX6: TCXGROUPBOX;

CXB_Save: TCXBUTTON;

CXB_Send: TCXBUTTON;

CXPROGRESSBAR: TCXPROGRESSBAR;

Label1: TLABEL;

CXGRID1DBTABLEVIEW1: TCXGRIDDBTABLEVIEW;

CXGRID1Level1: TCXGRIDLEVEL;

CXGRID1: TCXGRID;

PFIBDS_Post: TPFIBDATASET;

DATASOURCE1: TDATASOURCE;

CXGRID1DBTABLEVIEW1SURNAME: TCXGRIDDBCOLUMN;

CXGRID1DBTABLEVIEW1NAME: TCXGRIDDBCOLUMN;

CXGRID1DBTABLEVIEW1EDUCATION_ID: TCXGRIDDBCOLUMN;

CXGRID1DBTABLEVIEW1PAY_FORM_ID: TCXGRIDDBCOLUMN;

CXGRID1DBTABLEVIEW1EMAIL: TCXGRIDDBCOLUMN;

CXGRID1DBTABLEVIEW1Column1: TCXGRIDDBCOLUMN;

CXGRID1DBTABLEVIEW1Column2: TCXGRIDDBCOLUMN;

CXGRID1DBTABLEVIEW1Column3: TCXGRIDDBCOLUMN;

CXDBMEMO1: TCXDBMEMO;

DS_Mes: TDATASOURCE;

PFIBDS_Mes: TPFIBDATASET;

DS_Theme: TDATASOURCE;

PFIBDS_Theme: TPFIBDATASET;

CXGROUPBOX7: TCXGROUPBOX;

CXBNOT: TCXBUTTON;

CXBALL: TCXBUTTON;

IDSMTP: TIDSMTP;

PFIBDS_Send: TPFIBDATASET;

OPENDIALOG: TOPENDIALOG;

DXBE_ADD: TDXBUTTONEDIT;

DXBE_ADD1: TDXBUTTONEDIT;

DXBE_ADD2: TDXBUTTONEDIT;

procedure FORMCLOSE(Sender: TOBJECT; var Action: TCLOSEACTION);

procedure FORMDESTROY(Sender: TOBJECT);

procedure SDIEVENTSSDIACTIVATE(Sender: TOBJECT);

procedure CXB_SAVECLICK(Sender: TOBJECT);

procedure CXB_SENDCLICK(Sender: TOBJECT);

procedure CXBALLCLICK(Sender: TOBJECT);

procedure DXBE_ADDBUTTONCLICK(Sender: TOBJECT; ABSOLUTEINDEX: Integer);

procedure DXBE_ADD1BUTTONCLICK(Sender: TOBJECT;

ABSOLUTEINDEX: Integer);

procedure DXBE_ADD2BUTTONCLICK(Sender: TOBJECT;

ABSOLUTEINDEX: Integer);

procedure CXBNOTCLICK(Sender: TOBJECT);

procedure Button1Click(Sender: TOBJECT);

procedure FORMCREATE(Sender: TOBJECT);

private

FPERSID: integer;

procedure SETPERSID(const Value: integer);

{ Private declarations } public property PERSID :integer read FPERSID write SETPERSID;

{ Public declarations } end;

var

FPOST: TFPOST;

implementation

{$R *.dfm}

{Обрабатываем закрытие формы} procedure TFPOST.FORMCLOSE(Sender: TOBJECT; var Action: TCLOSEACTION);

begin action := CAFREE;

end;

{Освобождаем память} procedure TFPOST.FORMDESTROY(Sender: TOBJECT);

begin

FPOST := nil;

end;

{Обрабатываем нажатие кнопки Сохранить} procedure TFPOST.CXB_SAVECLICK(Sender: TOBJECT);

begin

PFIBDS_Mes.Edit;

//сохраняем прикрепленные файлы

PFIBDS_Mes.FIELDBYNAME("ENCLOSURE").ASSTRING := DXBE_ADD.Text ","

DXBE_ADD1.Text "," DXBE_ADD2.Text;

if PFIBDS_Post.Modified then

PFIBDS_Post.Post;

if PFIBDS_Mes.Modified then

PFIBDS_Mes.Post;

DM_Main.PFIBTWRITE.Commit;

close;

end;

{Обрабатываем нажатие кнопки Отправить} procedure TFPOST.CXB_SENDCLICK(Sender: TOBJECT);

var

M: TIDMESSAGE;

ATT: Tidattachment;

i, MESSAGEID: integer;

begin

CXB_Save.Click;

//начало отправки сообщений

Screen.Cursor := CRHOURGLASS;

//проверяем тип авторизации пользователя на почтовом сервере if PFIBDS_Send.FIELDBYNAME("AUTHENTICATIONTYPE").ASINTEGER = 0 then begin

IDSMTP.AUTHENTICATIONTYPE := ATNONE;

SHOWMESSAGE("- AUTHENTICATION: OFF");

end else

// хост

IDSMTP.Host := PFIBDS_Send.FIELDBYNAME("Host").ASSTRING;

// учетная запись

IDSMTP.Username := PFIBDS_Send.FIELDBYNAME("Username").ASSTRING;

// порт

IDSMTP.Port := PFIBDS_Send.FIELDBYNAME("Port").ASINTEGER;

// пароль

IDSMTP.Password := PFIBDS_Send.FIELDBYNAME("Pass").ASSTRING;

// создаем сообщение

M := TIDMESSAGE.Create(self);

// формируем параметры сообщения

M.From.Text := """ PFIBDS_Send.FIELDBYNAME("MAILLOGIN").ASSTRING

""";

m.Body.Add(CXDBMEMO1.Text); //текст письма

M.Recipients.Add;

m.Subject := CXDBLCB_Tema.Text; //тема письма

M.ISENCODED := true;

try try

Application.PROCESSMESSAGES;

IDSMTP.Connect();

except

MESSAGEBOX(0, "Не удалось соединиться с почтовым сервером."

#13 #10 "Сообщения не будут отправлены." #13 #10

"Проверьте наличие соединения с интернетом.", "Соединение с почтовым ящиком", MB_ICONSTOP or MB_OK or MB_TASKMODAL);

exit;

end;

// добавление файлов к сообщению if DXBE_ADD.Text "" then

ATT := TIDATTACHMENT.Create(m.MESSAGEPARTS, DXBE_ADD.Text);

if DXBE_ADD1.Text "" then

ATT := TIDATTACHMENT.Create(m.MESSAGEPARTS, DXBE_ADD1.Text);

if DXBE_ADD2.Text "" then

ATT := TIDATTACHMENT.Create(m.MESSAGEPARTS, DXBE_ADD2.Text);

i := 1;

CXPROGRESSBAR.Properties.Max :=

CXGRID1DBTABLEVIEW1.DATACONTROLLER.ROWCOUNT 1;

{Добавление email выделенных возможных абитуриентов} for i := 1 to CXGRID1DBTABLEVIEW1.DATACONTROLLER.ROWCOUNT do try

CXGRID1DBTABLEVIEW1.DATACONTROLLER.RECNO := i;

Application.PROCESSMESSAGES;

CXPROGRESSBAR.Position := i 1;

if PFIBDS_Post.FIELDBYNAME("CB").ASINTEGER = 0 then Continue;

M.Recipients.EMAILADDRESSES :=

PFIBDS_Post.FIELDBYNAME("email").ASSTRING;

IDSMTP.Send(m);

except

MESSAGEBOX(0, "Ошибка при отправке сообщения." #13 #10

"Возможно соединение с интернетом было утерено.", "Отправка сообщения", MB_ICONERROR or MB_OK or MB_TASKMODAL);

break;

end;

finally

IDSMTP.Disconnect;

att.free;

m.Free;

screen.Cursor := crdefault;

if DM_Main.PFIBTWRITE.Active then

DM_Main.PFIBTWRITE.Commit;

end;

end;

{Обрабатываем нажатие кнопки Выделить все} procedure TFPOST.CXBALLCLICK(Sender: TOBJECT);

var i:integer;

begin

PFIBDS_Post.DISABLECONTROLS;

PFIBDS_Post.First;

for i := 0 to CXGRID1DBTABLEVIEW1.DATACONTROLLER.RECORDCOUNT 1 do begin

PFIBDS_Post.Edit;

PFIBDS_Post.FIELDBYNAME("CB").ASINTEGER := 1;

PFIBDS_Post.Post;

CXGRID1DBTABLEVIEW1.DATACONTROLLER.RECNO := i;

end;

PFIBDS_Post.ENABLECONTROLS;

end;

{Прикрепление первого файла к сообщению} procedure TFPOST.DXBE_ADDBUTTONCLICK(Sender: TOBJECT;

ABSOLUTEINDEX: Integer);

begin if OPENDIALOG.Execute then

DXBE_ADD.Text := OPENDIALOG.FILENAME;

end;

{Прикрепление второго файла к сообщению} procedure TFPOST.DXBE_ADD1BUTTONCLICK(Sender: TOBJECT;

ABSOLUTEINDEX: Integer);

begin if OPENDIALOG.Execute then

DXBE_ADD1.Text := OPENDIALOG.FILENAME;

end;

{Прикрепление третьего файла к сообщению} procedure TFPOST.DXBE_ADD2BUTTONCLICK(Sender: TOBJECT;

ABSOLUTEINDEX: Integer);

begin if OPENDIALOG.Execute then

DXBE_ADD2.Text := OPENDIALOG.FILENAME;

end;

{Обрабатываем нажатие кнопки Снять выделение} procedure TFPOST.CXBNOTCLICK(Sender: TOBJECT);

var i:integer;

begin

PFIBDS_Post.DISABLECONTROLS;

PFIBDS_Post.First;

for i := 0 to CXGRID1DBTABLEVIEW1.DATACONTROLLER.RECORDCOUNT 1 do begin

PFIBDS_Post.Edit;

PFIBDS_Post.FIELDBYNAME("CB").ASINTEGER := 0;

PFIBDS_Post.Post;

CXGRID1DBTABLEVIEW1.DATACONTROLLER.RECNO := i;

end;

PFIBDS_Post.ENABLECONTROLS end;

{Создание формы} procedure TFPOST.FORMCREATE(Sender: TOBJECT);

var i:integer;

begin

PFIBDS_Mes.Active := true;

PFIBDS_Mes.Insert;

// получение ID нового сообщения i := PFIBDS_Mes.FIELDBYNAME("ID").ASINTEGER;

// получение ID пользователя, который создает сообщение

PFIBDS_Mes.FIELDBYNAME("USER_ID").ASINTEGER := DM_Main.NICKID;

PFIBDS_Mes.Post;

DM_Main.PFIBTWRITE.COMMITRETAINING;

PFIBDS_Mes.Active := false;

PFIBDS_Mes.PARAMBYNAME("ID").ASINTEGER := i;

PFIBDS_Mes.Active := true;

PFIBDS_Send.Active := true;

end;

{Установить персональный ID. Выбор адресата по переданному ID} procedure TFPOST.SETPERSID(const Value: integer);

begin

FPERSID := Value;

if PFIBDS_Post.Locate("pr_id", persid, [LOCASEINSENSITIVE]) then begin

PFIBDS_Post.Edit;

PFIBDS_Post.FIELDBYNAME("CB").ASINTEGER := 1;

PFIBDS_Post.Post;

end;

end;

end.
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?