Описание формы frmStudent

Описание формы frmStudent. Форма frmStudent приложения блок администрирования Форма содержит четыре основных блока 1. Элемент управления дерево, представляющее базу данных Univer97.mdb в иерархически организованном виде. Этот элемент управления отлично подходит для решения поставленной задачи, так как он отображает иерархически организованные сведения в виде дерева. 2. Рамка Факультет содержит текстовые поля, каждое из которых присоединено к элементу управления данными, который подключен в свою очередь к таблице Fakultet.

Иначе говоря, рамкаFakultet отображает сведения из таблицы Fakultet.

Рисунок 13 Элементы формы frmStudent 3. Рамка Группа отображает данные из таблицы Groups, то есть содержит текстовые поля, связанные с элементом управления данными, который подключен к таблице Groups. 4. Рамка Студент отображает данные из таблицы Student с помощью этого же механизма. 5. Форма содержит также панель инструментов, которая содержит основные команды, встречающиеся в строке меню. 6. Форма содержит также выпадающее меню, основные команды которого продублированы с помощью панели инструментов. 7. Кроме того, форма содержит невидимую табличную сетку для нее установлено свойство Visible False, присоединенную к элементу управления datFakultet.

Она необходима для построения дерева, добавления или удаления группы или студента. 8. Для этой же цели присутствует невидимая сетка, присоединенная к элементу datGroups. 9. Кроме того, присутствует сетка, присоединенная к элементу управления datStudents.

Для нее также установлено свойство Visible, имеющее значение False. 10. ImageList содержит присоединенные изображения, которые используются панелью инструментов. 11. На форме присутствуют четыре элемента управления данными DAO, каждый из которых подключен к таблицам Fakultet, Groups, Students, Results базы данных Univer97.mdb. Элементы управления, которые будут использованы в данной форме, а также значения их основных свойств приведены в таблице 2 Таблица 2 элементы управления формы frmStudent Элемент События Свойство Значение 1. Дерево TreeView Щелчок Click ImageList ImageList1 1. Style 7-PlusMinusPictureText 2. Рамка группа элементов типа текстовое поле Нет DataSource datFakultet 1. DataField Соответствующее имя поля из таблицы Fakultet 3. Рамка группа элементов типа текстовое поле Нет DataSource datGroups 1. DataField Соответствующее имя поля из таблицы Groups 4. Рамка группа элементов типа текстовое поле Нет DataSource datStudent 1. DataField Соответствующее имя поля из таблицы Student 5. Панель инструментов Щелчок Click ImageList ImageList1 6. Строка меню Щелчок Click Name MenuBar1 7. Табличная сетка MsflexGrid Нет DataSource datFakultet 8. Табличная сетка MsflexGrid Нет DataSource datGroups 9. Табличная сетка MsflexGrid Нет DataSource datStudents 10. Список изображений Нет ListImage Прикрепленный список изображений 11. Элементы управления данными Нет DataBaseName Заполняется строкой из настроечного файла iniTest.txt, который содержит полный путь к базе данных Univer97.mdb RecordSource Первоначально - это таблицы базы данных Fakultet, Groups, Student, Results.

Впоследствии значением этого свойства может быть текст SQL-запроса.

Рассмотрим подробнее анатомию элемента управления Дерево.

Дерево состоит из расположенных друг под другом ветвей, состоящих из узлов.

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

На форме имеется элемент управления ImageList1 Узел может быть раскрыт или свернут в зависимости от того, есть ли у него узлы - потомки.

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

Общее количество узлов ограничено лишь объемом памяти компьютера. Приведем синтаксис добавления нового узла в дерево MyTreeView. Add relative, relationship, key, text, image, selectedImage Метод Add имеет параметры, описание которых приведено в таблице 2 Таблица 3 Операнды метода Add добавления узла в дерево данных Параметр Обязательность Описание Relative Необязательный Это ключ существующего узла. С его помощью можно определить в каком отношении к данному узлу находится вновь добавляемый например, является потомком Relationship Необязательный Определяет позицию нового узла по отношению к ключу, указанному параметром Relative Key Необязательный Уникальная строка, которая может использоваться для поиска узла Text Необязательный Строка, появляющаяся в узле Image Необязательный Индекс рисунка в ассоциированном списке изображений SelectedImage Необязательный Индекс того рисунка в ассоциированном списке изображений, которое появляется, если узел выделен Отношении нового узла к узлу, указанному параметром Relative, описывается константами, представленными в таблице 3 Таблица 4 Параметры добавляемого узла по отношению к существующему узлу Константа Описание TvwFirst Узел помещается перед всеми узлами того же уровня, что и узел, заданный параметр Relative TvwLast Узел помещается после всех узлов того же уровня, что и узел, заданный параметром Relative TvwNext Узел помещается после узла, заданного параметром Relative TvwChild Узел становится потомком узла, заданного параметром Relative Алгоритм построения дерева таков При первоначальной загрузке формы происходит подключение к базе данных элементов управления datFakultet, datGroups, datStudents и таким образом табличные сетки, ассоциированные с таблицами базы заполняются значениями из базы Univer97.mdb. Организовав цикл по строкам этих трех табличных сеток добавляем узлы к дереву. Каждый узел ассоциируем со свойством Key следующим образом считываем из табличной сетки MsFlexFak код факультета, из табличной сетки MsFlexGroup - код группы, а из табличной сетки MsFlexStudent код студента и составляет таким образом ключ узла дерева KeyFak2Gr3St5. Это означает, что узел представляет собой студента с кодом 5, кодом группы 3, кодом факультета 2. Если узел представляет собой группу, то ключ узла выглядит примерно так KeyFak2Gr3. Аналогично, если узел дерева представляет собой факультет, то код содержит только сведения о факультете KeyFak2. Впоследствии такая организация ключей узлов дерева оказывается очень удобной.

При щелчке по дереву событие щелчок по дереву возвращает параметр Key - ключ узла. Анализируя составной ключ и выделив из него коды факультета, группы и студента можем обновить данные в присоединенных текстовых полях для факультета, группы и студента с помощью Sql-запроса к базе данных, сделав выборку по трем основным таблицам базы данных Univer97.mdb на соответствие кодов.

Алгоритм построения дерева в виде блок-схемы приведен на рисунке 14 Рисунок 14 Алгоритм построения дерева опирается на анализ трех табличных сеток, прикрепленных к таблицам Fakultet, Groups, Student При добавлении или удалении записей из базы данных Univer97.mdb повторно вызывается описанная выше процедура построения дерева. На форме соблюдены принципы построения пользовательского интерфейса.

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

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

Помните пользователь вообще не знает, что такое DAO. Для него программа - это прежде всего пользовательский интерфейс Коннэл Дж. Visual Basic 6. Введение в программирование баз данных Пер. с англ, с. 435. 2.2.