Содержание:
Исследовательская часть
Постановка задачи
Общие сведения о языке Delphi
Основы разработки баз данных
Конструкторская часть
Структура БД
Разработка конвертера таблицы Excel в БД
Разработка интерфейса главной формы БД
Разработка модуля отображения БД
Разработка средств редактирования БД
Разработка системы поиска информации в БД
Разработка функции перехода в следующий семестр
Технологическая часть
Системные требования и характеристики программы
Руководство администратора программы
Инструкция по эксплуатации
Исследовательская часть
1.1 Предметная область
До недавнего времени в профкоме студентов КФ МГТУ им. Н.Э. Баумана для учёта членов профсоюза использовалась база данных, составленная с использованием программ MS Excel. В этой базе хранились сведения о фамилии, имени и отчестве студента, факультете и группе. Это не обеспечивало учёт поощрений и информации о них, такой как, например, сумма поощрений и дата её выдачи, а так же в такой базе было очень трудно вести счёт поездок каждого студента по линии профкома.
Для устранения этих недостатков необходимо было разработать новую программу, обеспечивающую при этом не только хранение всей вышеперечисленной информации, но и обладающую возможностью загрузки информации из старой базы данных. Новая программа должна работать при минимальном количестве установленных программных компонентов, обеспечивать защиту целостности данных.
1.2 Общие сведения о языке Delphi
Delphi— среда разработки, использует язык программирования Delphi, разработанный фирмой Borland и изначально реализованный в её пакете Borland Delphi, от которого и получил в 2003 году своё нынешнее название. Object Pascal по сути является наследником языка Pascal с объектно-ориентированными расширениями.
Изначально среда разработки была предназначена исключительно для разработки приложений Microsoft Windows, затем был реализован также для платформ GNU/Linux (как Kylix), однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и, вскоре после этого, было объявлено о поддержке Microsoft .NET.
Delphi — результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль начиная с версии 5.5 добавил в Паскаль объектно-ориентированные свойства, а Delphi — объектно-ориентированный язык программирования с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией.
Де-факто Object Pascal, а затем и язык Delphi являются функциональными наращиваниями Turbo Pascal.
1.3Общие сведения о создании баз данных
С точки зрения пользователя, база данных — это программа, которая обеспечивает работу с информацией. При запуске такой программы на экране, как правило, появляется таблица, просматривая которую пользователь может найти интересующие его сведения. Если система позволяет, то он может внести изменения в базу данных: добавить новую информацию или удалить ненужную.
С точки зрения программиста, база данных — это набор файлов, содержащих информацию. Разрабатывая базу данных для пользователя, программист создает программу, которая обеспечивает работу с файлами данных.
В настоящее время существует достаточно большое количество программных систем, позволяющих создавать и использовать локальные (dBASE, FoxPro, Access, Paradox) и удаленные (Interbase, Oracle, Sysbase, Infomix, Microsoft SQL Server) базы данных.
В состав Delphi входят компоненты, позволяющие создавать программы работы с файлами данных, созданными различными системами: от dBASE до Infomix и Oracle. Delphi также позволяет программисту, используя утилиту Borland Database Desktop, создавать файлы баз данных в различных форматах.
Данные локальной базы данных (файлы данных) находятся на одном (локальном) устройстве, в качестве которого может выступать диск компьютера или сетевой диск (диск другого компьютера, работающего в сети).
Для обеспечения разделения данных (доступа к данным) между несколькими пользователями, в качестве которых выступают программы, работающие на одном или нескольких компьютерах, в локальных базах данных применяется метод, получивший название блокировка файлов. Суть этого метода заключается в том, что пока данные используются одним пользователем, другой пользователь не может работать с этими данными, т. е. данные для него закрыты, заблокированы.
Paradox, dBase, FoxPro и Access — это локальные базы данных.
Данные (файлы) удаленной базы данных находятся на удаленном компьютере. (Следует обратить внимание, что каталоги удаленного компьютера не могут рассматриваться как сетевые диски.)
Программа работы с удаленной базой данных состоит из двух частей: клиентской и серверной. Клиентская часть программы, работающая на компьютере пользователя, обеспечивает взаимодействие с серверной программой: посредством запросов, передаваемых на удаленный компьютер, предоставляет доступ к данным.
Серверная часть программы, работающая на удаленном компьютере, принимает запросы, выполняет их и пересылает данные клиентской программе. Запросы представляют собой команды, представленные на языке SQL (Structured Query Language) — языке структурированных запросов.
Программа, работающая на удаленном сервере, проектируется таким образом, чтобы обеспечить одновременный доступ к информации нескольким пользователям. При этом для обеспечения доступа к данным вместо механизма блокировки файлов используют механизм транзакций.
Транзакция — это некоторая последовательность действий, которая должна быть обязательно выполнена над данными перед тем, как они будут переданы. В случае обнаружения ошибки во время выполнения любого из действий вся последовательность действий, составляющая транзакцию, повторяется снова. Таким образом, механизм транзакций обеспечивает защиту от аппаратных сбоев. Он также обеспечивает возможность многопользовательского доступа к данным.
Разработка программы работы с удаленной базы данных — сложная и трудоемкая задача. Ее решение предполагает наличие у разработчика глубоких знаний и большого опыта разработки программного обеспечения. Поэтому в данной книге задача разработки удаленных баз данных не рассматривается.
База данных — это набор однородной, как правило, упорядоченной по некоторому критерию, информации. База данных может быть представлена в "бумажном" или в компьютерном виде.
Типичным примером "бумажной" базы данных является каталог библиотеки — набор бумажных карточек, содержащих информацию о книгах. Информация в этой базе однородная (содержит сведения только о книгах) и упорядоченная (карточки расставлены, например, в соответствии с алфавитным порядком фамилий авторов). Другими примерами "бумажной" базы данных являются телефонный справочник и расписание движения поездов.
Компьютерная база данных представляет собой файл (или набор связанных файлов), содержащий информацию.
База данных состоит из записей. Каждая запись содержит информацию об одном экземпляре. Записи состоят из полей. Каждое поле содержит информацию об одной характеристике экземпляра. Следует обратить внимание, что каждая запись состоит из одинаковых полей. Некоторые поля могут быть не заполнены, однако они все равно присутствуют в записи.
Следует обратить внимание, что каждая запись состоит из одинаковых полей. Некоторые поля могут быть не заполнены, однако они все равно присутствуют в записи.
Каждая таблица физически хранится в отдельном файле. Однако отождествлять базу данных и таблицу нельзя, так как довольно часто поля одной записи распределены по нескольким таблицам и, следовательно, находятся в разных файлах.
В простейшем случае источником информации для программы, работающей с базой данных, может быть вся таблица. Однако, как правило, пользователя интересует не вся информация, находящаяся в базе данных, а только какая-то ее часть. Он выбирает и просматривает только некоторые, удовлетворяющие его запросу записи. Поэтому в модель базы данных помимо таблицы, представляющей собой всю базу данных, было введено понятие запроса, являющегося выборкой, т. е. группой записей базы данных.
Разрабатывая программу работы с базой данных, программист не может знать, на каком диске и в каком каталоге будут находиться файлы базы данных во время ее использования. Например, пользователь может поместить базу данных в один из каталогов дисков С:, D: или на сетевой диск. Поэтому возникает проблема передачи в программу информации о месте нахождения файлов базы данных.
В Delphi проблема передачи в программу информации о месте нахождения файлов базы данных решается путем использования псевдонима базы данных. Псевдоним (Alias) — это короткое имя, поставленное в соответствие реальному, полному имени каталога базы данных. Программа работы с базой данных для доступа к данным использует не реальное имя, а псевдоним.
Для доступа к информации программа, обеспечивающая работу с базой данных, подключает библиотеку Borland Database Engine (BDE), которая, в свою очередь, использует конфигурационный файл, содержащий информацию о всех зарегистрированных в системе псевдонимах.
Псевдоним базы данных может быть создан (зарегистрирован) при помощи утилиты BDE Administrator. Эта же утилита позволяет изменить каталог, связанный с псевдонимом.
База данных — это набор файлов (таблиц), в которых находится информация. Как правило, база данных состоит из нескольких таблиц, которые размещают в одном каталоге. Каталог для новой базы данных создается обычным образом, например, при помощи Проводника.Каждая таблица представляет собой совокупность строк и столбцов, где строки соответствуют экземпляру объекта, конкретному событию или явлению, а столбцы – атрибутам(признакам, характеристикам, параметрам) этого объекта, события, явления.
В каждой таблице БД может существовать первичный ключ – поле или набор полей, однозначно идентифицирующий запись. Значение первичного ключа в таблице должно быть уникальным, то есть в таблице не должно существовать двух или более записей с одинаковым значением первичного ключа.
Таблицу можно создать, воспользовавшись входящей в состав Delphi утилитой Borland Database Desktop или организовав SQL-запрос к серверу базы данных.
SQL (англ. Structured Query Language — язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. Вопреки существующим заблуждениям, SQL является информационно-логическим языком, а не языком программирования.SQL основывается на реляционной алгебре.
Язык SQL делится на три части:
операторы определения данных (англ. Data Definition Language, DDL)
операторы манипуляции данными (англ. Data Manipulation Language, DML)
операторы определения доступа к данным (англ. Data Control Language, DCL)
Преимущества:
Независимость от конкретной СУБД
Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую. Существуют системы, разработчики которых изначально закладывались на применение по меньшей мере нескольких СУБД (например: система электронного документооборота Documentum может работать как с Oracle, так и с Microsoft SQL Server и IBM DB2). Естественно, что при применении некоторых специфичных для реализации возможностей такой переносимости добиться уже очень трудно.
Наличие стандартов
Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка. Правда, стоит обратить внимание, что сам по себе стандарт местами чересчур формализован и раздут в размерах, например, Core-часть стандарта SQL:2003 представляет собой более 1300 страниц текста.
Декларативность
С помощью SQL программист описывает только то, какие данные нужно извлечь или модифицировать. То, каким образом это сделать, решает СУБД непосредственно при обработке SQL-запроса. Однако не стоит думать, что это полностью универсальный принцип — программист описывает набор данных для выборки или модификации, однако ему при этом полезно представлять, как СУБД будет разбирать текст его запроса. Особенно критичны такие моменты становятся при работе с большими базами данных и со сложными запросами — чем сложнее сконструирован запрос, тем больше он допускает вариантов написания, различных по скорости выполнения, но одинаковых по итоговому набору данных.
Недостатки:
1) Несоответствие реляционной модели данных
Создатель реляционной модели данных Эдгар Кодд, Кристофер Дейт и их сторонники указывают на то, что SQL не является истинно реляционным языком. В частности они указывают на следующие проблемы SQL[3]:
А) Повторяющиеся строки
Б) Неопределённые значения (nulls)
В) Явное указание порядка колонок слева направо
Г) Колонки без имени и дублирующиеся имена колонок
Д) Отсутствие поддержки свойства «=»
Е) Использование указателей
Ж) Высокая избыточность
В опубликованном Кристофером Дейтом и Хью Дарвеном Третьем Манифесте они излагают принципы СУБД следующего поколения и предлагают язык Tutorial D, который является подлинно реляционным.
2) Сложность
Хотя SQL и задумывался, как средство работы конечного пользователя, в конце концов он стал настолько сложным, что превратился в инструмент программиста.
Отступления от стандартов
Несмотря на наличие международного стандарта ANSI SQL-92, многие компании, занимающиеся разработкой СУБД (например, Oracle, Sybase, Microsoft, MySQL AB), вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Таким образом появляются специфичные для каждой конкретной СУБД диалекты языка SQL.
Сложность работы с иерархическими структурами
Ранее SQL не предлагал стандартного способа манипуляции древовидными структурами. Некоторые поставщики СУБД предлагали свои решения. Например, Oracle использует выражение CONNECT BY. В настоящее время в качестве стандарта принята рекурсивная конструкция WITH.
Для управления базой данных используется СУБД. Система управления базами данных (СУБД) — специализированная программа (чаще комплекс программ), предназначенная для организации и ведения базы данных. Основные функции СУБД:
управление данными во внешней памяти (на дисках);
управление данными в оперативной памяти с использованием дискового кэша;
журнализация изменений, резервное копирование и восстановление базы данных после сбоев;
поддержка языков БД (язык определения данных, язык манипулирования данными).
Обычно современная СУБД содержит следующие компоненты:
ядро, которое отвечает за управление данными во внешней и оперативной памяти и журнализацию,
процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода,
подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД
а также сервисные программы (внешние утилиты), обеспечивающие ряд дополнительных возможностей по обслуживанию информационной системы.
2. Конструкторская часть
2.1 Структура БД
БД состоит из 7 таблиц: 5 по 5 факультетам, содержащие список групп, относящихся к конкретному факультету(КМК.db, МТК.db, СЭК.db, ФНК.db, ЭИУК.db), одна содержащая список 5 факультетов(Facultets.db), и еще одна – главная, содержащая подробные сведения о каждом студенте, обучающемся в КФ МГТУ(Students.db). Программа, созданная для управления БД, будет брать и отображать сведения, как правило, лишь из последней таблицы, к остальным же будет обращаться при сортировке, нумерации, редактировании данных в БД и прочих процедурах. Таблица Facultets неизменна.
Таблица Students содержит следующие поля: Номер, ФИО, Факультет, Курс, Группа, Поощрения, Сумма, Дата выдачи, Примечание, Поездки, Примечания.
2.2 Разработка конвертера таблицы Excel в БД
Одна из первых проблем, появившихся при формировании БД, - это перенос существующих данных из простой таблицы в Excel в файл с расширением *.db. Перенести данные ручным набором не представлялось возможным из-за большого количества записей (около 3500). Поэтому помимо основного проекта DataBase был создан проект Converter. Суть его работы заключается в переносе содержимого из файла с расширением *.csv (файл такого формата представляет из себя набор ячеек таблицы Excel, разделенных между собой точкой с запятой), в таблицу Students. Тонкость работы этой программы в том, что работать она будет только для конкретного csv-файла (отформатированного конкретным образом). На выходе мы должны будем получить таблицу Students, в состав которой уже входят все студенты КФ МГТУ, т.е. с заполненными полями Номер, ФИО, Факультет, Курс, Группа. Помимо того, в каждую из 5 баз данных (КМК, МТК, СЭК, ФНК, ЭИУК) запишется список всех групп данного факультета.
2.3 Разработка интерфейса главной формы СУБД
Главная форма для отображения БД использует компонент DBGrid, а для управления БД – главное меню, имеющее следующие пункты: Файл(Функции поиска в БД), Правка (Редактирование информации в БД), Дополнительно (Процедура перевода всех записей в БД на один семестр вперед) и Справка (Открытие файла ReadMe, см. Инструкцию пользователя).
2.4 Разработка модуля отображения БД
При запуске программы мы должны получить наибольшее возможное рабочее пространство занятое компонентом DBGrid, заполненным следующим образом: сортировка осуществляется по полям Факультет, Курс, Группа, и уже в каждой группе происходит отдельная сортировка по фамилии и затем нумерация внутри группы. Для этого используется один компонент Table (отображение всей таблицы Students) и 3 компонента Query, с помощью которых мы будем осуществлять SQL-запросы для различных операций с БД (в том числе – сортировка и нумерация). Для приведения компонента DBGrid к нужному нам виду используется следующая процедура:
procedure Vid_DBGrid;
begin
With Form1.DBGrid1 do begin
//Выравниваем ширину столбцов
Columns[0].Width:=20;
Columns[1].Width:=250;
Columns[3].Width:=30;
Columns[5].Width:=100;
Columns[6].Width:=55;
Columns[7].Width:=90;
Columns[8].Width:=250;
Columns[9].Width:=100;
Columns[10].Width:=230;
//Делаем столбец поощрения всплывающим списком
With Columns[5].PickList do begin
Add('Мат. помощь');
Add('Соц. стипендия');
Add('Соц. выплаты');
Add('Другие поощрения');
end;
//Делаем столбец поездки всплывающим списком
With Columns[9].PickList do begin
Add('Москва');
Add('Снакт-Петербург');
Add('Юг');
end;
end;
end;
Для сортировки и нумерации БД каждый раз при открытии формы выполняется следующая процедура:
//Открываем БД
Table1.Active:=true;
//Открываем БД с факультетами
With Query3 do begin
Close;
SQL.Clear;
SQL.Add('SELECT *');
SQL.Add('FROM Facultets.db');
Open;
end;
//счетчик записей
n:=0;
//от 1 до количества факультетов
for i:=1 to Query3.RecordCount do begin
//Открываем БД, название которой соответсвует полю факультет текущей записи в БД Факультеты
With Query2 do begin
Close;
SQL.Clear;
SQL.Add('SELECT *');
SQL.Add('FROM '+Query3['Факультет']+'.db');
Open;
end;
//От 1 до количества групп на факультете
for j:=1 to Query2.RecordCount do begin
//Открываем БД студенты и считываем только те записи, в которых поле группа соответствует полю группа в текущей записи БД Факультет
With Query1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT *');
SQL.Add('FROM Students.db');
SQL.Add('WHERE Группа LIKE "'+Query2['Группа']+'"');
SQL.Add('ORDER BY ФИО');
Open;
end;
//От 1 до количества студентов в группе
for k:=1 to Query1.RecordCount do begin
//Добавляем в конец БД студенты запись с порядковым номером студента внутри группы
Table1.AppendRecord([k,Query1['ФИО'], Query1['Факультет'], Query1['Курс'], Query1['Группа'], Query1['Поощрения'], Query1['Сумма'], Query1['Дата выдачи'], Query1['Примечание'], Query1['Поездки'], Query1['Примечания']]);
Query1.Next;
n:=n+1;
end;
//Переходим на следующую группу
Query2.Next;
end;
//Переходим на следующий факультет
Query3.Next;
end;
//Возвращаемся к началу БД студенты
Table1.First;
//Удаляем все записи, кроме недавно добавленных
for i:=1 to n do
Table1.Delete;
2.5 Разработка средств редактирования БД
Также в курсовом проекте предусмотрено добавление и удаление студентов, а также добавление и удаление групп.
Добавление студентов осуществляется в новом окне, а сама процедура добавления заключается в нижеприведенном коде:
//Добавляем запись, поля которой соответствуют текущим значениям 3-х списков и полю Edit1 в конец БД
Form1.Table1.AppendRecord([1,Edit1.Text,ComboBox1.Items[ComboBox1.ItemIndex],ComboBox2.Items[ComboBox2.ItemIndex],ComboBox3.Items[ComboBox3.ItemIndex]]);
Form1.Table1.First;
Затем заново происходит сортировка и нумерация всей БД, чтобы сразу же поставить новую запись именно в то место таблицы Students, где она должна находиться.
Про удаление студентов будет рассказано ниже. Добавление новых групп и удаление старых – процедуры, надобность в которых возникнет лишь в результате создания новых специальностей на факультете или исчезновения старых. Осуществляются эти процедуры добавлением (удалением) записи в таблице относящейся к конкретному факультету.
2.6 Разработка системы поиска информации в БД
В курсовой работе представлено 2 варианта поиска: простой и расширенный. Простой поиск выводит в DBGrid одну запись, поле ФИО которой равно введенному в строке поиска тексту или же начинается с тех же символов.
Примечательность простого поиска в том, что он ищет все записи, соответствующие запросу, но выводит сначала лишь первую, а по кнопке «Искать далее» переходит на следующую запись. По окончании простого поиска в окне появляются 3 новые кнопки: удалить, отобразить все и добавить информацию. Первая удаляет запись, отображающуюся на данный момент, посредством следующего кода:
DataSource2.DataSet:=Table1;
Vid_DBGrid;
Table1.First;
//Находим в БД студенты удаляемую запись
for i:=1 to Table1.RecordCount do begin
if Table1['ФИО']=Query1['ФИО'] then begin
Query1.Close;
s:=Table1['Группа'];
Table1.Delete;
break;
end;
Table1.Next;
end;
//Для всех записей за ней из той же группы уменьшаем порядковый номер на 1
b:=true;
While b=true do
if Table1['Группа']=s then begin
Table1.Edit;
Table1['Номер']:=Table1['Номер']-1;
Table1.Post;
Table1.Next;
end else
b:=false;
Вторая кнопка отображает в DBGrid вновь все записи, при этом осуществляя Refresh всех записей. Третья кнопка вызывает окно добавления информации (см. рис.1), предназначенное для добавления информации к тем студентам, которые получают более одного поощрения или ездили более, чем в одну поездку. Примечательность работы этого окна заключается том, что в поле Сумма будет выводиться общая сумма, полученная студентом с момента выдачи первого поощрения.
рис.1 Окно добавления информации
2.7 Разработка функции перехода в следующий семестр
Один раз в семестр одно из полей нашей БД (Группа) должно меняться, раз в год меняется еще одно поле (Курс), а те записи, значение поля Группа которых заканчивается буквой “Д” (ЭВМ-1Д), должны удаляться из БД, но сохраняться в еще каком-нибудь месте.
Реализовано это в пункте меню Доплонительно аПерейти в след. Семестр. Выпускники при выполнении этой операции удаляются из БД и записываются в файл с расширением *.csv.
procedure TForm1.N14Click(Sender: TObject);
var
i,j,k:integer;
s,st,str:string;
f:textfile;
begin
if MessageDlg('Вы уверены, что хотите перевести всех студентов в следующий семестр?',mtConfirmation,[mbOK, mbCancel],0)=mrOK then begin
assignfile(f,'Выпускники'+DateToStr(Now)+'.csv');
rewrite(f);
for i:=1 to Table1.RecordCount do begin
s:=Table1['Группа'];
j:=0;
str:='';
repeat
j:=j+1;
str:=str+s[j];
until s[j]='-';
st:='';
for k:=j+1 to length(s) do
st:=st+s[k];
if st[length(st)]='Д' then begin
st:=inttostr(Table1['Номер'])+';'+Table1['ФИО']+';'+Table1['Факультет']+';';
st:=st+inttostr(Table1['Курс'])+';'+Table1['Группа']+';';
if Table1['Поощрения']=null then
st:=st+';'
else
st:=st+Table1['Поощрения']+';';
if Table1['Дата выдачи']=null then
st:=st+';'
else
st:=st+Table1['Дата выдачи']+';';
if Table1['Сумма']=null then
st:=st+';'
else
st:=st+Table1['Сумма']+';';
if Table1['Примечание']=null then
st:=st+';'
else
st:=st+Table1['Примечание']+';';
if Table1['Поездки']=null then
st:=st+';'
else
st:=st+Table1['Поездки']+';';
if Table1['Примечания']=null then
st:=st+';'
else
st:=st+Table1['Примечания']+';';
writeln(f,st);
Table1.Delete;
end else begin
j:=strtoint(st) div 10;
if j<11 then begin
with Query2 do begin
Close;
SQL.Clear;
SQL.Add('SELECT *');
SQL.Add('FROM '+Table1['Факультет']+'.db');
SQL.Add('WHERE Группа LIKE "'+Table1['Группа']+'"');
Open;
end;
Table1.Edit;
Table1['Группа']:=str+inttostr(j+1)+s[length(s)];
if (j mod 2)=0 then
Table1['Курс']:=Table1['Курс']+1;
Table1.Post;
if Query2['Группа']<>'' then begin
Query2.Edit;
Query2['Группа']:=Table1['Группа'];
Query2.Post;
end;
Table1.Next;
end else
if j=11 then begin
with Query2 do begin
Close;
SQL.Clear;
SQL.Add('SELECT *');
SQL.Add('FROM '+Table1['Факультет']+'.db');
SQL.Add('WHERE Группа LIKE "'+Table1['Группа']+'"');
Open;
end;
Table1.Edit;
Table1['Группа']:=str+s[length(s)]+'Д';
if (j mod 2)=0 then
Table1['Курс']:=Table1['Курс']+1;
Table1.Post;
if Query2['Группа']<>'' then begin
Query2.Edit;
Query2['Группа']:=Table1['Группа'];
Query2.Post;
end;
Table1.Next;
end;
end;
end;
closefile(f);
end;
end;
3. Технологическая часть
3.1 Системные требования и характеристики программы
1) ОС: Widows 95, 98, 2000, NT, Me, XP, Vista
2) 128 Мб ОЗУ, 1.7 ГГц
3) мышь, клавиатура
4) наличие установленной программы BDE Administrator
Руководство администратора базы данных.
Перед началом работы с базой данных необходимо установить программу BDE Administrator (рис. 1) Эта утилита может устанавливаться как с Delphi так и без него. В этой программе необходимо создать псевдоним базы и указать её местоположение. Для этого заходим в меню Object и выбираем New. В появившемся окне New Database Alias выбираем Standard и нажимаем OK.
рис. 1 Главное окно программы BDE Administrator
В левой колонке вводим псевдоним базы данных. В нашем случае это Profkom. Расположение базы нужно указать в поле Path.
3.3 Руководство пользователя
рис.2 Главное окно программы
На рисунке 2 показано главное окно программы. В нём отображаются поля: “Номер”- номер студента по журналу, “ФИО”- фамилия, имя и отчество студента, ”Факультет”- шифр факультета на котором обучается данный студент, ”Курс” – номер курса на котором обучается студент, соответствующий году обучения студента в университете, “Группа”- шифр и номер группы обучающегося, “Поощрения”- различные поощрения, выдаваемые иногородним студентам, учащимся с тяжёлым материальным положением и так далее, “Сумма”- сумма выданного поощрения, “Дата выдачи”- число, месяц и год когда выдано поощрение, “Примечание”- любая дополнительная информация о выданном поощрении, “Поездки”- поездки от профкома студентов КФ МГТУ и “Примечания”- информация о поездке. Любые изменения, производимые в этом окне, будут сохранены автоматически, но только тогда, когда курсор после необходимых изменений будет переставлен на любую другую ячейку.
Добавление студента в базу данных.
рис. 3 Добавление студента в базу данных
Чтобы добавить студента в таблицу необходимо выбрать меню “Правка”- “Добавить”. В появившемся окне (рис. 3) из выплывающего списка нужно выбрать факультет, курс и группу добавляемого студента. В поле ввода нужно вписать фамилию имя и отчество учащегося. После окончания ввода, нужно нажать кнопку “Добавить”.
Простой поиск студента в базе данных
рис. 4 Простой поиск студента в базе данных
Под “простым поиском” понимается поиск только одного человека в базе данных с возможностью изменения данных о нём. Чтобы воспользоваться простым поиском, необходимо нажать “Файл”- “простой поиск” или воспользоваться быстрым запуском. Для быстрого запуска необходимо одновременно нажать кнопки “Ctrl” и ”F”. В появившемся окне (рис. 4) в поле ввода вводится фамилия, имя и отчество студента после чего нужно нажать кнопку “Искать”. После этих действий отобразиться будет выведена вся информация о студенте. Если в поле ввода фамилия имя отчество были введены не полностью (например, только фамилия) и программа вывела не нужного студента то нужно нажимать кнопку “Искать далее” пока нужный студент не будет найден. Если студента с таким ФИО нет в базе, то будет выведено соответствующее окно с надписью “Ничего не найдено” (рис. 5) Чтобы вы вернуться к главному окну программы нужно нажать кнопку “Отобразить все”.
рис. 5 Окно ошибки, возникающее, если студент не был найден
Удаление студента из базы данных:
рис. 6 Удаление студента из базы данных
Удаление студента производиться с помощью простого поиска (“Файл” – “Простой поиск”). В появившемся окне (рис. 4) необходимо ввести фамилию имя и отчество студента. Но если полностью ФИО неизвестно, то можно ввести только фамилию и имя или только фамилию и даже только первые буквы фамилии. Когда нужный студент найден, нажмите “ОК”. Для его удаления необходимо нажать “Удалить” и в появившемся окне подтверждения удаления нажать “ОК”.
Расширенный поиск
рис. 7 Расширенный поиск
Под расширенным поиском понимается вывод нескольких студентов по определённому общему для них признаку. Из выплывающих списков нужно выбрать признаки, по которым будут выбираться студенты, после чего нужно нажать кнопку “Поиск”. Чтобы вы вернуться к главному окну программы нужно нажать кнопку “Отобразить все”.
Добавление информации о студенте, находящемся в базе данных.
Добавление информации о студенте производится с помощью меню “Файл”- “Простой поиск”. В окне простого поиска (рис. 8) нужно вести ФИО студента и нажимать “Искать далее” пока нужный студент не будет найден. После того, как нужный студент найден, чтобы добавить ему информацию, нужно нажать кнопку “Добавить информацию”.
рис. 8 Добавление информации о студенте
Появится окно добавления информации студенту (рис. ). Чтобы добавить информацию нужно поставить крестики напротив добавляемой информации. После выставления информации появляются дополнительные поля: “Суммы” и “Дата выдачи”. После их заполнения, чтобы изменения вступили в силу, необходимо нажать кнопку “Добавить информацию”. Чтобы вернуться в главное окно программы, нужно нажать “Отобразить все”.
Добавление шифра группы студентов в базу данных
рис. 9 Добавление шифра группы студентов в базу данных
Добавление шифра группы студентов производится только если в базе ещё нет группы с таким названием. Чтобы добавить новую группу, нажмите “Правка”-“Добавить группу”. В появившемся окне (рис. ) нужно выбрать шифр факультета на который добавляется эта группа и ввести шифр создаваемой группы. После окончания ввода, необходимо нажать кнопку “Добавить”.
Перевод всех студентов в следующий семестр.
рис. 10 Перевод всех студентов в следующий семестр
Для перевода студентов в следующий семестр, необходимо нажать “Дополнительно”- “Перевести в следующий семестр”. В появившемся окне (рис. ) для подтверждения нажмите “ОК”. Если при этом увеличивается значение поля “Курс”, то записи, значение этого поля которых равнялось 6, удалятся из базы данных и переместятся в файл с расширением *.csv. Находиться он будет в папке с базой данных, а откроется в Microsoft Office Excel.