Учебная работа. Дипломная работа: Учет посещаемости в рабочее время
федеральное Государственное образовательное учреждение
среднего проф образования
Бежецкий промышленно-экономический институт
Задание на дипломное проектирование
по специальности: «Менеджмент»
Студента группы: П — 411
Ф.И.О.
Тема работы: Учет посещаемости в рабочее время
Дата выдачи задания: « » 2008г.
Срок выполнения: « » 2008г.
Задание составил педагог:
___________
Рассмотрено и одобрено
на заседании методической комиссии
«Математика, информатика
и вычислительная техника»
протокол № ___ от «___» __________ 2008г.
Председатель комиссии: _________
2008
1. ТЕОРЕТИЧЕСКАЯ часть.
1.1. Анализ требований, предъявляемых к организации учебного процесса в ССузах, и методов решения поставленной задачки.
1.2. Обоснование и теоретический анализ избранного метода решения задачки. Описание предметной области и модели исследуемого объекта.
1.3. Описание процесса разработки программного обеспечения по автоматизации учебного процесса в институте и готового программного продукта.
1.4. Описание результатов исследования сделанного программного обеспечения по автоматизации учебного процесса в институте.
1.5. Составление программной и эксплуатационной документации.
1.6. Описание и оценка приобретенных результатов.
2. ПРАКТИЧЕСКАЯ часть.
2.1. Разработка программного обеспечения для организации учебного процесса в институте, в каком нужно:
— Спроектировать логическую модель базы данных
— Спроектировать физическую модель базы данных
— Организовать ввод количества пропущенных часов за любой денек по почтительным (болезнь, отпускные) и непочтительным причинам по каждой специальности, группе, студенту
— Предугадать возможность корректировки данных
— Организовать возможность подведения итогов посещаемости по любому студенту, по каждой группе, специальности и в целом по институту (процентное соотношение пропущенных часов по количество прогулов на 1 человека, полное количество пропущенных часов по группе, по специальности, по институту)
— Предугадать возможность сопоставления итоговых данных с итогами предшествующего месяца
— Обеспечить формирование списков студентов, имеющих наибольшее количество пропущенных часов по итогам текущего месяца, с начала учебного года
— Обеспечить формирование отчета (см приложение)
СОДЕРЖАНИЕ
Введение
1. метод решения поставленной задачки
2 Проектирование базы данных
2.1 Разработка базы данных
3 Среда разработки программного продукта
3.1 Работа с базами данных Access в Delphi
3.2 Составляющие доступа к данным
3.3 Доступ к данным
3.4 Создание отчетов в Delphi
3.5 Создание запросов на языке SQL
4 процесс разработки программного обеспечения
5 Программная и эксплуатационная документация
Заключение
Перечень использованной литературы
ВВЕДЕНИЕ
В связи с везде компьютеризацией, в том числе и института, современная жизнь невообразима без действенного управления. Принципиальной группой являются системы обработки инфы, от которых почти во всем зависит эффективность работы хоть какого компании либо учреждения. Таковая система обязана:
— обеспечивать получение общих и детализированных отчетов по итогам работы;
— позволять просто определять тенденции конфигурации важных характеристик;
— обеспечивать получение инфы, критичной по времени, без существенных задержек;
— делать четкий и полный анализ данных.
Для действенного управления предприятиями, фирмами и организациями разных обширно внедряются системы автоматического управления, ядром которых являются базы данных (БД). При большенном объеме инфы и трудности, производимых с ней операций неувязка эффективности средств организации хранения, доступа и обработки данных приобретет особенное жизни, очень суровые требования предъявляются к квалификации профессионалов, создающих приложения на их базе.
Современные СУБД в главном являются приложениями Windows, потому что данная среда дозволяет наиболее много применять способности индивидуальной ЭВМ . Посреди более ярчайших представителей систем управления базами данных можно отметить: LotusApproach, MicrosoftAccess, BorlanddBase, BorlandParadox, MicrosoftVisualFoxPro, MicrosoftVisualBasic, также баз данных MicrosoftSQLServer и Oracle, применяемые в приложениях, построенных по технологии «клиент-сервер». Практически, у хоть какой современной СУБД существует аналог, выпускаемый иной компанией, имеющий аналогичную область внедрения и способности, хоть какое приложение способно работать со почти всеми форматами представления данных, производить экспорт и импорт данных благодаря наличию огромного числа конвертеров. Принятыми, также, являются технологи, дозволяющие применять способности остальных приложений, к примеру, текстовых микропроцессоров, пакетов построения графиков и т.п., и интегрированные версии языков высочайшего уровня (почаще – диалекты SQL либо VBA) и средства зрительного программирования интерфейсов разрабатываемых приложений. Потому уже не имеет существенного значения на каком языке и на базе какого пакета написано конкретное приложение, и какой формат данных в нем употребляется.
Таковым образом, на нынешний денек разраб не связан рамками какого-нибудь определенного пакета, а зависимо от поставленной задачки может применять самые различные приложения. Потому, наиболее принципиальным представляется общее направление развития СУБД и остальных средств разработки приложений.
1 СПОСОБ РЕШЕНИЯ ПОСТАВЛЕННОЙ задачки
В институте ведется неизменный контроль за учетом посещаемости студентов, потому для улучшения работы и уменьшения затраченного времени целью данной дипломного проекта заключается в разработке программного продукта который дозволяет вести учет посещаемости студентов института. Данный продукт дозволит перейти от картонных носителей к электрическим, дозволит без излишних усилий и издержек подвести итоги и статистику, исключит возможность утраты данных (при использовании копирования базы данных).
Коллежу нужно из имеющихся списков студентов, в электрическом виде, образцов отчетов и табелей сделать программный продукт который заавтоматизировал эту работу и на базе введенных данных подсчитывал результаты и выдавал отчеты, в том числе и на печать.
2 ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ
Для разработки программного продукта до этого всего нужно спроектировать и создать базу данных.
Целью разработки хоть какой базы данных является хранение и внедрение инфы о какой-нибудь предметной области. Для реализации данной цели имеются последующие инструменты:
1) Реляционная модель данных — удачный метод представления данных предметной области;
2) Язык SQL — всепригодный метод манипулирования таковыми данными.
При разработке базы данных обычно выделяется несколько уровней моделирования, с помощью которых происходит переход от предметной области к определенной реализации базы данных средствами определенной СУБД. Можно выделить последующие уровни:
— Сама предметная область;
— Модель предметной области;
— Логическая модель данных;
— Физическая модель данных;
— Фактически база данных и приложения.
Предметная область — это часть настоящего мира, данные о которой мы желаем отразить в базе данных. к примеру, в качестве предметной области можно избрать бухгалтерию какого-нибудь компании, отдел кадров, области избрать учет продуктов на складе, то понятия «затратная» и «счет-фактура» являются значительно необходимыми понятиями, а то, что сотрудница, принимающая затратные, имеет двоих малышей — это для учета продуктов непринципиально. Но, исходя из убеждений отдела кадров данные о наличии малышей являются значительно необходимыми. Таковым образом, значимость данных зависит от выбора предметной области.[5]
Модель предметной области. Модель предметной области — это наши познания о предметной области. Познания могут быть как в виде неформальных познаний в мозгу профессионала, так и выражены формально с помощью каких-то средств. В качестве таковых средств могут выступать текстовые описания предметной области, наборы должностных инструкций, правила ведения дел в компании и т.п. Опыт указывает, что текстовый метод представления модели предметной области очень неэффективен. Еще наиболее информативными и полезными при разработке баз данных являются описания предметной области, выполненные с помощью специализированных графических нотаций. Имеется огромное количество методик описания предметной области. Модель предметной области обрисовывает быстрее процессы, происходящие в предметной области и данные, применяемые этими действиями. От того, как верно смоделирована предметная область, зависит фуррор предстоящей разработки приложений.[5]
Логическая модель данных. На последующем, наиболее низком уровне находится логическая модель данных предметной области. Логическая модель обрисовывает понятия предметной области, их связь, также ограничения на данные, налагаемые предметной областью. Примеры понятий — «сотрудник», «отдел», «проект», «заработная плата». Примеры взаимосвязей меж понятиями — «сотрудник считается ровно в одном отделе», «сотрудник может делать несколько проектов», «над одним проектом может работать несколько служащих». Примеры ограничений — «возраст сотрудника не наименее 16 и не наиболее 60 лет«.[5]
Логическая модель данных является исходным макетом будущей базы данных. Логическая модель строится в определениях информационных единиц, но без привязки к определенной СУБД. Наиболее того, логическая модель данных необязательно обязана быть выражена средствами конкретно реляционной модели данных.
Решения, принятые на прошлом уровне, при разработке модели предметной области, определяют некие границы, в границах которых можно развивать логическую модель данных, в границах же этих границ можно принимать разные решения. к примеру, модель предметной области складского учета содержит понятия «склад», «затратная», «продукт«. При разработке соответственной реляционной модели эти определения непременно должны быть применены, но разных методов реализации здесь много — можно сделать одно отношение, в каком будут находиться в качестве атрибутов «склад», «затратная», «продукт«, а можно сделать три отдельных дела, по одному на каждое понятие.[5]
Физическая модель данных. На еще наиболее низком уровне находится физическая модель данных. Физическая модель данных обрисовывает данные средствами определенной СУБД. Физическая модель данных реализована средствами конкретно реляционной СУБД. дела, разработанные на стадии формирования логической модели данных, преобразуются в таблицы, атрибуты стают столбцами таблиц, для главных атрибутов создаются неповторимые индексы, домены преображаются в типы данных, принятые в определенной СУБД.
Ограничения, имеющиеся в логической модели данных, реализуются разными средствами СУБД, к примеру, с помощью индексов, декларативных ограничений целостности, триггеров, хранимых процедур. При всем этом принятые на уровне логического моделирования определяют некие границы, в границах которых можно развивать физическую модель данных. Буквально также, в границах этих границ можно принимать разные решения. к примеру, дела, находящиеся в логической модели данных, должны быть преобразованы в таблицы, но для каждой таблицы можно добавочно объявить разные индексы, повышающие скорость воззвания к данным. Почти все здесь зависит от определенной СУБД.[5]
Фактически база данных и приложения. Как итог прошлых шагов возникает фактически сама база данных. База данных реализована на определенной программно-аппаратной базе, и выбор данной базы дозволяет значительно повысить скорость работы с базой данных. К примеру, можно выбирать разные типы компов, поменять количество микропроцессоров, размер оперативки, дисковые подсистемы и т.п. Весьма огромное
Но решения, принятые на прошлом уровне — уровне физического проектирования, определяют границы, в границах которых можно принимать решения по выбору программно-аппаратной платформы и опции СУБД.
Таковым образом ясно, что решения, принятые на любом шаге моделирования и разработки базы данных, будут сказываться на последующих шагах. Потому необыкновенную роль играет принятие правильных решений на ранешних шагах моделирования.[5]
2.1 Разработка базы данных
Для сотворения базы данных был применен Microsoft Access. приложение Microsoft Access является сильной и высокопроизводительной системой управления базой данных(СУБД)
база данных – это совокупа структурированных и взаимосвязанных данных и способов, обеспечивающих добавление подборку и отображение данных.
Реляционная база данных. Фактически все СУБД разрешают добавлять новейшие данные в таблицы. С данной точки зрения СУБД не различаются от программ электрических таблиц (Excel), которые могут эмулировать некие функции баз данных.[11]
Access – массивное приложение Windows. При всем этом производительность СУБД органично смешиваются со всеми удобствами и преимуществами Windows.
Как реляционная СУБД Access обеспечивает доступ ко всем типам данных и дозволяет сразу применять несколько таблиц базы данных. Можно применять таблицы, сделанные в среде Paradox либо dBase.
Access специально спроектирован для сотворения многопользовательских приложений, где файлы базы данных являются разделяемыми ресурсами в сети. В Access реализована надёжная система защиты от несанкционированного доступа к файлам.
база данных храниться в одном файле, но проф юзеры предпочитают делить базу данных на два файла: в одном хранятся объекты данных (таблицы, запросы), в другом объекты приложения (формы, отчеты, макросы, модули).
В крайних версиях Access представлен новейший формат файла (MDE) –библиотеки, при помощи которого можно создавать приложения, не включая VBA-код.[11]
Главные функции:
1) Организация данных. Создание таблиц и управление ими;
2) Связывание таблиц и обеспечение доступа к данным. Access дозволяет связывать таблицы по совпадающим значениям полей, с целью следующего соединения нескольких таблиц в одну;
3) Добавление и изменение данных. Эта функция просит разработки и реализации представленных данных, хороших от табличных (формы);
4) отчеты на базе данных таблиц и остальных объектов базы данных;
5) Макросы. Внедрение макросов дозволяет заавтоматизировать повторяющиеся операции. В крайних версиях Access макросы употребляют для сопоставимости;
6) защита базы данных. Эти средства разрешают организовать работу приложения в многопользовательской среде и предупредить несанкционированный доступ к базам данных;
7) средства печати. При помощи данной функции Access дозволяет распечатать фактически всё, что можно узреть в базе данных;
Access так же дозволяет создавать дистрибутивные диски для распространения готового приложения (при помощи Office Developer Edition Tools). Распространение предполагает поставку всех нужных файлов на каком-либо носителе.
Пакет ODE Tools включает мастер установки, автоматизирующий создание средств распространения и программки установки. Он так же дозволяет выполнение приложения на компах, на которых не установлен Access.
Элементы базы данных:
1) Таблицы. В базе данных информация хранится в виде двумерных таблиц.
Можно так же импортировать и связывать таблицы из остальных СУБД либо систем управления электрическими таблицами. сразу могут быть открыты 1024 таблицы;
2) Запросы. С помощью запросов можно произвести подборку данных по какому-нибудь аспекту из различных таблиц. В запрос можно включать до 255 полей;
3) Формы. Формы разрешают показывать данные из таблиц и запросов в наиболее комфортном для восприятия виде. При помощи форм можно добавлять и изменять данные, находящиеся в таблицах. В формы разрешают включать модули;
4) отчеты. Отчёты предусмотрены для печати данных, содержащихся в таблицах и запросах, в прекрасно оформленном виде. отчеты так же разрешают включать модули;
5) Макросы
6) Модули. Модули содержат VBA-код, применяемый для написания процедур обработки событий таковых, как, к примеру, нажатия клавиши в форме либо отчёте, для сотворения функций опции, для автоматического выполнения операций над объектами базы данных и программного управления операциями, т.е. добавление VBA-кода дозволяет сделать полную базу данных с настраиваемыми меню, панелями инструментов и иными способностями. Модули снимают с юзера приложения необходимость держать в голове последовательность выбора объектов базы данных для выполнения того либо другого деяния и увеличивают эффективность работы;
В состав Access заходит огромное количество мастеров, построителей и надстроек, которые разрешают упростить процесс сотворения объектов базы данных.
Процесс сотворения объекта базы данных с помощью мастера делится на несколько шагов, на любом из которых можно установить требуемые характеристики создаваемого объекта. Мастер таблиц дозволяет сделать новую таблицу на базе 33 образцов таблиц делового внедрения и 20 образцов таблиц личного внедрения (для британской версии Access соответственно 77 и 44). Почти все таблицы базы данных сделаны на базе образцов Мастера таблиц.
Внедрение Мастера таблиц служит хорошим примером, позволяющим осознать общую функцию работы с мастерами Access. Создание таблиц на базе образцов Мастера таблиц имеет ограниченные способности в реальных приложениях. Почти всегда для сотворения таблиц употребляется импорт либо связывание данных с иными базами данных либо электрическими таблицами.
Если импортировать либо связать данные недозволено, то почаще всего таблицы создаются в режиме конструктора, который дозволяет найти требуемую структуру таблицы. В режиме конструктора таблиц можно узреть наименования, типы данных, описания предназначения, также некие доп характеристики полей таблицы. То, что возникает в верхней части окна таблицы, открытой в режиме конструктора, именуется бланком структуры таблицы либо просто бланком таблицы. В нижней части окна таблицы, открытой в режиме конструктора, выводятся характеристики полей таблицы, также короткое описание активного характеристики таблицы.
Access дает возможность сотворения таблиц конкретно в режиме таблицы. При всем этом Access делает пустую таблицу на базе таблицы, применяемой по дефлоту, со структурой, имеющей 20 полей и 30 пустых записей. Опосля этого можно вводить данные прямо в таблицу. При ее сохранении Access анализирует данные и выбирает тот тип для всякого поля, который больше всего соответствует введенным данным. Создание таблиц в режиме таблицы имеет ограниченное применение. Поля таблицы не имеют содержательных имен, так что практически постоянно необходимо будет редактировать структуру, чтоб переименовать поля.
Не считая того, из примера Access не постоянно может верно найти тип данных. Таблицы, которые сделаны в режиме таблицы, не могут включать объекты OLE и мемо-поля. Если есть желание иметь такие поля, для вас необходимо поменять структуру таблицы. При разработке таблицы в режиме таблицы не происходит экономии времени по сопоставлению с обычным методом определения полей и установки их параметров в структуре пустой таблицы.
При разработке структуры таблицы нужно указать, какую информацию она обязана содержать. Опосля того как определена информация, которая обязана быть включена в таблицу, ее следует разбить по полям. Этот процесс содержит в себе выбор имени поля, которое в таблице обязано быть неповторимым. нужно включать в имя поля как можно больше инфы о его содержимом, но в то же время стараться избегать длинноватых имен. Обычно при разработке баз данных в разных таблицах могли содержаться поля с схожими именами (почаще всего таблицы связывались по сиим полям). Access также дозволяет применять схожие имена полей в разных таблицах, но из-за того, что Access употребляет имена полей при определении критерий целостности данных, лучше не допускать повторения имен полей.[11]
Одним из главных принципов разработки реляционных баз данных будет то, что все данные, находящиеся в поле таблицы, обязаны иметь один и этот же тип. Для всякого поля таблицы нужно задать тип данных. По дефлоту употребляется тип данных «Текстовый». При задании типа данных поля можно также указать размер, формат и остальные характеристики, действующие на отображение значения поля и точность числовых данных.
Главные типы данных:
1) Текстовый. текст либо числа, не требующие проведения расчётов;
2) МЕМО. Поле этого типа создано для хранения маленьких текстовых данных (до 64000 знаков). Поле этого типа не быть может главным либо проиндексированным;
3) Числовой. Этот тип данных содержит огромное количество подтипов. От выбора подтипа (размера) зависит точность вычислений;
4) Счётчик. Неповторимые, поочередно растущие числа, автоматом вводящиеся при добавлении новейшей записи в таблицу;
5) Логический. Логические значения, а так же поля, которые могут содержать одно из 2-ух вероятных значений;
6) Валютный. Валютные значения и числовые данные, применяемые в математических вычислениях;
7) Дата/время. Дата и время хранятся в особом фиксированном формате;
8) Поле объекта OLE. Включает звукозапись, набросок и остальные типы данных. Поле этого типа не быть может главным либо проиндексированным.[11]
3 СРЕДА РАЗРАБОТКИ ПРОГРАММНОГО ПРОДУКТА
Для разработки программно продукта был избран язык программирования Delphi.
Язык программирования Delphi — это композиция нескольких важных технологий:
— Высокопроизводительный компилятор в машинный код;
— Объектно-ориентированная модель компонент;
— Зрительное (а, как следует, и высокоскоростное) построение приложений из программных прототипов;
— Масштабируемые средства для построения баз данных.[2]
Компилятор, интегрированный в Delphi, обеспечивает высшую производительность, нужную для построения приложений в архитектуре “клиент-”. Он дает легкость разработки и резвое время проверки готового программного блока, соответствующего для языков 4-ого поколения (4GL) и в то же время обеспечивает свойство кода, соответствующего для компилятора 3GL. Не считая того, Delphi обеспечивает резвую разработку без необходимости писать вставки на С либо ручного написания кода (хотя это может быть).
Delphi не достаточно чем различается от проектирования в интерпретирующей среде, но опосля выполнения компиляции мы получаем код, который исполняется в 10-20 раз резвее, чем то же самое, изготовленное с помощью интерпретатора. В Delphi компиляция делается конкретно в родной машинный код, в то время как есть компиляторы, превращающие программку в так именуемый p-код, который потом интерпретируется виртуальной p-машиной. Это не может не сказаться на фактическом быстродействии готового приложения.[2]
Главный упор в модели Delphi делается на наивысшем реиспользовании кода. Это дозволяет разрабам строить приложения очень стремительно из заблаговременно приготовленных объектов, также дает им возможность создавать свои собственные объекты для среды Delphi. Никаких ограничений по типам объектов, которые могут создавать создатели, не существует. Все в Delphi написано на нем же, потому создатели имеют доступ к этим же объектам и инструментам, которые использовались для сотворения среды разработки. В итоге нет никакой различия меж объектами, поставляемыми Borland либо третьими фирмами, и объектами, которые можно сделать.
В обычную поставку Delphi входят главные объекты, которые образуют успешно подобранную иерархию из 270 базисных классов. Но если возникнет необходимость в решении некий специфичной трудности на Delphi, стоит просмотреть перечень свободно распространяемых либо коммерческих компонент, разработанных третьими фирмами, количество этих компаний в истинное время превосходит число 250. Почти во всем это разъясняется тем, что обычно в среде Windows было довольно трудно реализовывать пользовательский интерфейс. Событийная модель в Windows постоянно была сложна для осознания и отладки. Но конкретно разработка интерфейса в Delphi является самой обычный задачей для программера.
Среда Delphi содержит в себе полный набор зрительных инструментов для высокоскоростной разработки приложений (RAD — rapid application development), поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных. VCL — библиотека зрительных компонент, содержит в себе обычные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE. Единственное, что можно поставить в вину Delphi, это то, что готовых компонент, поставляемых Borland, могло бы быть и больше. Но, разработки остальных компаний, также свободно распространяемые программерами freeware-компоненты уже восполнили этот недочет.[2]
Соответственный эталон компонент именовался VBX. И этот эталон так же поддерживается в Delphi. Но, зрительные составляющие в Delphi владеют большей гибкостью.
В Delphi зрительные составляющие пишутся на объектном паскале, на том же паскале, на котором пишется алгоритмическая часть приложения. И зрительные составляющие Delphi получаются открытыми для надстройки и переписывания.
Объекты БД в Delphi основаны на SQL и содержат в себе полную мощь Borland Database Engine. В состав Delphi также включен Borland SQL Link, потому доступ к СУБД Oracle, Sybase, Informix и InterBase происходит с высочайшей эффективностью.
Не считая того, Delphi содержит в себе локальный Interbase для того, чтоб можно было создать расширяемые на любые наружные SQL-сервера приложения в офлайновом режиме. Разраб в среде Delphi, проектирующий информационную систему для локальной машинки (например, маленькую систему учета мед карточек для 1-го компа), может применять для хранения инфы файлы формата .dbf (как в dBase либо Clipper) либо .db (Paradox). Если же он будет применять локальный InterBase for Windows 4.0 (это локальный SQL-, входящий в поставку), то его приложение безо всяких конфигураций будет работать и в составе большенный системы с архитектурой клиент-.
Одно и то же приложение можно применять как для локального, так и для наиболее сурового клиент-серверного вариантов.[10]
Выпущены две версии Delphi — одна (Delphi Client-Server) для разрабов приложений в архитектуре “клиент-”, а иная (Delphi for Windows) создана для других программистов. Она предназначена корпоративным разрабам, желающим разрабатывать высокопроизводительные приложения для рабочих групп и корпоративного внедрения.
клиент-серверная версия содержит в себе последующие индивидуальности:
— SQL Links: специально написанные драйвера для доступа к Oracle, Sybase, Informix, InterBase;
— Локальный InterBase: SQL- для Windows. СУБД для разработки в корпоративных приложений на компе, не присоединенном к локальной сети;
— ReportSmith Client/server Edition: генераторотчетовдля SQL-серверов;
— Team Development Support: предоставляет версионный контроль с помощью PVCS компании Intersolve (приобретается раздельно) либо с помощью остальных программных товаров версионного контроля;
— Visual Query Builder — это средство зрительного построения SQL-запросов;
— лицензия на право распространения приложений в архитектуре клиент-сервер, сделанных с помощью Delphi;
— начальные тексты всех зрительных компонент.
Delphi for Windows представляет из себя подмножество Delphi Client-Server и предназначен для разрабов высокопроизводительных индивидуальных приложений, работающих с локальными СУБД типа dBase и Paradox.Delphi Desktop Edition дает такую же среду для резвой разработки и высококлассный компилятор как и клиент-серверная версия (Client/Server Edition). Эта среда дозволяет разрабу стремительно изготавливать индивидуальные приложения, работающие с индивидуальными СУБД типа dBase и Paradox. Delphi дозволяет также создавать разрабу DLL, которая быть может вызвана из Paradox, dBase, C++ либо каких-нибудь остальных готовых программ.
В продукт, выпущенный компанией Borland для Delphi в RAD Pack for Delphi заходит набор нужных дополнений, которые посодействуют разрабу при освоении и использовании Delphi. Это учебник по объектному паскалю, интерактивный отладчик самой крайней версии, Borland Visual Solutions Pack (набор VBX для реализации редакторов, электрических таблиц, коммуникационные VBX, VBX с деловой графикой и т.п.), Resource WorkShop для работы с ресурсами Borland Pascal 7.0, также эксперт для преобразования ресурсов BP 7.0 в формы Delphi.
Сначала Delphi предназначен для профессионалов-разработчиков корпоративных информационных систем. Некие продукты, созданные для высокоскоростной разработки приложений (RAD — rapid application development) отлично работают при изготовлении довольно обычных приложений, но, разраб сталкивается с неожиданными сложностями, когда пробует создать что-то вправду сложное.[10]
Delphi предназначен не только лишь для программистов-профессионалов. Руководители компаний, планирующие выделение средств на приобретение программных товаров, должны быть убеждены в том, что планируемые Инвестиции окупятся. Программер на паскале способен фактически сходу мастерски освоить Delphi. Спецу, ранее использовавшему остальные программные продукты, придется сложнее, но самое 1-ое работающее приложение он сумеет написать в течение первого же часа работы на Delphi. Открытая разработка Delphi является массивным гарантом того, что Инвестиции, изготовленные в Delphi, будут сохранены в течение почти всех лет.[3]
Локальный сервер InterBase — это инструмент предназначен лишь для автономной отладки приложений. В реальности он представляет из себя сокращенный вариант обработчика SQL-запросов InterBase, в который не включены некие способности реального сервера InterBase. Отсутствие этих способностей с лихвой возмещается преимуществом автономной отладки программ.
Team Development Support — средство поддержки разработки проекта в группе. Дозволяет значительно облегчить управление большими проектами. Это изготовлено в виде способности подключения такового продукта как Intersolve PVCS 5.1 конкретно к среде Delphi.
Высокопроизводительный компилятор в машинный код — в отличие от большинства Паскаль — компиляторов, транслирующих в p-код, в Delphi программный текст компилируется конкретно в машинный код, в итоге что Delphi- приложения исполняются в 10-20 раз резвее (в особенности приложения, использующие математические функции). Готовое приложение быть может сделано или в виде исполняемого модуля, или в виде динамической библиотеки, которую можно применять в приложениях, написанных на остальных языках программирования.
Благодаря таковой архитектуре приложения, сделанные с помощью Delphi, работают накрепко и стабильно. Delphi поддерживает внедрение уже имеющихся объектов, включая DLL, написанные на С и С++, OLE сервера, VBX, объекты, сделанные с помощью Delphi. Delphi имеет стопроцентно объектную ориентацию, создатели могут создавать свои повторно применяемые объекты для того, чтоб уменьшить Издержки на разработку.
Delphi дает разрабам — как в составе команды, так и личным — открытую архитектуру, позволяющую добавлять составляющие, где бы они ни были сделаны, и оперировать этими вновь введенными компонентами в зрительном построителе. Создатели могут добавлять CASE-инструменты, кодовые генераторы, также авторские help’ы, доступные через меню Delphi.
Two-way tools — однозначное соответствие меж зрительным проектированием и традиционным написанием текста программки. Это значит, что разраб постоянно может созидать код, соответственный тому, что он выстроил с помощью зрительных инструментов и напротив.
Зрительный построитель интерфейсов (Visual User-interface builder) дает возможность стремительно создавать клиент-серверные приложения зрительно, просто выбирая составляющие из соответственной палитры.
библиотека объектов содержит в себе обычные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE.
Delphi употребляет структурный объектно-ориентированный язык (Object Pascal), который соединяет с выразительную мощь и простоту программирования, соответствующую для языков 4GL, и эффективность языка 3GL. Программеры немедля могут начать создавать работающие приложения, и им не придется для этого учить индивидуальности программирования событий в Windows. Delphi стопроцентно поддерживает передовые программные концепции включая инкапсуляцию, наследование, полиморфизм и управление событиями.
Это весьма принципиальная изюминка для разрабов в среде Windows, так как в уже имеющиеся Windows-приложения программер может интегрировать то, что разработает с помощью Delphi.[2]
3.1 Работа с базами данных
Access
в
Delphi
В Delphi имеется ряд компонент, которые предусмотрены лишь для работы с MSAccess, эти составляющие находятся на вкладке ADO.
Чтоб обрабатывать некую структуру данных для неё обязана быть написана программка, поставщик этих данных в согласовании с системными требованиями, таковая программка именуется OLEDBProvider. Такие поставщики сейчас реализованы для различных структур данных и различных СУБД. При помощи технологии OLEDB можно однотипным образом обрабатывать сложную и специфическую информацию. Но работа с OLEDB довольно сложна, потому КомпанияMicrosoft разработала новейшую технологию ADO, представляющая собой набор обычных компонент. Если планируется сделать новое приложение, направленную на работу с данными и независимая не от определенной СУБД и не от метода хранения инфы, то лучше применять технологию ADO.[5]
Разработка Microsoft activeX Data Objects (ADO) обеспечивает всепригодный доступ к источникам данных из приложений БД. Такую возможность предоставляют функции набора интерфейсов, сделанные на базе общей модели объектов СОМ и описанные в спецификации OLE DB.
разработка ADO и интерфейсы OLE DB обеспечивают для приложений единый метод доступа к источникам данных разных типов (Рис. 1). к примеру, приложение, использующее ADO, может использовать идиентично сложные операции и к данным, хранящимся на корпоративном сервере SQL, и к электрическим таблицам, и локальным СУБД. запрос SQL, направленный хоть какому источнику данных через ADO, будет выполнен.[5]
За серверы БД волноваться не стоит, обработка запросов SQL — это их основная обязанностью. OLE DB представляет собой набор специализированных объектов СОМ, обычные функции обработки данных, и спец функции определенных источников данных и интерфейсов, обеспечивающих передачу данных меж объектами.
Согласно терминологии ADO, хоть какой источник данных (база данных, электрическая таблица, файл) именуется хранилищем данных, с которым с помощью провайдера данных ведет взаимодействие приложение. Малый набор компонент приложения может включать объект соединения, объект набора данных, объект микропроцессора запросов. разработка ADO в целом содержит в себе не только лишь сами объекты OLE DB, да и механизмы, обеспечивающие взаимодействие объектов с данными и приложениями. На этом уровне самую важную роль играют провайдеры ADO, координирующие работу приложений с хранилищами данных разных типов.
Провайдеры ADO обеспечивают соединение приложения, использующего данные через ADO, с источником данных (сервером SQL, локальной СУБД и файловой системой. Для всякого типа хранилища данных должен существовать провайдер ADO.
Провайдер «понимает» о местоположении хранилища данных и его содержании, умеет обращаться к данным с запросами и интерпретировать возвращаемую служебную информацию и результаты запросов с целью их передачи приложению.[5]
Механизм доступа к данным через ADO и бессчетные объекты, и интерфейсы реализованы в VCL Delphi в виде набора компонент, расположенных на страничке ADO. Все нужные интерфейсы, обеспечивающие работу компонент, объявлены и описаны в файлах OleDB.pas и ADODB.pas.
Таковая архитектура дозволяет создать набор объектов и интерфейсов открытым и расширяемым. Набор объектов и соответственный провайдер быть может сотворен для хоть какого хранилища данных без внесения конфигураций в начальную структуру ADO.
Потому что разработка ADO базирована на обычных интерфейсах СОМ, которые являются системным механизмом Windows, это уменьшает общий размер работающего программного кода и дозволяет распространять приложения БД без вспомогательных программ и библиотек.
На закладке ADO размещены составляющие:
1) Составляющие соединения:
— ADOConnection;
— ADOCommand;
2) Обычные составляющие:
— ADODataSet — всепригодный набор данных;
— ADOTable — таблица БД;
— ADOQuery — запрос SQL;
— ADOStoredProc — хранимая процедура.
На страничке ADO Палитры компонент Delphi, не считая компонент соединения есть обычные составляющие, обозначающие набор данных и приспособленные для работы с хранилищем данных ADO.
Компонент ADOConnection вобрал способности перечислителя, источника данных и сессии с способностями обслуживания транзакций. Текстовые команды ADO реализованы в компоненте ADOCommand. Наборы рядов можно получить с помощью компонент ADOTable, ADOQuery, AOostoredProc.
Любой из их реализует метод доступа к определенному типу представления данных в хранилище. Применительно к компонентам Delphi, совокупа возвращаемых из хранилища данных строк будем именовать набором записей. Набор параметров и способов компонент ADO обеспечивает реализацию всех нужных приложению БД функций. методы использования компонент ADO немногим различаются от обычных компонент VCL доступа к данным. Но по мере необходимости разраб может применять все способности интерфейсов ADO, обращаясь к ним через надлежащие объекты ADO. Ссылки на объекты имеются в компонентах.[10]
Механизм соединения с хранилищем данных ADO.
Перед созданием соединения нужно найти его характеристики. Для этого, как уже говорилось, предназначено свойство ConnectionString.
Набор характеристик меняется зависимо от типа применяемого провайдера и может настраиваться как вручную, так и при помощи редактора. Для того чтоб вызывать редактор соединений, нужно два раза щелкнуть на компоненте TADOConnection.
В итоге будет активировано диалоговое окно. В этом окне можно настроить соединение, используя поле Use Connection String, либо загрузить характеристики соединения из файла в разделе Use Data Link File. характеристики соединения хранятся в файлах UDL, представляющих из себя обыденные текстовые файлы, содержащие характеристики соединения.
Для того чтоб настроить соединение сданным провайдером, нужно надавить на клавишу Build. Покажется окно, в каком будет размещен перечень доступных провайдеров.
На вкладке Provider можно избрать пригодный провайдер данных OLE DB для определенного источника данных. В перечне провайдеров также находятся провайдеры, созданные для доступа к определенным службам операционной системы. На вкладке Connection нужно указать путь к базе данных либо . Вкладка Advanced создана для указания режима доступа, аналогично свойству Mode. Вкладка АН создана для наиболее «узкой» опции специфичных параметров провайдера. Для предстоящей работы необходимо избрать провайдер Microsoft Jet 4.0 OLE DB Provider. Потом необходимо перейти на вкладку Connection. Покажется окно.
В показавшемся окне нужно указать путь к базе данных. В поле Select or enter a database name необходимо указать путь к демонстрационной базе dbdemos.mdb. Опосля указания пути к базе данных и задания других нужных характеристик необходимо проверить сделанное соединение с помощью клавиши Test Connection. Если характеристики соединения указаны правильно, покажется сообщение Test connection succeeded. Опосля закрытия этого окна в строке соединения будет отображена информация, при помощи которой провайдер сумеет получить доступ к данным.
Компонент TADOQuery TADOQuery дозволяет делать SQL-запросы при работе с данными через ADO. соединение с хранилищем данных осуществляется обычным способом. текст запроса содержится в свойстве SQL.
Характеристики запроса содержатся в свойстве Parameters. В случае, если компонент возвращает набор данных, его следует открывать способом Open либо присвоить свойству Active запрос следует делать вызовом способа ExecSQL. способ возвращает число обработанных запросом записей.
Свойство RowsAffected содержит число записей, которые затронул крайний выполнявшийся запрос.
Компонент TADOTable употребляется для доступа к хранилищам данных ADO и представления инфы из их в табличном виде. Компонент предоставляет прямой доступ к каждой записи и ее полям, наследуя характеристики и способы класса TCustomADODataSet. Компонент связывается с базой данных через характеристики Connection либо ConnectionString.
имя таблицы указывается в свойстве TableName. Свойство TableDirect показывает, каким образом набор данных связывается с хранилищем данных. Потому что не все провайдеры поддерживают прямое соединение с набором данных, то в неких вариантах для связи с хранилищем данных приходится применять SQL-операторы. При установке свойству значения True компонент употребляет фоновые SQL-запросы для доступа к данным.
Используя свойство Readonly, можно установить ограничение «лишь для чтения» на данную таблицу, запретив, таковым образом, возможность изменять данные. В свойстве MasterSource указывается компонент TDataSource, применяемый для сотворения дела ссылочной целостности Master-Detail.
способ GetlndexNames возвращает перечень индексов, доступных компоненту в качестве перечня.
Компонент TDataSource — этот компонент связывается с набором данных. Эта связь осуществляется через свойство DataSet, которое содержит информацию о текущем состоянии набора данных. У этого компонента существует набор параметров и способов, которые упрощают работу с ним.
Свойство AutoEdit автоматом переводит набор данных в состояние редактирования, если имеет значение True, когда связанный элемент ввода получает фокус.
способ Edit переводит связанный набор данных в состояние редактирования. Способ-обработчик OnDataChange вызывается при редактировании данных в связанном зрительном компоненте.
способ-обработчик действия OnUpdateData вызывается перед тем, как модифицированные данные будут сохранены в наборе данных. Обработчик вызывается перед выполнением способа Post.
способ-обработчик действия OnStateChange вызывается, когда меняется состояние связанного набора данных.
Набор данных — массив записей, приобретенный приложением по собственному запросу, именуется набором данных. Набор данных как объект ведет свое начало от класса TDataSet и наследует его характеристики.[10]
3.2 Составляющие доступа к данным
Составляющие доступа к данным являются невизуальными компонентами. Таблицы БД размещаются на диске и являются физическими объектами. Для операций с данными, содержащимися в таблицах, употребляются наборы данных. В определениях системы Delphi набор данных представляет собой совокупа записей, взятых из одной либо нескольких таблиц БД. Записи, входящие в набор данных, отбираются по определенным правилам, при всем этом в личных вариантах набор данных может включать в себя все записи из связанной с ним таблицы либо не содержать ни одной записи. Набор данных является логической таблицей, с которой можно работать при выполнении приложения. Взаимодействие таблицы и набора данных припоминает взаимодействие физического файла и файловой переменной.[5]
В Delphi для работы с наборами данных служат составляющие DBTable и ADOTable, DBQuery и ADOQuery, DataAccess, DataControl, DecisionQuery и StoredProc.
Компонент StoredProc употребляется для вызова хранимых процедур при организации взаимодействия с удаленными БД, а компонент UpDateSQL обеспечивает работу с кэшированными переменами в записях. Компонент DecisionQuery применяется при построении систем принятия решений. Более всепригодными и, соответственно, нередко применяемыми являются составляющие Table и Query, задающие наборы данных.[5]
Базисные способности доступа к БД обеспечивает класс DataSet, представляющий наборы данных в виде совокупы строк и столбцов (записей и полей). Этот класс предоставляет главные средства навигации и редактирования наборов данных.
Компонент DataSet предназначен для представления набора данных из хранилища данных ADO. Он прост в использовании, имея лишь несколько собственных параметров и способов.
Это единственный компонент ADO, инкапсулирующий набор данных, для которого размещены характеристики, дозволяющие управлять командой ADO. В итоге компонент представляет собой гибкий инструмент, который дозволяет (зависимо от типа команды и ее текста) получать данные из таблиц, запросов SQL, хранимых процедур, файлов и т. д.[5]
Составляющие Table и Query являются производными от класса ADODataSet потомка класса DataSet. Они показывают идентичные с базисными классами свойства и характеристики настроены заблаговременно и изменению не подлежат.
Остальные характеристики и способы компонента обеспечивают применение индексов. Потому что не все провайдеры ADO обеспечивают прямое внедрение таблиц БД, то для доступа к ним может пригодиться запрос SQL.
Компонент Table представляет собой набор данных, который в некий момент времени быть может связан лишь с одной таблицей БД. Этот набор данных формируется на базе навигационного метода доступа к данным, потому компонент Table рекомендуется применять для локальных БД, таковых как dBase и Paradox. При работе с удаленными БД следует применять компонент Query. Связь меж таблицей и компонентом Table устанавливается через его характеристики TableName, которое задает имя таблицы.
При задании значения характеристики TableName указывается имя файла и расширение название файла. На шаге разработки приложения имена всех таблиц доступны в раскрывающемся перечне Инспектора объектов. В этот перечень попадают таблицы, файлы которых размещены в каталоге, обозначенном в свойстве TableName.
Компонент ADOQuery обеспечивает применение запросов SQL при работе с данными через ADO. По собственной функциональности он подобен обычному компоненту запроса.
Компонент Query представляет собой набор данных, записи которого формируются в итоге выполнения SQL-запроса и основаны на реляционном методе доступа к данным. При работе с удаленными БД рекомендуется применять набор данных Query. При работе с удаленными базами данных следует обращаться к средствам языка SQL. Это относится и к таковым операциям, как перемещение по набору данных либо вставка в него записей. Если же для компонента Query употребляются способы типа Next и Insert, то заместо реляционного метода доступа к данным будет применён навигационный. В итоге набора данных Query будет не достаточно чем различаться от набора данных Table. В отличие от компонента Table. Набор данных Query может включать в себя записи наиболее чем одной таблицы БД. Текст запроса, на основании которого в набор данных отбираются записи, содержится в свойстве SQL типа Strings. запрос содержит в себе команды на языке SQL и производится при открытии набора данных. запрос SQL время от времени именуется SQL-программой. SQL-запрос можно сформировывать и изменять динамически, внося конфигурации в его текст конкретно при выполнении приложения.[5]
Составляющие для работы с данными расположенные на страничке DataControls палитры компонент и предусмотрены для построения интерфейсной части приложения. Они употребляются для навигации по набору данных, также для отображения и редактирования записей.[5]
Одни зрительные составляющие для работы с данными предусмотрены для выполнения операций с полями отдельной записи, они показывают и разрешают редактировать к примеру, однострочный редактор Edit и графический обзор Image.
Остальные составляющие служат для отображения и редактирования сходу нескольких записей. Примерами таковых компонент являются сетки DBGrid и DBCtrlGrid, выводящие записи набора данных в табличном виде. Зрительные составляющие для работы с данными похожи на надлежащие составляющие страничек Standard и Additional и различаются, в главном, тем, что ориентированны на работу с БД и имеют доп характеристики DataSource и Datafield. 1-ое из их показывает на источник данных, а 2-ое — на поле набора данных, с которым связан зрительный компонент. к примеру, Edit показывает строковое
Для всех зрительных компонент, созданных для отображения и редактирования значений полей, при изменении юзером их содержимого набор данных автоматом переводится в режим редактирования. Произведённые при помощи этих компонент конфигурации автоматом сохраняются в связанных с ними полях при пришествии определённых событий.
При программном изменении содержимого эти зрительных компонент набор данных автоматом в режим редактирования не переводится. Для данной цели в коде должен за ранее вызываться способ Edit набора. Чтоб сохранить конфигурации в поле (полях) текущей записи, мы должны также предугадать надлежащие деяния, к примеру, вызов способа Post либо переход к иной записи набора данных.[5]
В библиотеке зрительных компонент для всех компонент, в том числе и созданных для работы с данными, базисным является классу Control. Он обеспечивает главные многофункциональные атрибуты такие, как положение и размеры элемента, его заголовок, цвет и остальные характеристики. Класс Control содержит в себе общие для зрительных компонент характеристики, действия и способы. В целом зрительные составляющие можно поделить на две группы: оконные и неоконные.
Оконный отран управления представляет собой спец окно, созданное для решения определенной задачки. К таковым элементам относятся, к примеру, поля редактирования, командные клавиши, полосы прокрутки.
Такие составляющие, как Edit, DBEdit, Memo либо DBMemo при получении фокуса ввода показывают в собственной области курсор редактирования. Составляющие, не связанные с редактированием инфы, получение фокуса ввода обычно показывают при помощи при помощи пунктирного темного прямоугольника.
К неоконным элементам управления базисным является класс GraphiControl, производимый конкретно от класса Control. Неоконные элементы управления на могут получать фокус ввода. Их достоинством является наименее расходования ресурсов.
характеристики разрешают управлять наружным видом и поведением компонент при проектировании и при выполнении приложения. Обычно установка значений большинства параметров компонент производится на шаге проектирования при помощи инспектора объектов.
Свойство Name показывает на имя компонента, которое употребляется для управления компонент во время выполнения приложения. Любой новейший компонент, помещаемый на форму, получает имя по дефлоту, автоматом образуемое методом прибавления к наименованию компонента его номера в порядке помещения на форму. На шаге разработки приложения мы можем изменять имя компонента на наиболее осмысленное и соответственное предназначению компонента.
Свойство Aling описывает метод сглаживания компонента на самой форме, на которой оно находится. Сглаживание употребляется в случае, когда требуется, чтоб какой-нибудь интерфейсный элемент занимал определённое положение.
Свойство Caption содержит строчку для надписи заголовка компонента. Отдельные знаки в заголовке могут быть подчеркнуты, они означают композиции кнопок резвого доступа.
Свойство Color описывает цвет фона. Нередко комфортно задавать цвета при помощи констант. Отображаемые цвет зависит от характеристик видеоплаты и монитора, сначала от установленного цветного разрешения.
Зрительные составляющие способны генерировать и обрабатывать довольно огромное число событий разных видов. К более общим группам событий можно отнести последующие деяния:
— Выбор управляющего элемента;
— Перемещение указателя мыши;
— Нажатие кнопок клавиатуры;
— Получение и утрата управляющим элементом фокуса ввода;
— Перемещение объектов способом drag-and-drop.
Есть и наиболее сложные действия, требующие передачи доп характеристик, к примеру событие, связанное с перемещением указателя мыши, передаёт координаты указателя.
3.3 Доступ к данным
Навигационный метод доступа заключается в обработки каждой записи набора данных. Достоинством этого метода является простота кодировки операции, а главный недочет заключается в том, что приложение получает все записи набора независимо от того, сколько их по сути требуется обработать. Это приводит к большенный перегрузке на сеть, в особенности при интенсивном обмене данными. Потому применение навигационного метода доступа обычно ограничивается локальными БД.
При навигационном методе доступа операции производятся с отдельными записями. Любой набор данных имеет указатель текущей записи, другими словами записи, с полями которой могут быть выполнены такие операции, как редактирование либо удаление. Составляющие Table и Query разрешают управлять положением этого указателя.[5]
Навигационный метод доступа даёт возможность производить последующие операции:
— сортировка записей;
— навигация по набору данных;
— редактирование записей;
— вставка и удаление записей;
— фильтрация записей;
— поиск записей.
Редактирование записей заключается в изменении значений их полей. Редактирована, быть может лишь текущая запись, потому перед действиями, связанными с редактированием, обычно производятся операции по поиску и перемещению на требуемую запись. Опосля того. Как указатель текущей записи установлен на подходящую запись, и набор данных находится в режиме просмотра, для редактирования записи следует:
— перевести набор данных в редактирование;
— поменять
— подтвердить конфигурации либо отрешиться от их.
способ Insert переводит набор данных в режим вставки и добавляет к нему новейшую пустую запись. Для прибавления записи необходимо:
— перевести набор данных в режим записи;
— задать
— подтвердить конфигурации либо отрешиться от их.
Удаление текущей записи делает способ Delete, который работает лишь с модифицируемым набором данных. В случае удачного удаления записи текущей становится последующая запись, если же удалялась крайняя запись, то курсор {перемещается} на предшествующую запись, которая опосля удаления становится крайней. В отличие от неких СУБД, в Delphi удаляемая запись вправду удаляется из набора данных.
порядок расположения записей быть может неопределённым. По дефлоту записи не отсортированы либо сортируются. С отсортированными наборами записей работать наиболее комфортно. Сортировка заключается в упорядочивании записей по определённому полю в порядке возрастания либо убывания содержащихся в нём значений. Сортировку можно делать и по нескольким полям.[5]
При сортировки по двум полям записи поначалу упорядочиваются по значениям первого поля, а потом группы записей с схожим значением первого поля сортируются по второму полю. Сортировка наборов данных Table и Query производится разными методами. Сортировка наборов данных Table производится автоматом по текущему индексу. При смене индекса происходит автоматическое переупорядочивание записей. Таковым образом, сортировка вероятна по полям, для которых сотворен индекс.
Для сортировки по нескольким полям необходимо создавать индекс, включающий эти поля. Направление сортировки определяется параметром ixDescending текущего индекса, по дефлоту он выключен, и упорядочивание производится в порядке возрастания значений. Если для индекса признак ixDescending включен, то сортировка производится в порядке убывания значений. Поля, по которым сортируются записи, инсталлируются через параметров IndexName.
Перемещение по набору данных заключается в управлении указателем текущей записи. Этот указатель описывает запись, с которой будут производиться такие операции, как редактирование либо удаление.
Перед перемещение указателя текущей записи набор данных автоматом переводится в режим просмотра. Если текущая запись находилась в режимах редактирования либо вставки, то перед перемещением указателя изготовленные в записи конфигурации вступают в силу, для что набор данных автоматом вызывает способ CheckBrowseMode. Для перемещения указателя текущей записи в наборе данных употребляются способы:
— Процедура First – установка на первую строчку;
— Процедура Next – установка на последующую строчку;
— Процедура Last – установка на последнюю строчку;
— Процедура Prior – установка на предшествующую строчку.
При перемещении по записям набора данных связанные с ним зрительные составляющие показывают конфигурации данных, при этом смена отображения может происходить довольно стремительно.
Побочным эффектом выполнения ряда операций с наборами данных является изменение положения указателя текущей записи. Нередко этот эффект ненадёжен, потому что опосля выполнения таковой операции указатель находится не в том месте, где был до начала операции. При всем этом приходится опять искать подходящую запись и ставить на нее указатель, что неловко даже при маленьком количестве записей.
Фильтрация записей – это задание ограничений для записей, отбираемых в набор данных. Набор данных представляет собой записи, набранные из одной либо нескольких таблиц. Состав записей в наборе данных в данный момент времени зависит от установленных ограничений, в том числе и от фильтров. Система Delphi дает возможность производить фильтрацию записей:
— по выражению;
— по спектру.
По дефлоту фильтрация записей не ведётся, и набор данных Table содержит все записи связанной с ним таблицы БД, а в набор данных Query врубаются все записи, удовлетворяющие SQL-запросу, содержащемуся в свойстве SQL. Фильтрация похожа на SQL–запросы, но является наименее массивным средством. По сопоставлению с SQL–запросами фильтрация наименее эффективна, потому что ограничивается количество записей, видимых в наборе.
При использовании фильтрации по выражению набор данных ограничивается записями, удовлетворяющими выражению фильтра, задающему условия отбора записей.
Достоинством фильтрации по выражению будет то, что она применима к хоть каким полям, в том числе и неиндексированным. В связи с тем, что в процессе отбора просматриваются все записи таблицы, фильтрация по выражению эффективна при маленьком количестве записей.
Для задания выражения фильтра представляет собой систему, в состав которой могут заходить последующие элементы:
— имена полей таблицы;
— литералы;
— операции сопоставления;
— арифметические операции;
— логические операции;
— круглые и квадратные скобки.
Если имя поля содержит пробелы, то его заключают в квадратные скобки. Имена переменных в выражении фильтра применять недозволено. Если в выражении фильтра требуется включить конфигурации порядка выполнения арифметических и логических операций.
Набор данных Table допускается два метода задания условии фильтрации: су помощью выражения фильтра Filter и в обработчике действия OnFilterRecord.
В случае набора данных Query для записей можно применять: SQL-запрос, обработчик событияOnFilterRecord, выражения фильтра.
При фильтрации по спектру в набор данных врубаются записи, значения полей которых попадают в данный спектр, т.е. условием фильтрации является выражение вида «значение>нижняя граница AND
Достоинство фильтрации по спектру является высочайшая скорость обработки записей. В отличие от фильтрации по выражению, когда поочередно просматриваются все записи таблицы, фильтрация по спектру ведётся индексно-последовательным способом, потому этот метод фильтрации применим лишь для индексированных полей. Индекс поля, спектр которого задан как текущий при помощи характеристики IndexName либо IndexFieldName. Если текущий индекс не установлен, то по дефлоту употребляется основной индекс.
Для включения и выключения фильтрации по спектру используются способы ApplyRange и CancelRange. 1-ый из их активизирует фильтрацию, а иной — деактивизирует. За ранее для индексного поля либо полей, по которому производится фильтрация, следует задать спектр допустимых значений. Когда одна из границ спектра не задана, то спектр открыт, другими словами нижняя граница становится равной мало вероятному, а верхняя граница – очень вероятному значению этого поля.
Поиск записи, удовлетворяющей определённым условиям, значит переход на эту записи. Поиск почти во всем похож на фильтрацию, потому что в процессе поиска также производится проверка полей записей на некие условия. Отличие состоит в том, что в итоге поиска количество записей в наборе данных не меняется.
При организации поиска записей принципиальное работать лишь с индексированными полями.
Для поиска записей по полям служат способы Locate и Lookup, при этом поля могут быть не индексированными. Функция Locate отыскивает запись с данными значениями полей. Если удовлетворяющие условиям поиска записи существует, то указатель текущей записи устанавливается на первую из их. Если запись найдена, функция возвращает процесс поиска су помощью управляющих частей, расположенных на форме. При всем этом деяния юзера по управлению поиском в наборе данных не достаточно, чем различаются от подобных действий при выполнении фильтрации. Функция Lookup так же производит поиску записи, удовлетворяющей определённым условиям, но, в отличие от способа Locate, не перемещает указатель текущей записи, а считывает информацию из полей записи. Очередное отличие меж 2-мя способами состоит в том, что способ Lookup производит поиск на четкое соответствие значений для поиска и значений в полях записей с учетом регистра букв.
Для набора данных Table имеются способы, дозволяющие вести поиск записей лишь по индексным полям. Перед вызовом хоть какого из этих способов следует установить в качестве текущего индекс, построенный по применяемым для поиска полям. способы поиска можно поделить на две группы, в первой группе способы, созданные для поиска на четкое соответствие, а другую образуют способы, допускающие лишь частичное совпадение данных для поиска значений и значений полей записей. Если данным условиям поиска соответствует несколько записей, то указатель текущей записи устанавливается на первую из их. порядок сортировки и, соответственно, порядок расположения записей в наборе даны, определяется текущим индексом, по которому и ведется поиск.[5]
3.4 Создание отчетов в
Delphi
Для вывод инфы не печать использовались отчеты сделанные в Delphi. отчет – это печатный документ, содержащий данные, подобные получаемые в итоге выполнения запроса к БД. В Delphi для сотворения отчетов служит генератор отчетов QuickReport,содержащий широкий набор компонент.
Составляющие, созданные для сотворения отчетов, находятся на страничке QReport палитры компонент. Большая часть компонент отчета являются зрительными. Почти все из их не достаточно различаются от подобных компонент страничек Standard, Additional и DataControls. к примеру, компоненту QRImage соответствуют составляющие Image и DBImage.
Основным компонентом отчета является компонент-отчет QuickRep, представляющий из себя базу, на которой располагаются остальные составляющие. Компонент QuickRep обычно располагается на отдельной форме, созданной для сотворения отчета. По дефлоту он имеет имя QuickRep1. если на форме располагается иной отчет, он получает имя QuickRep2 и т.д.
Компонент QuickRep при перемещение его на форму имеет вид странички формата А4, сначало отображаемой в истинную величину. На шаге разработки приложения можно поменять масштаб странички и размещенных на ней компонент при помощи характеристики Zoom типа Integer (
отчет можно поместить на всякую форму приложения, к примеру на главную. В этом случае отчет (страничка) делает собственного рода фон, на котором размещены управляющие элементы формы.
Компонент QuickRep связывается с набором данных Table либо Query, для которого создается отчет, при помощи характеристики DataSet. При всем этом наборе данных Query может содержать записи, избранные из различных таблиц. При печати отчета в процессе выполнения приложения набор даны должен быть открыт. Во время построения отчета можно применять специально создаваемые наборы данных и располагать его на форме, при всем этом источник данных DataSource не требуется. На практике компонент QuickRep обычно связывается с набором данных, записи которого показываются на форме в зрительных компонентах. В этом случае в отчет попадают записи, удовлетворяющие, к примеру, аспекту фильтрации и сортировки, задаваемому юзером.
отчет состоит из отдельных полос – составных частей отчета (Набросок 5), которые определяют содержание и вид сделанного документа. Полоса представляет собой элемент отчета. Любой элемент располагаются на собственном месте и предназначен для отображения соответственных компонент отчета и вывода данных.
Конструирование отчета в главном аналогично конструированию формы. Управлять наличием полос в отчете можно при помощи характеристики Bands множественного типа TQuickRepBadns. При разработки приложения включение/отключение полосы производится установкой логического значения соответственного подсвойства характеристики Bands, к примеру, для полосы заголовка отчета сиим подсвойством является HasTitle. При помощи этого характеристики можно включать полосы: верхний колонтитул, заголовок отчета, заглавия столбцов, область данных, результат отчета, нижний колонтитул. Так же эти полосы можно вставлять в отчет при помощи компонента полосы QRBand.
Полоса отчета (компонент QRBand) является главный составной частью отчета, на которой располагаются остальные его составляющие. Типы полосы определяются свойством BandType типа TQRBandType, которое может принимать последующие значения:
— rbTitle – заголовок отчета;
— rbpageHeader – верхний колонтитул;
— rbDetail – данные записей набора данных;
— rbPageFooter – нижний колонтитул;
— rbSummary – результат отчета;
— rbGroudHeader – заголовок группы, который находится для каждой группы;
— rbGroudFooter – примечание группы, которое выводится для каждой группы;
— rbSubDetail – данные подчиненного набора данных для отчета «мастер — детализированный»;
— rbColumnHeader – заглавия столбцов, печатаемые один раз на каждой страничке над данными.
При установки типа полосы она автоматом располагается на собственном месте в отчете выравнивается по ширине странички отчета с учетом левого и правого полей. Разраб не имеет способности переместить полосу на другое пространство при помощи мыши. Поменять ширину полосы можно косвенно, изменяя размеры страничек и полей.
При разработке в отчет необходимо включить не наиболее одной полосы всякого вида, потому что при печати отчета «излишние» полосы 1-го и такого же вида учитываться не будут. к примеру, если в отчет включены две полосы заголовка отчета, то ошибки транзакции не возникает, но в качестве заголовка употребляется 1-ая из этих полос. Любая полоса может иметь отдельную рамку, которой управляет свойство Frame,не отличающегося от аналогичного характеристики самого компонента отчета QuickRep.
Заголовок отчета выводиться один раз на первой страничке сходу под верхним колонтитулом, если он есть. В полосе заголовка обычно располагаются надписи QRLabel, содержащие требуемый текст, обычно, заглавие всего отчета. По мере необходимости в заголовке можно расположить, к примеру, сведения о заглавии, адресе и телефоне организации, также логотип.
Колонтитулы печатаются сначала и конце каждой странички, в их обычно выводятся сведения о дате, время печать, также номер странички. Для этого в полосах колонтитулов почаще всего располагаются составляющие QRSysData , которым инсталлируются требуемое к примеру, QRLabel для вывода на каждой страничке наименования организации.
Опосля сотворения полосы определенного типа в ней располагаются надлежащие компонент. При всем этом нужно лишь составляющие странички QReport. Размещение на полосе остальных компонент, не взывает ошибки транзакции, но в сформированный отчет такие составляющие не попадают. Можно расположить компонент отчета и вне полосы, на компоненте-отчете QuickRep. В этом случае он будет выводиться на каждой страничке отчета. Обычно употребляются последующие составляющие отчета:
— QRTable – надпись, содержащая текст;
— QRDBText – значение поля записи, обычно располагается в полосе данных;
— QRExpr –
— QRSysData – системная информация, обычно применяемая для итоговых полос и полос колонтитулов;
— QRImage – графический обзор(к примеру, логотип организации);
— QRShape – геометрическая фигура, размещаемая в хоть какой полосе, так же дозволяет оформить сетку вокруг выводимых данных.
Возможность автоматического конфигурации размеров содержащего текст компонента по размеру текста управляет свойство AutoSize. По дефлоту размер текстового компонента автоматом подстраивается под находящийся в нем текст, потому что свойство AutoSize имеет размеры этих компонент должны быть неизменными.
Полосы заголовков столбцов и данных является главными полосами, в каких располагаются составляющие, обеспечивающие табличный вывод содержимого набора данных. Заглавия столбцов выводятся на любом листе отчета.
Для заголовка столбцов данных в полосу заголовков обычно помещаются составляющие QRLabel, котором находится тексте, соответственный полям данных.
Для вывода значений полей записей в полосу данных обычно помещаются составляющие QRDBText и QRExpr. имя набора даны, указывается в свойстве DataSet, чьё имя поля задается в свойстве DataFileld.
На шаге разработки в отчете находится лишь одна полоса данных, но при форматировании отчета отдельная полоса данных будет выведена для каждой записи отчета. Если набор данных является пустым и не содержит записей, то область данных не выводится.
Компонент QRExpr дозволяет вставлять в отчет значение выражения, рассчитываемого обычно с ролью разных полей записей. Выражение заносится в свойство Expression типа String. Внедрение компонента QRExpr аналогично использованию вычисляемых полей набора данных. Но во время просмотра отчета на шаге разработки значения компонент QRExpr выводятся, в то время как
Итоговая полоса отчета выводится один раз в конце отчета сходу опосля полосы данных. В данной полосе обычно стоят или итоговые сведения отчета, к примеру, среднее и наибольшее значения по данным какого-нибудь поля. В итоговой полосе обычно располагается компонент QRLabel для вывода записей и QRExpr для вывода значения выражения.
Можно выделить последующие виды отчетов.
Обычный отчет представляет собой отчет на базе данных из 1-го набора данных и содержит сведения, которые выводятся в табличном виде без доп условии, к примеру, группирование данных. Размещение и вид печатаемых в отчете данных подобны размещению и виду данных, отображаемы в сетке DBGrid. Различием будет то, что данные отчета располагаются не на форме, а на картонном документе, и их недозволено редактировать.
Обычный отчет может содержать последующие полосы, перечисляемые в порядке размещения на страничке: верхний колонтитул; заголовок отчета; заглавия столбцов; данные; результат отчета; нижний колонтитул.
Выводимые в отчете данные можно группировать по определённому признаку. Для группирования записей отчета по определенному полю в наборе данных должен быть установлен текущий индекс, построенный по этому полю. Если индексу не задан либо установлен по другому полю, то ошибок компиляции не возникает, то группирование записей производится некорректно. Можно группировать данные, находящиеся в одном наборе данных, либо данные из связанных наборов данных.
В отчете с группирование данных заместо полосы Detail необходимо применять комбинацию полос:
1) QRGroup – заглавие Group Header;
2) QRBand – полоса даны, заглавие Detail;
3) QRBand – полоса нижнего колонтитула группы, заглавие Group Footer.
Эти полосы должны размещаться в обозначенном порядке. Если группа не имеет нижнего колонтитула, то
На практике наборы данных почаще всего связываются отношением «главный-подчиненный» методом. Таковой отчет содержит:
— Заголовок отчета;
— Заглавия столбцов;
— области данных – в качестве набора данных устанавливается основной набор. В ней обычно располагаются составляющие QRDBText, текст, который является заголовками столбцов даны детализированной области;
— Области детализации – устанавливается подчиненный набор данных. В ней обычно размещаются составляющие QRDBText и QRExpr, при помощи которых выводятся значения полей записей подчиненного набора данных;
— Нижний колонтитул странички.
Составной отчет соединяет воединыжды внутри себя несколько отчетов и представлен компонентом QRCompositeReport, который можно расположить на хоть какой форме. На исходном шаге составной отчет не содержит ни 1-го отчета. Для прибавления к составному отчету новейшего отчета употребляется событие OnAddReport, при всем этом добавляемые отчеты должны быть за ранее подготовлены. Свойство Reports составного отчета содержит перечень отчетов. Новейшие отчеты добавляются к этому списку способом Add.[5]
3.5 Создание запросов на языке
SQL
При писании программного продукта для выбора студентов из базы данных по определенным аспектам употреблялся язык запросов SQL, потому что этот язык употребляется Delphi и Access.
SQL символизирует собой Структурированный язык Запросов. Это — язык, который дает возможность создавать и работать в реляционных базах данных, являющихся наборами связанной инфы, сохраняемой в таблицах.
Информационное место становится наиболее унифицированным. Это привело к необходимости сотворения обычного языка, который мог бы употребляться в большенном количестве разных видов компьютерных сред. Обычный язык дозволит юзерам, знающим один набор установок, применять их для сотворения, нахождения, конфигурации и передачи инфы — независимо от того, работают ли они на индивидуальном компе, сетевой рабочей станции, либо на всепригодной ЭВМ . В нашем все наиболее и наиболее взаимосвязанном компьютерном мире, юзер снабженный таковым языком, имеет большущее преимущество в использовании и обобщении инфы из ряда источников при помощи огромного количества методов. Элегантность и независимость от специфичности компьютерных технологий, также его поддержка фаворитами индустрии в области технологии реляционных баз данных, сделало SQL (и, возможно, в течение обозримого грядущего оставит его) главным обычным языком.[2]
язык SQL предназначен для манипулирования данными в реляционных базах данных, определения структуры баз данных и для управления правами доступа к данным в многопользовательской среде. Потому, в язык SQL в качестве составных частей входят:
— язык манипулирования данными (Data Manipulation Language, DML);
— языкопределенияданных (Data Definition Language, DDL);
— язык управления данными (Data Control Language, DCL).
Это не отдельные языки, а разные команды 1-го языка. Такое деление проведено лишь только исходя из убеждений различного многофункционального предназначения этих установок.
язык манипулирования данными употребляется, как это следует из его наименования, для манипулирования данными в таблицах баз данных. Он состоит из 4 главных установок:
SELECT (избрать)
INSERT (вставить)
UPDATE (обновить)
DELETE(удалить)
язык определения данных употребляется для сотворения и конфигурации структуры базы данных и ее составных частей — таблиц, индексов, представлений (виртуальных таблиц), также триггеров и сохраненных процедур. Главными его командами являются:
CREATE DATABASE (сделать базу данных);
CREATE TABLE (сделать таблицу);
ALTER DATABASE (видоизменять базу данных);
ALTER TABLE (видоизменять таблицу);
DROP DATABASE (удалить базу данных);
DROP TABLE (удалить таблицу);
DROP INDEX (удалить индекс);
DROP PROCEDURE (удалить сохраненную функцию).
язык управления данными употребляется для управления правами доступа к данным и выполнением процедур в многопользовательской среде. Наиболее буквально его можно именовать “язык управления доступом”. Он состоит из 2-ух главных установок: GRANT (отдать права), REVOKE (забрать права)
Исходя из убеждений прикладного интерфейса есть две разновидности установок SQL:
— интерактивный SQL;
— интегрированный SQL.
Интерактивный SQL употребляется в особых утилитах (типа WISQL либо DBD), позволяющих в интерактивном режиме вводить запросы с внедрением установок SQL, посылать их для выполнения на и получать результаты в созданном для этого окне.
Интегрированный SQL употребляется в прикладных программках, позволяя им посылать запросы к серверу и обрабатывать приобретенные результаты, в том числе сочитая set-ориентированный и record-ориентированный подходы.
Более принципиальной командой языка манипулирования данными является команда SELECT.
Операция подборки дозволяет получить все строчки (записи) или часть строк одной таблицы.
К логическим операторам относятся известные операторы AND, OR, NOT, дозволяющие делать разные логические деяния: логическое умножение (AND, “пересечение критерий”), логическое сложение (OR, “объединение критерий”), логическое отрицание (NOT, “отрицание критерий”). В наших примерах мы уже применяли оператор AND. Внедрение этих операторов дозволяет гибко “настроить” условия отбора записей. Оператор AND значит, что общий предикат будет настоящим лишь тогда, когда условия, связанные по “AND”, будут истинны.
Оператор OR значит, что общий предикат будет настоящим, когда хотя бы одно из критерий, связанных по “OR”, будет настоящим. Оператор NOT значит, что общий предикат будет настоящим, когда условие, перед которым стоит этот оператор, будет неверным. В одном предикате логические операторы производятся в последующем порядке: поначалу производится оператор NOT, потом — AND и лишь опосля этого — оператор OR. Для конфигурации порядка выполнения операторов разрешается применять скобки.
порядок выводимых строк быть может изменен при помощи опционального (доп) предложения ORDER BY в конце SQL-запроса.
Метод упорядочивания определяется доп зарезервированными словами ASC и DESC. Методом по дефлоту — если ничего не обозначено — является упорядочивание “по возрастанию” (ASC). Если же обозначено слово “DESC”, то упорядочивание будет выполняться “по убыванию”.[2]
4 процесс РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
В итоге разработки программного продукта вышла рабочая программка по чету посещаемости студентов.
На главной форме выбирается специальность, группа, студент, дата, количество пропущенных часов, по какой причине. Опосля нажатия на клавишу «Утвердить» избранные данных заносятся в базу данных. Так же с данной формы осуществляется переход на остальные формы.
Используемыекомпоненты: DataSource, DBGrid, ADOQuery, ADOTable, Label, Button, ComboBox, DateTimePicker, MainMenu.
Кодпрограммы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, DB, ADODB, Grids, DBGrids, ComCtrls, Menus;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ADOQuery1: TADOQuery;
ADOTable1: TADOTable;
ADOTable2: TADOTable;
ADOTable3: TADOTable;
Label8: TLabel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Button1: TButton;
ComboBox6: TComboBox;
ComboBox5: TComboBox;
ComboBox4: TComboBox;
ComboBox3: TComboBox;
ComboBox2: TComboBox;
ComboBox1: TComboBox;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
DateTimePicker1: TDateTimePicker;
N3: TMenuItem;
N4: TMenuItem;
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit3, Unit2, Unit7;
{$R *.dfm}
procedure TForm1.ComboBox1Change(Sender: TObject);
var pr:String;
begin
ADOTable1.Open;
ADOTable1.First;
ComboBox2.Items.Clear;
While not ADOTable1.Eof do
begin
if ADOTable1.Fieldbyname(‘Spesi’).AsString=ComboBox1.Text Then
ComboBox2.Items.Add(ADOTable1.fieldbyname(‘Gruppa’).AsString);
ADOTable1.Next;
end;
ADOTable1.Close;
ComboBox2.Sorted:=True;
end;
procedure TForm1.ComboBox2Change(Sender: TObject);
var pr1:String;
begin
ADOTable2.Open;
ADOTable2.First;
ComboBox3.Items.Clear;
While not ADOTable2.Eof do
begin
if ADOTable2.Fieldbyname(‘Gruppa’).AsString=ComboBox2.Text Then
ComboBox3.Items.Add(ADOTable2.fieldbyname(‘FIO’).AsString);
ADOTable2.Next;
end;
ADOTable2.Close;
ComboBox3.Sorted:=True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOTable3.Insert;
ADOTable3.FieldByName(‘Spesi’).AsString:=Combobox1.Text;
ADOTable3.FieldByName(‘Gruppa’).AsString:=Combobox2.Text;
ADOTable3.FieldByName(‘FIO’).AsString:=Combobox3.Text;
ADOTable3.FieldByName(‘Date’).AsString:=DateToStr (DateTimePicker1.Date);
ADOTable3.FieldByName(‘Uvazh’).AsString:=Combobox4.Text;
ADOTable3.FieldByName(‘Neuvazh’).AsString:=Combobox5.Text;
ADOTable3.FieldByName(‘Bolezn’).AsString:=Combobox6.Text;
ADOTable3.Post;
ADOTable3.Close;
ADOTable3.Open;
ComboBox3.ClearSelection;
ComboBox4.Text:=’0′;
ComboBox6.Text:=’0′;
ComboBox5.Text:=’0′;
end;
procedure TForm1.N1Click(Sender: TObject);
begin
Form3.Show;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Form2.Show;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
form7.ADOTable1.UpdateBatch;
Form7.Show;
end;
end.
На форме корректировки данных осуществляется изменение либо удаление ранее введенных данных.
Используемыекомпоненты: DataSource, DBGrid, ADOTable, MainMenu, Label, DBNavigator.
Кодпрограммы:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, DB, ADODB, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls;
type
TForm2 = class(TForm)
DBNavigator1: TDBNavigator;
DBGrid1: TDBGrid;
ADOTable1: TADOTable;
DataSource1: TDataSource;
MainMenu1: TMainMenu;
N1: TMenuItem;
DataSource2: TDataSource;
DBNavigator2: TDBNavigator;
DBGrid2: TDBGrid;
ADOTable2: TADOTable;
Label1: TLabel;
procedure N1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.N1Click(Sender: TObject);
begin
close;
end;
end.
На форме статистики идет поиск студентов по специальности, группе, ФИО, либо дате. Так же можно избрать студентов имеющих пропуски по непочтительным причинам. Выводится количество пропусков, по какой причине и их процентное соотношение, среднее количество пропущенных часов на 1-го человека. Все отысканные записи могут быть выведены на печать в виде перечня.
Используемыекомпоненты: DataSource, DBGrid, ADOQuery, GroupBox, CheckBox, ADOTable, Label, Button, MainMenu.
Кодпрограммы:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, Menus;
type
TForm3 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ADOQuery1: TADOQuery;
GroupBox1: TGroupBox;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
CheckBox4: TCheckBox;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Label6: TLabel;
Edit9: TEdit;
Button2: TButton;
Button3: TButton;
Label7: TLabel;
MainMenu1: TMainMenu;
Label8: TLabel;
N2: TMenuItem;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Label9: TLabel;
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit4, Unit5, Unit6, Unit1;
{$R *.dfm}
procedure TForm3.Button2Click(Sender: TObject);
Var s, a,b,c,d:real;
begin
ADOQuery1.First;
a:=0;
b:=0;
c:=0;
d:=0;
while not ADOQuery1.Eof do begin
a:=a+ADOQuery1.FieldByName(‘Uvazh’).AsFloat;
b:=b+ADOQuery1.FieldByName(‘Bolezn’).AsFloat;
c:=c+ADOQuery1.FieldByName(‘Neuvazh’).AsFloat;
d:=a+b+c;
ADOQuery1.Next;
end;
Edit6.Text:=FloatToStr(a);
Edit7.Text:=FloatToStr(b);
Edit8.Text:=FloatToStr(c);
Edit9.Text:=FloatToStr(d);
d:=100/d;
edit10.Text:=FloatToStr(a*d) ;
edit11.Text:=FloatToStr(b*d) ;
edit12.Text:=FloatToStr(c*d) ;
end;
procedure TForm3.Button3Click(Sender: TObject);
begin
if CheckBox1.Checked then
begin
Form4.QRLabel10.Caption:=Edit9.Text;
Form4.QRLabel11.Caption:=Edit6.Text;
Form4.QRLabel12.Caption:=Edit7.Text;
Form4.QRLabel13.Caption:=Edit8.Text;
Form4.QRLabel14.Caption:=Edit1.Text;
Form4.QuickRep1.Preview;
end;
if CheckBox2.Checked then
begin
Form5.QRLabel9.Caption:=Edit9.Text;
Form5.QRLabel10.Caption:=Edit6.Text;
Form5.QRLabel11.Caption:=Edit7.Text;
Form5.QRLabel12.Caption:=Edit8.Text;
Form5.QRLabel13.Caption:=Edit2.Text;
Form5.QuickRep1.Preview;
end;
if CheckBox3.Checked then
begin
Form6.QRLabel8.Caption:=Edit9.Text;
Form6.QRLabel9.Caption:=Edit6.Text;
Form6.QRLabel10.Caption:=Edit7.Text;
Form6.QRLabel11.Caption:=Edit8.Text;
Form6.QRLabel12.Caption:=Edit3.Text;
Form6.QuickRep1.Preview;
end;
end;
procedure TForm3.Button1Click(Sender: TObject);
var s:String;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
if CheckBox1.Checked then
ADOQuery1.SQL.Add(‘SELECT *FROM Student WHERE (((Student.Spesi)=»‘+Edit1.Text+'»));’);
if CheckBox2.Checked then
ADOQuery1.SQL.Add(‘SELECT * FROM Student WHERE (((Student.Gruppa)=»‘+Edit2.Text+’ «));’);
if CheckBox3.Checked then
ADOQuery1.SQL.Add(‘SELECT * FROM Student WHERE (((Student.FIO)=»‘+Edit3.Text+’ «));’);
if CheckBox4.Checked then
ADOQuery1.SQL.Add(‘SELECT * FROM Student WHERE (((Student.Date)=»‘+Edit4.Text+’ «));’);
//ShowMessage(ADOQuery1.SQL.Text);
ADOQuery1.Active:=True;
end;
procedure TForm3.N2Click(Sender: TObject);
begin
close;
end;
end.
На форме справочников добавляются группы и фамилии студентов, также специальности и группы.
Используемыекомпоненты: DataSource, DBGrid, ADOTable, Label, MainMenu,DBNavigator.
Кодпрограммы:
unit Unit7;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, ExtCtrls, DBCtrls, Menus;
type
TForm7 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ADOTable1: TADOTable;
Label1: TLabel;
MainMenu1: TMainMenu;
N1: TMenuItem;
DBNavigator1: TDBNavigator;
procedure N1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
{$R *.dfm}
procedure TForm7.N1Click(Sender: TObject);
begin
form7.Close;
end;
Все отысканные результаты на форме статистики можно вывести на экран в виде отчета и распечатать его.
Используемыекомпоненты:QRLabel, QuickRep, PageHeaderBand, TitleBand, DetailBand, SummaryBand, QRDBText.
5 ПРОГРАММНАЯ И ЭКСПЛУАТАЦИОННАЯ ДОКУМЕНТАЦИЯ
Ведомость эксплуатационных документов (ГОСТ 19.507-79).
К эксплуатационных документации относится последующий комплекс документов:
1) описание программки (ГОСТ 19.402-78), в каком содержатся сведения о логической структуре и функционировании программного продукта;
2) техническое задание (ГОСТ 19.201-78), определяющее требования, предъявляемые к программному продукту, нужные стадии и сроки разработки, виды испытаний;
3) управление оператора (ГОСТ 19.505-79) — сведения, нужные для обеспечения процедуры общения оператора с ЭВМ в процессе выполнения (работы) программного продукта;
Описание программки (ГОСТ 19.402-78).
1) Общие сведения.
Программный продукт «Учет посещаемости» поможет в контроле за посещаемостью студентов. Внедрение данного программного продукта дозволяет:
— Организовать ввод количества пропущенных часов за любой денек по почтительным (болезнь, отпускные) и непочтительным причинам по каждой специальности, группе, студенту
— Организовать возможность подведения итогов посещаемости по любому студенту, по каждой группе, специальности и в целом по институту (процентное соотношение пропущенных часов по работоспособности»>заболевания
, по почтительным причинам, по непочтительным причинам, количество прогулов на 1 человека, полное количество пропущенных часов по группе, по специальности, по институту)
— Обеспечить формирование списков студентов, имеющих наибольшее количество пропущенных часов по итогам текущего месяца, с начала учебного года
— Обеспечить формирование отчета.
В данном программном продукте употреблялся язык программирования Delphi, базы данных были сделаны с применены MSACCESS.
2) Описание логической структуры.
В процессе работы над программным продуктом была разработана его структура, которая состоит из нескольких форм. Главной формы из которой можно открыть другие.
3) Применяемые технические средства:
— микропроцессор –Pentium 3;
— видеоплата –64 Мб;
— оперативная память – не наименее 256 Мб;
— ОС – Windows XT;
— наличие Microsoft Office ACCESS;
— CD-ROM.
4) Загрузка.
Для пуска программки нужно расположить папку «УЧЕТ ПОСЕЩАЕМОСТИ» на диске D, потом запустить EXE – файл «Учет посещаемости».
Техническое задание (ГОСТ 19.201 – 78).
1) Наименование.
Разработка программного обеспечения по автоматизации учебного процесса в институте «Учет посещаемости».
2) Основанием для сотворения является.
Задание на дипломное проектирование.
3) Предназначение и цель.
Программный продукт предназначен для использования а институте для учета посещаемости.
В данный программный продукт обязано врубаться:
— Рабочую программку «УЧЕТ ПОСЕЩАЕМОСТИ»;
— база данных MSACCESS «БД»;
4) Сохранность.
Данный программный продукт дозволяет заносить конфигурации. Потому что предлагается 1-ая версия программки, содержащая открытый код, которая просит конфигураций и доработки по мере устранения имеющихся ошибок и прибавления новейших функций. Потому вопросец о защите содержащейся в пособии инфы пока не должен решаться.
Управление оператора (ГОСТ 19. 505 – 79).
Для пуска программки нужно открыть папку на диске D, за тем запустить EXE – файл «Учет посещаемости».
Опосля этого следует ввести нужные данные.
Чтоб окончить программку закрыть все ее окна.
При появлении ошибок, сбоев, проблем в работе с программным продуктом, нужно обратиться к спецу в области информационных технологий. Самим юзерам при обнаружении проблем ничего изменять не рекомендуется, потому что программеру будет труднее найти причину появления ошибки.
ЗАКЛЮЧЕНИЕ
Задачей дипломного проекта являлась разработка программного продукта по учету посещаемости (на примере института). Для реализации данной задачки были выполнены последующие этапы:
— Спроектирована логическая модель базы данных
— Спроектирована физическая модель базы данных
— Организован ввод количества пропущенных часов за любой денек по почтительным (болезнь, отпускные) и непочтительным причинам по каждой специальности, группе, студенту
— Предусмотрена возможность корректировки данных
— Организована возможность подведения итогов посещаемости по любому студенту, по каждой группе, специальности и в целом по институту (процентное соотношение пропущенных часов по работоспособности»>заболевания
, по почтительным причинам, по непочтительным причинам, количество прогулов на 1 человека, полное количество пропущенных часов по группе, по специальности, по институту)
— Предусмотрена возможность сопоставления итоговых данных с итогами предшествующего месяца
— Предусмотрена возможность формирования списков студентов, имеющих наибольшее количество пропущенных часов по итогам текущего месяца, с начала учебного года
— Предусмотрена возможность формирования отчета
Данный программный продукт был написан с внедрением Microsoft Office Access для сотворения базы данных и среда разработки программных товаров Delphi, имеющий огромные способности для работы с базами данных. Соединение с базой данных произведено с помощью технологии ADO. Обработка данных выполнялась с помощью операторов языка запросов SQL.
В итоге была сотворена программка «Учет посещаемости», которая быть может применена в схожих учебных заведениях.
В процессе выполнения дипломной работы был сотворен программный продукт, дающий возможность вести учет посещаемости. программка интуитивно ординарна и понятна для хоть какого юзера, для ее использования не необходимо специального обучения. При всем этом она делает в главном все функции, нужные для обычной работы.
C
ПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1 Гофман В. Э., Хомоненко А. Д. Delphi. Резвый старт. — СПб.: БХВ-Петербург, 2003. — 288 с.
2 Гофман В. Э., Хомоненко А. Д. Работа с базами данных в Delphi. — СПб.: БХВ-Петербург, 2001. — 656 с.
3 Боровский А. Н. Программирование в Delphi 2005. — СПб.: БХВ-Петербург, 2005. — 448 с.
4 Дарахвелидзе П. Г., Марков Е. П. Delphi 2005 для Win32. — СПб.: БХВ-Петербург, 2005. — 1136 с.
5 Сорокин А. В. Delphi. Разработка баз данных. — СПб.: Питер, 2005. — 477 с.
6 Фленов М. Е. Библия Delphi. — СПб.: БХВ-Петербург, 2004. — 880 с.
7 Фленов М. Е. Программирование в Delphi очами взломщика. — СПб.: БХВ-Петербург, 2003. — 368 с.
8 Фленов М. Е. Delphi в шуточку и серьезно: что могут хакеры (+CD). — СПб.: Питер. 2006. — 271 с.
9 Архангельский Л.Я. Delphi 2006. Справочное пособие: язык Delphi, классы, функции Win32 и .NET. — М.: ООО «Двучлен-Пресс», 2006 г. — 1 152 с.
10 Фаронов В. В. Delphi 2005. Разработка приложений для баз данных и Веба. — СПб.: Питер, 2006. — 603 с.
11 Карпова Т. С. Базы данных: модели, разработка, реализация. — СПб.: Питер, 2001. — 304 с.
12 DelphiWorld 6.0. электрический справочник.
]]>