Главная > План-конспект


УТВЕРЖДАЮ
Начальник военной кафедры № 1

подполковник А. Кабардинский

План-конспект

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

Тема № 1:

Базы данных специального назначения

Занятие № 7:

Проектирование интерфейса базы данных. Работа с формами.

Учебные цели занятия:

Узнать способы и средства проектирования интерфейса в OpenOffice base. Научиться правильно использовать данные средства в учебных приложениях.

Время:

2 часа

Место проведения:

Аудитория

Материально-техническое обеспечение:

ПК с установленным ПО OpenOffice.Base, методическая разработка

Литература:

  1. «Руководство пользователя », издательство «БХВ-Петербург», 2007.-302с.

  2. «SQL в примерах и задачах: Учеб. Пособие», И.Ф. Астахова, А.П. Толстобров, В.М. Мельников, издательство «Новое знание», 2002. – 176с.

  3. «Введение в системы баз данных», К. Дж. Дейт, Издательский дом «Вильямс», 2005.-1328с.

Учебные вопросы и ориентировочный расчёт времени:

п/п

Содержание вопроса

Время

Введение

5 мин

Основная часть

80 мин

1

Создание форм для ввода данных, cоздание и удаление элементов формы. Настройка параметров формы.

25 мин

2

Динамическое отображение форм, работа с элементами управления.

25 мин

3

Связывание элементов управления с полями БД. Выполнение запросов к БД, отображение результатов.

30 мин

Заключение

5 мин

Всего:

90 мин

Вступительная часть

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

Основная часть

Введение

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

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

В данном разделе рассматриваются вопросы создания форм для ввода данных, а также вопросы создания и удаления элементов формы (элементов управления) и настройки параметров формы.

Также в данном практическом занятии будут рассмотрены вопросы создания макросов на одном из встроенных в Base языке — Basic.

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

1.Создание форм для ввода данных

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

    1. Использование мастера для создания форм

Опишем создание формы с помощью мастера для таблицы Адреса знакомых базы данных Information. Формы для других таблиц с помощью мастера создаются аналогично.

Создание формы

  1. Перейдите в раздел Таблицы на панели База данных, затем щелкните правой кнопкой по имени таблицы Адреса знакомых в разделе Таблицы и выберите пункт меню Мастер форм. (Тот же мастер может быть вызван, если вы перейдёте в раздел Формы на панели База данных и выберите строку Использовать мастер для создания формы.)

  2. Из выпадающего списка Таблицы или запросы выберите таблицу Адреса Знакомых (рис 1.1). В списке Существующие поля Вы увидите все поля этой таблицы.

  3. Поскольку эти поля перечислены в уже правильном порядке, нажмите на кнопку >>, чтобы переместить эти поля в список Поля в форме. Нажмите кнопку Дальше.

Замечание: Кнопки со стрелками, расположенные между списками Существующие поля и Поля в форме, служат для перемещения полей между этими двумя списками. Кнопки со стрелками вверх и вниз с правой стороны списка Поля в форме служат для перемещения полей вверх и вниз этого списка.

  1. Эта форма не имеет субформ. Нажмите кнопку Дальше.

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

Рис. 1.1. Мастер форм

  1. Выберите режим источника данных - Форма для отображения всех данных. Нажмите кнопку Дальше.

  2. В окне применения стилей к форме выберите один из десяти предложенных рисунков фона. Предлагаем: Сине-голубой. Выберите также обрамление поля. Предлагаем: Трехмерный вид. Нажмите Дальше.

Замечание: Переместив верхнее окно мастера форм вниз, вы можете увидеть, как выглядит выбранный вами стиль на форме, выбрав её. Выбор стиля и просмотр результата можно повторять, пока не будет достигнут наилучший результат. Это относится также и к параметру Обрамление поля.

  1. Укажите имя формы. Название формы может отличаться от названия таблицы, с которой она связана. Это ваш выбор. Предлагаем: Адреса знакомых. Поскольку следующим действием будет изменение формы, выберите Модифицировать форму в группе Действия после заполнения формы. Нажмите кнопку Готово.

Созданную форму можно посмотреть в разделе Формы на панели База данных. Для изменения формы щелкните правой кнопкой по имени формы и выберите пункт меню Правка.

    1. Создание форм в режиме дизайна

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

Для указания источника данных в открывшемся окне Writer выберите пункт меню ПравкаАктивный источник данных. В окне выбора активного источника данных нажмите кнопку Обзор и выберите базу данных Information. Далее выберите необходимую таблицу базы данных и нажмите кнопку Да. Чтобы посмотреть используемые источники данных выберите пункт меню ВидИсточники данных (F4). Они будут отображаться в верхней части рабочего пространства.

О создании и удалении элементов управления поговорим ниже.

2.Создание и удаление элементов формы

Для создания и удаления элементов формы следует использовать панель Элементы управления (рис. 1.2).

Рис. 1.2. Панель Элементы управления

Если панель не отображается по умолчанию, её можно посмотреть, выбрав пункт меню ВидПанели инструментовЭлементы управления.

При выборе Режима разработки (второй слева элемент на панели) будут доступны следующие элементы управления:

  • Флажок – элемент для выбора какого-либо атрибута или свойства

  • Текстовое поле – элемент для отображения, ввода и изменения в форме текстовых данных

  • Поле форматированного ввода

  • Кнопка

  • Переключатель – элемент для выбора одного из предоставленных значений

  • Список

  • Поле со списком – элемент для отображения и ввода данных, выбранных из некоторого списка значений

  • Метка – заголовок для поля, подпись, пояснение

  • Дополнительные элементы управления: счётчик, полоса прокрутки, графическая кнопка, графический элемент управления, поле даты, поле времени, выбор файла, числовое поле, поле валюты, поле с маской ввода, группа, таблица, панель навигации

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

Для удаления элемента с формы необходимо его выделить, затем, нажав правую кнопку, выбрать пункт Вырезать (или просто нажать Delete). Элементы на форме можно редактировать, изменяя их размер, положение и свойства.

3.Настройка параметров формы

Для изменения фона формы щелкните правой кнопкой на фоне, чтобы открыть контекстное меню, и выберите пункт Страница – Фон. Из выпадающего списка Тип выберите строку Цвет. Цвет может быть выбран щелчком мыши на одном из возможных цветов. Выбрав в списке Тип пункт Графический объект, можно в качестве фона использовать графический файл (рис. 1.3).

Рис. 1.3. Форма адресов

Если слова в Метках форм имеют слишком малый размер, измените размер шрифта:

  1. Щёлкните по метке при нажатой клавише Control, чтобы выбрать её.

  2. Щелкните правой кнопкой по выбранной метке. Из контекстного меню выберите пункт Элемент управления.

  3. Нажмите на кнопку Шрифт, чтобы открыть окно Символ. Здесь вы можете изменить гарнитуру, кегль, начертание и эффекты шрифта (для последнего надо перейти на вкладку Эффекты шрифта). Выполните нужные изменения.

  4. Если необходимо изменить имя метки, например, перевести его на другой язык, то это можно сделать с помощью поля Текст (рис. 1.4).

Шрифты для полей могут быть изменены тем же способом.


Рис. 1.4.  Изменение характеристик шрифта

4.Динамическое отображение форм, работа с элементами управления

В примере №1 будет показано, как с помощью средств Basic можно динамически (по ходу выполнения макроса) отображать пользовательские формы, получать доступ к элементам управления на этих формах, их свойствам и методам.

Для запуска примера №1 необходимо открыть форму «Приветствие», на которой расположена группа переключателей для выбора заполняемой таблицы и кнопка «Выбрать». В качестве обработчика события Mouse Button Pressed для кнопки используется макрос Main, текст которого приведён в Листинге 1. После нажатия кнопки откроется новая форма для заполнения выбранной с помощью переключателей таблицы.

sub Main

dim sFormName as string

dim aProp(1) as new n.star.beans.PropertyValue

sFormName = GetName()

aProp(0).Name = ";ActiveConnection";

aProp(0).Value = thisComponent.Drawpage.Forms(0).ActiveConnection

aProp(1).Name = ";OpenMode";

aProp(1).Value = ";open";

thisComponent.Parent.getFormDocuments.loadComponentFromURL(

sFormName,

";_parent";,

0,

aProp())

end sub

function GetName

dim Ctl as object

dim i as integer

for i = 3 to 6

Ctl = thisComponent.Drawpage.Forms.GetbyIndex(0).GetbyIndex(i)

if Ctl.State = 1 then

GetName = Ctl.Label

end if

next i

end function

Листинг 1. Динамическое отбражение форм, работа с элементами управления.

Разберём работу макроса Main более подробно. Её первым этапом является определение таблицы, которую пользователь выбрал для заполнения. Этот этап вынесен в отдельную функцию GetName, возвращающую строку с именем формы, которую необходимо отобразить на экране.

Ко всем элементам на форме можно обратиться как по имени, так и по индексу. В Листинге №1 приведён пример обращения к элементам управления по индексу, для чего используется метод Form::GetbyIndex(). Ссылка на элемент управления сохраняется в переменной Ctl.

Для того, чтобы определить, выбран ли текущий переключатель, используется свойство State. Если он выбран, то свойство State принимает значение 1, иначе – 0. Кроме того, надпись, отображаемая на элементе управления, хранится в свойстве Label, поэтому в качестве результата работы функции GetName возвращается значение этого свойства для выбранного переключателя.

После вызова функции имя формы сохраняется в переменной sFormName. Непосредственно загрузка формы осуществляется с помощью метода XComponent::loadComponentFromURL(), выполняющего загрузку компонента с заданным именем (sFormName) для отображения в нужном фрейме (в данном случае — родительском, parent).

5.Связывание элементов управления с полями таблицы БД.

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

После этого доступ к соответствующему полю таблицы можно получить с помощью свойства Control::BoundField.

В примере №2 для изменения значения связанного поля используется метод UpdateString(). Также в примере приводится пример обращения к элементам управления на форме по имени с помощью метода Form::GetbyName(), а не по индексу (как в примере №1). Для запуска примера №2 необходимо открыть одну из форм: «Адреса_родственников» или «Адреса_знакомых».

Sub Main

Dim Doc As Object

Dim Form As Object

Dim TextBox As Object

Doc = StarDesktop.CurrentComponent

Form = Doc.DrawPage.Forms.GetByIndex(0)

TextBox = Form.getByName(";txtFirstName";)

TextBox.BoundField.UpdateString(";Пётр";)

TextBox = Form.getByName(";txtLastName";)

TextBox.BoundField.UpdateString(";Иванов";)

TextBox = Form.getByName(";txtSpouseName";)

TextBox.BoundField.UpdateString(";Екатерина";)

TextBox = Form.getByName(";txtAddress";)

TextBox.BoundField.UpdateString(";ул. Бауманская, д. 1";)

TextBox = Form.getByName(";txtCity";)

TextBox.BoundField.UpdateString(";Москва";)

TextBox = Form.getByName(";txtStateOrProvince";)

TextBox.BoundField.UpdateString(";";)

TextBox = Form.getByName(";txtPostalCode";)

TextBox.BoundField.UpdateString(";123456";)

TextBox = Form.getByName(";txtCountryOrRegion";)

TextBox.BoundField.UpdateString(";РФ";)

TextBox = Form.getByName(";txtPhoneNumber";)

TextBox.BoundField.UpdateString(";123-45-67";)

TextBox = Form.getByName(";txtMobileNumber";)

TextBox.BoundField.UpdateString(";+7 903-123-45-67";)

TextBox = Form.getByName(";txtEmailAddress";)

TextBox.BoundField.UpdateString(";ivanov@";)

End Sub

Листинг №2. Связывание элементов управления и полей в таблице БД.

6.Выполнение запросов к БД.

В примере №3 будет рассмотрено выполнение SQL-запросов к БД непосредственно по ходу выполнения макроса.

Для запуска примера №3 необходимо открыть форму «Найти_родственников», которая по нажатию кнопки выводит на экран либо список всех родственников, либо только тех, кто проживает в Москве. Выбор осуществляется с помощью переключателя-флажка

Текст макроса Main, привязанного к событию Mouse Button Pressed для кнопки «Найти родственников», приведён в Листинге №3.

Sub Main

Dim DatabaseContext As Object

Dim DataSource As Object

Dim QueryDefinition As Object

Dim Doc As Object

Dim Form As Object

Dim CheckBoxMoscow As Object

Dim ListBox As Object

Dim Items (10) As String

Dim I As Integer

DatabaseContext = createUnoService(";n.star.sdb.DatabaseContext";)

DataSource = DatabaseContext.getByName(";Information";)

Connection = DataSource.GetConnection(";";, ";";)

Doc = StarDesktop.CurrentComponent

Form = Doc.DrawPage.Forms.GetByIndex(0)

CheckBoxMoscow = Form.getByName(";CheckBoxMoscow";)

Statement = Connection.createStatement()

If CheckBoxMoscow.State = 1 Then

ResultSet = Statement.executeQuery(";SELECT FirstName, LastName FROM Адреса_родственников WHERE City = 'Москва'";)

Else

ResultSet = Statement.executeQuery(";SELECT FirstName, LastName FROM Адреса_родственников";)

End If

ListBox = Form.getByName(";ListBox";)

I = 0

While ResultSet.next

Items(I) = ResultSet.getString(1) + "; "; + ResultSet.getString(2)

I = I + 1

Wend

ListBox.StringItemList()=(Items)

End Sub

Листинг №3. Выполнение запросов к БД.

Механизм работы макроса Main следующий. На первом этапе устанавливается соединение с базой данных Information и определяется критерий отбора записей, установленный пользователем. Так как БД Information не защищена паролем, то методу DataSource::GetConnection() в качестве имени пользователя и пароля передаются две пустые строки. Далее, если флажок «Только из Москвы» установлен (CheckBoxMoscow.State = 1), то выполняется выборка с условием WHERE City = 'Москва', иначе выполянется запрос без WHERE-части.

Чтобы выполнить SQL-запрос, необходимо создать объект-выражение (Statement), используя установленное соединение с базой данных Information. Непосредственное выполнение запроса происходит при вызове метода Statement::executeQuery(). Результат выполнения SQL-запроса возвращается в виде набора данных (ResultSet), к строкам которого можно получить доступ с помощью навигационных методов, определяемых его типом (FORWARD_ONLY, SCROLL_SENSITIVE и SCROLL_INSENSITIVE). В примере №3 используется именно первый тип набора данных, допускающий только движение вперёд по набору. К столбцам текущей строки набора данных можно обратиться с помощью методов ResultSet::get*(). В данном примере используется метод getString(), как наиболее универсальный. Его единственным параметром является номер столбца, значение из которого необходимо получить.

Заключение

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

В данном разделе были рассмотрены вопросы создания формы для ввода данных и создания и удаления элементов формы. Также были рассмотрены возможности настройки параметров формы.

Данное практическое занятие также является введением в программирование на языке Basic.

Были рассмотрены вопросы динамического создания форм, работы с элементами управления на формах, их привязки к полям базы данных, выполнения SQL-запросов и обработки и отображения их результатов.

Вопросы на самоподготовку:

  1. Возможности, предоставляемые СУБД OpenOffice Base для проектирования форм таблиц базы данных.

  2. Возможности, предоставляемые СУБД OpenOffice Base для настройки параметров формы.

  3. Динамическое создание формы.

  4. Выполнение SQL-запроса и работа с результирующим набором данных.

Преподаватель цикла № 13

майор Е. Татаева



Скачать документ

Похожие документы:

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

    Документ
    ... без приостановления ими военной службы относятся: начальниквоеннойкафедры, начальник учебной части – заместитель начальникавоеннойкафедры. Назначение граждан ...
  2. Бурнаев зуфар русланович профессионально-прикладная физическая подготовка студентов военной кафедры гражданского вуза

    Диссертация
    ... 3-4 тренировки). Согласно руководящим документам начальникомвоеннойкафедры, подполковником Нуртасовым Е.Г. разработан, ... категории Начальниквоеннойкафедры звание ____________________Ф.И.О. ПРИЛОЖЕНИЕ Б Памятка курсанту военнойкафедры на учебных ...
  3. Военное обучение в МГТУ им 85 лет

    Документ
    ... генерал-майор), заместитель начальникавоеннойкафедры полковник Малышев И.П., начальник учебной части военнойкафедры полковник Бурлингас В.П.; ... вошли все начальникикафедр Отделения военной подготовки МГТУ, а также начальникивоенныхкафедр всех ...
  4. Военное обучение в МГТУ им 85 лет

    Документ
    ... генерал-майор), заместитель начальникавоеннойкафедры полковник Малышев И.П., начальник учебной части военнойкафедры полковник Бурлингас В.П.; ... вошли все начальникикафедр Отделения военной подготовки МГТУ, а также начальникивоенныхкафедр всех ...
  5. Военно-Морским Флотом от 01 сентября 2001 года

    Документ
    ... старшим морским начальником (командиром военно-морской базы), а в случае его отсутствия с начальником гарнизона. 713 ... передвижения войск УТВЕРЖДАЮ Методическая разработка Начальниквоеннойкафедры ИГУ рассмотрена и обсуждена Полковник В. Матвейчук ...

Другие похожие документы..