Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornye_po_BD_1-6.doc
Скачиваний:
114
Добавлен:
07.03.2016
Размер:
33.23 Mб
Скачать

Лабораторная работа № 5

Тема: Использование форм для ввода и редактирования данных

Цель: Научиться создавать однотабличные формы для ввода и редактирования данных.

В Visual FoxPro существует два формата отображения содержимого таблицы – в виде таблицы и в виде формы. Формат отображения в виде формы называется экранной формой. Формы являются мощным и гибким средством представления информации. Форма позволяет объединить поля в группы по определенным признакам, что облегчает восприятие информации.

Автоформат. Является наиболее быстрым способом создания формы для одной таблицы. Достаточно в конструкторе проекта установить курсор мыши на таблицу, для которой вы создаете форму, и нажать кнопку AutoForm Wizard на стандартной панели инструментов. Запускается мастер по созданию автоформы, и появляется готовая форма. Если созданная форма не полностью устраивает, нажмите кнопку Modify Form на стандартной панели инструментов для перехода в режим конструктора формы. Находясь в окне конструктора форм, можно улучшить созданную форму и сохранить ее командой File | Save as в удобном для вас месте.

Использование мастера для создания формы. Для создания формы при помощи мастера форм необходимо выполнить следующие действия:

  1. Откройте проект Sales.

  2. Нажмите ярлык «Documents» для перехода на вкладку «Documents». Затем выберите группу «Forms» и нажмите кнопку New, в результате откроется окно диалога «New Form» .

  3. Выберите опцию Form Wizard.

  4. На экране открывается окно диалога (рис.1), с помощью которого указывается, создается форма для одной таблицы или нескольких связанных таблиц. По умолчанию предполагается создание однотабличной формы. Для перехода к следующему шагу нажмите кнопку ОК.

Рис. 1 Окно диалога для задания типа создаваемой формы: однотабличной или многотабличной

  1. Теперь необходимо выбрать таблицу и поля этой таблицы, которые необходимо разместить в форме. Для выбора базы данных и содержащейся в ней таблицы используются два списка, расположенные в области «Databases and tables».

  2. После выбора таблицы список Available fields содержит перечень всех полей открытой таблицы. Необходимо из данного перечня перенести в список Selected fields поля, которые вы хотите поместить в создаваемую форму.

  3. После выбора списка отображаемых в форме полей, нажмите кнопку Next для перехода к следующему шагу в создании формы.

  4. Теперь необходимо установить стиль отображения объектов формы и типы кнопок управления (рис.2). Список Style содержит девять различных вариантов отображения объектов (полей, линий, заголовков и т.д.) в форме. Мастер форм позволяет при выборе каждого из стилей просмотреть результат в верхней части окна диалога.

Рис. 2. Выбор стиля отображения полей и управляющих кнопок

Опции переключателя Button Type позволяют выбрать тип отображения кнопок управления:

Опции

Тип отображения

Text Buttons

Кнопки управления содержат текстовые надписи

Picture Buttons

Кнопки управления содержат изображение

No Buttons

Кнопки управления в форме отсутствуют

Custom

В форме размещается пять кнопок управления: Find, Print, Add, Delete, Exit. Перемещение по записям осуществляется с помощью располагаемой в форме линейки прокрутки

После того как установили требуемые опции, нажмите кнопку Next.

  1. На третьем шаге нужно указать критерий сортировки данных при отображении в форме (рис. 3). Упорядочивание осуществляется по полям, перечисленным в списке Selected fields. Для переноса поля из списка Available fields or index tag в список Selected fields, установите курсор на поле, по значению которого требуется упорядочивание данных, и нажмите кнопку Add. Если ошибочно перенесли не то поле, для его удаления из списка Selected fields воспользуйтесь кнопкой Remove. Опции Ascending и Descending определяют, будут упорядочиваться данные в выбранном поле. Для перехода к следующему шагу создания формы нажмите кнопку Next.

  2. В заключение создания формы с помощью мастера можно задать заголовок формы в поле Type a title for your form и выбрать один из возможных вариантов продолжения работы над формой (рис. 4).

Опция

Действие

Save form for later use

Сохраняет созданную форму

Save and rum form

Сохраняет созданную форму и запускает ее на выполнение

Save form and modify it in the Form Designer

Сохраняет созданную форму и открывает ее в конструкторе форм для модификации

Нажав кнопку Preview, можно предварительно просмотреть форму до ее полного создания и вернуться обратно в мастер. После установки требуемых опций нажмите кнопку Finish для завершения создания объекта с помощью мастера. В открывшемся окне диалога «Save as» выберите каталог, в котором будет храниться форма и введите имя созданной формы.

Рис. 3. Установка критерия сортировки данных

Рис. 4. Сохранение формы, созданной с помощью мастера

Запуск формы на выполнение

Созданная в Visual FoxPro форма не требует генерации программных кодов. Она сразу готова для выполнения. Для запуска созданной формы из окна конструктора форм воспользуйтесь одним из следующих способов:

– Выполните команду Form | Run Form

Выполните команду Run Form всплывающего меню

– Нажмите кнопку Run на стандартной панели инструментов Visual FoxPro

Для запуска формы из окна проекта достаточно установит курсор на форму, и нажать кнопку Run.

Форму можно запустить, как и любую программу, выполнив команду меню Program | Do. В открывшемся окне диалога «Do» установите тип заполняемого файла (в данном случае – «Form»), выберите требуемую форму из списка файлов и нажмите кнопку Do.

Окно конструктора форм

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

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

  1. Выполнить команду File | New. В открывшемся окне диалога «New» выбрать опцию Form и нажать кнопку New File

  2. В окне проекта выбрать вкладку «Documents», перейти в группу «Form» и нажать кнопку New

  3. Нажать кнопку New на стандартной панели инструментов в Visual FoxPro. В открывшемся окне диалога «New» выбрать опцию Form и нажать кнопку New File

На рис. 5 показано окно конструктора форм, содержащее панели инструментов Color Palette (Цветная палитра), Layout (Расположение) и Form Controls (Объекты формы).

Рис. 5 Окно конструктора форм

Для отображения на экране панелей инструментов установите метки в соответствующих опциях меню View или установите флажки выбора панелей инструментов в окне диалога «Toolbars». Панель инструментов «Form Controls» используется для размещения объектов в форме.

Кнопки панели инструментов «Form Designer»

Set Tab Order – Переключает конструктор форм в режим установки порядка обхода объектов формы

Data Environment – Открывает окно определения среды окружения

Properties WindowВызывает на экран окно свойств

Code WindowОткрывает окно просмотра исходного кода формы

Form ControlsВызывает на экран панель инструментов «Form Controls»

ToolbarColor PaletteВызывает на экран панель инструментов «Color Palette»

Toolbar LayoutВызывает на экран панель инструментов «Layout»

Form Builder Вызывает построитель экрана

Auto Format Вызывает построитель автоформата для выбранных объектов формы

Панель инструментов «Form Controls» конструктора форм

Select Objects – Указатель выделения

View Classes – Выбирает класс для создания объектов в форме

Label Текстовый объект

Text Box – Поле ввода

Edit Box – Поле редактирования

Command Button – Кнопка

Command Group – Группа кнопок

Option Group – Переключатель

Check Box – Флажок

Combo Box – Поле ввода со списком

List Box – Список

Spinner – Поле ввода значения

Grid – Таблица

Image – Рисунок

Timer – Таймер

Page Frame – Страница

OLE Container Control – Создает OLE-объект

OLE Bound Control – Отображает содержимое OLE-объекта, хранящегося в поле типа General

Line – Линия

Shape – Контур

Container Контейнер

Separator – Создает разделитель – объект, формирующий промежутки между элементами управления на панели инструментов

Builder lock – Закрепляет выбор построителя

Button Lock – Закрепляет выбранную кнопку на панели инструментов

Кнопки панели инструментов «Layout»

Align Left Sides – Выравнивает выбранный объект по левому краю самого левого объекта

Align Right Sides– Выравнивает выбранный объект по правому краю самого правого объекта

Align Top Edges – Выравнивает выбранный объект по верхнему краю самого верхнего объекта

Align Botton Edges – Выравнивает выбранный объект по нижнему краю самого нижнего объекта

Align Vertical Centers – Выравнивает выбранный объект по вертикальной оси

Align Horizontal Centers – Выравнивает выбранный объект по горизонтальной оси

Same Width – Устанавливает одинаковую ширину для выбранных объектов формы

Same Height – Устанавливает одинаковую высоту для выбранных объектов формы

Same Size – Устанавливает одинаковую ширину и высоту для выбранных объектов

Center Horizontally – Центрирует выбранный объект относительно горизонтального центра

Center Vertically – Центрирует выбранный объект относительно вертикального центра

Send to Front – Направляет выбранный объект на самый верхний слой формы

Send to Back – Направляет выбранный объект на самый нижний слой формы

Свойства и методы объектов формы

Все объекты Visual FoxPro характеризуются свойствами, которые можно настраивать в соответствии со своими требованиями. Для каждого объекта существуют встроенные методы, которые выполняются при наступлении связанных с ним событий. Для того чтобы получить доступ к свойствам и методам объекта, нужно выделить необходимый объект и выполнить одно из следующих действий:

  • Выбрать команду меню View Properties

  • Нажать правую кнопку мыши и выбрать пункт всплывающего меню Properties

  • Нажать кнопку Properties Window на панели инструментов «Form Designer»

Врезультате на экране появится окно «Properties» со свойствами и методами выбранного объекта (рис. 6). Раскрывающийся список в верхней части данного окна используется для выбора объекта из списка объектов формы, а вкладки ниже него содержат перечень сгруппированных по типам свойств и методов:

Рис. 6 Окно свойств объекта «Properties»

Вкладка

Назначение

«All»

Содержит список всех свойств и методов формы в алфавитном порядке

«Data »

Содержит свойства объекта, связанные с источником данных

«Methods»

Содержит список всех методов объекта

«Layout»

Содержит свойства объекта, связанные с его оформлением

«Other»

На данной вкладке собраны все свойства, не вошедшие на вкладки «Data» и «Layout»

При размещении объекта в форме устанавливаются принятые по умолчанию значения свойств объекта. Для изменения стандартной установки для свойств какого-либо из объектов, выберите корректируемое свойство в окне свойств объекта. Значение свойства отображается в поле ввода, расположенного над списком всех свойств объекта. Возможны следующие типы значений определяемого свойства:

Тип свойства

Состояние поля значения свойства

Свойство доступно только для чтения

Поле ввода свойства не активно и нельзя перейти в это поле для ввода значения свойства

Свойство может редактироваться

Поле ввода свойства активно, в него можно ввести с клавиатуры требуемое значение

Возможны два или более различных вариантов значений свойства

Рядом с полем коррекции свойства появляется кнопка раскрытия списка

Возможен выбор свойств с помощью окна настройки

Рядом с полем коррекции свойства появляется кнопка открытия окна настройки

Левее поля ввода свойства находятся три кнопки, которые предназначены для выполнения следующих функций:

Кнопка Назначение

Вызывает построитель выражений для определения значения свойства

Подтверждает ввод значения свойства

Используется для отказа от введенного в поле ввода значения

Создание формы в конструкторе форм

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

  • Настройка формы

  • Создания окружения

  • Размещения текста

  • Создания управляющих кнопок

  • Размещение линий, прямоугольников и рисунков

  • Установка цвета объектов формы

  • Удаление объектов формы

  • Перемещение объектов формы, а также перемещение областей, которые могут содержать несколько объектов

  • Сохранение формы

Настройка формы. Каждая форма имеет свойства, определяющие ее в основном окне Visual FoxPro, заголовок, принятый по умолчанию шрифт, цвет экрана и некоторые другие параметры. Для настройки этих параметров нужно выполнить команду View | Properties. На экране появится окно «Properties» со стандартными значениями свойств формы. В этом окне, редактируются свойства формы, можно задать размер окна формы, ее местоположение, заголовок и имя.

Размер формы и ее положение задаются относительно основного окна Visual FoxPro. Установить эти параметры можно следующими способами:

  • Присвоить значения свойствам Height, Width, Left, Top, определяющим высоту, ширину формы и ее положение относительно верхнего левого угла основного окна Visual FoxPro.

  • Придать форме нужный размер с помощью курсора мыши.

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

Стиль обрамления окна формы задается с помощью свойства BorderStyle и может принимать следующие значения:

Значения

Описание

0-No border

Форма не имеет рамки

1-Fixed Single

Неизменяемая одинарная рамка

2- Fixed Dialog

Неизменяемая двойная рамка

3-Sizable (Default)

Изменяемая рамка (ее размеры можно изменять при выполнении)

Свойство Back-Color позволяет выбрать цвет фона или подходящий рисунок для фона формы с помощью окна диалога «Color».

Свойство WindowState определяет вид формы при ее вызове и может принимать одно из следующих значений:

Значения

Описание

Normal

Форма имеет размеры, определенные ее свойствами

Minimized (Windows only)

Форма сворачивается в пиктограмму

Maximized

Форма распахивается на весь экран

Свойства FontName, FontSize, FontBold, FontOutlline, FontItalie, FontShadow, FontStrikethru, FontUnderline задают наименование шрифта формы, его размер и начертание.

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

  • Выполнить команду меню View | Environment

  • Нажать кнопку Data Environment на панели инструментов «Form Designer»

  • Выбрать пункт всплывающего меню Data Environment

При открытии окна диалога определения среды в основное меню добавляется пункт DataEnvironment. На рис.7 представлено окно «DataEnvironment » со всплывающим меню, позволяющим добавить таблицы, связать таблицы между собой, открыть окно свойств среды окружения для задания различных параметров. Для добавления новой таблицы используется пункт всплывающего меню Add, при выборе которого открывается окно диалога «Add Table or View» (рис. 8), позволяющее выбрать таблицу. Для добавлении таблицы можно также воспользоваться командой меню Data Environment | Add.

Рис. 7 Окно диалога «Data Environment» со всплывающим меню

Рис. 8 Окно диалога «Add Table or View»

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

  1. Открыть проект Sales.

  2. Выбрать вкладку «Documents» и перейти на группу «Forms» в окне проекта нажать кнопку New.

  3. В открывшемся окне диалога «New Form» выбрать опцию New Form. На экране откроется окно конструктора экрана.

  4. Открыть окно «Data Environment», выполнив команду View | Data Environment.

  5. Для добавлении таблицы в окно определения среды окружения выполнить команду Data Environment | Add.

  6. В открывшемся окне диалога «Add Table or View» выбрать таблицу Customer и нажать кнопку ОК. В окне диалога «Data Environment» появится выбранная таблица. Закрыть окно определения среды окружения.

  7. Для определения свойств формы нужно выполнить команду View | Properties. Откроется окно «Properties».

  8. В окне «Properties» скорректировать свойство Caption, введя в текстовом поле заголовок формы Ввод списка покупателей.

  9. Скорректировать свойство BackColor, выбрав в окне диалога «Color» цвет для формы, отвечающим заданным требованиям.

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

  11. Установить свойства FontName, FontSize и выбрать любой из имеющихся шрифтов, поддерживающих кириллицу, и его размер.

  12. Сохранить форму под именем GetCust.

Размещение текстовой информации

Размещение текста в форме осуществляется с помощью инструмента Label, который находится на панели инструментов «Form Controls». Под текстом понимается любая текстовая информация: заголовки, наименование и поясняющая информация.

Последовательность действий для размещения текста:

  1. Выбрать инструмент Label на панели инструментов «Form Controls». Если данная панель отсутствует на экране, для ее отображения выполните команду View | Form Controls Toolbar.

  2. Установите указатель мыши на место предполагаемого расположения текстового объекта и, удерживая кнопку мыши в нажатом состоянии, переместите курсор по диагонали так, чтобы получилась рамка требуемого размера.

  3. Для открытия окна свойств созданного объекта выделите его и выполните команду меню View | Properties. На экране раскроется окно « Properties».

  4. Если необходимо, чтобы фон текста не отличался от фона формы, установите для свойства BackStyle значение Transparent.

  5. Текстовая информация задается свойством Caption. Выделить курсором данное поле, после чего в поле ввода свойства ввести нужную информацию. Для переноса информации в поле свойства нажать клавишу Enter.

  6. Определить с помощью свойств FontName и FontSize вид и размер шрифта, а затем установить значение свойства ForeColor, задающего цвет текстовой информации.

Размещение полей ввода

Наиболее простым типом поля является поле ввода. Для размещения поля ввода в форме выполняются следующие действия:

  1. Выбирается инструмент Text Box на панели инструментов «Form Controls».

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

  3. Для открытия окна свойств создаваемого объекта выделить его и выполнить команду меню View | Properties. На экране раскроется окно «Properties».

  4. Чтобы связать созданное поле с полем таблицы, нужно выбрать свойство ControlSource из вкладки «Data». В поле ввода свойства воспользоваться кнопкой раскрытия списка и из списка всех полей открытой таблицы выбрать поле, которое нужно добавить в форму.

  5. Устанавливается свойство Alignment, позволяющее задавать несколько вариантов выравнивания информации, отображаемого в поле:

Значение

Выполняемое действие

0-Left

Выравнивает текст влево

1-Right

Выравнивает текст вправо

2-Center

Выравнивает текст по середине, оставляя слева и справа одинаковые интервалы

3-Automatic

(Default)

Текст выравнивается в соответствии с типом данных источника элемента управления. Данные числового типа (в том числе двойного, плавающего, денежной единицы и целочисленного типа) выравниваются вправо; элементы управления с данными других типов выравниваются влево

  1. Для задания стиля и цвета рамки поля используйте свойства BorderStyle и BorderColor, а для определения цвета фона неактивного поля – свойство DisabledBackColor.

  2. С помощью свойства Comment можно задать краткое описание назначения каждого объекта. Это описание полезно при разработке приложения и его сопровождении.

  3. Свойства FontName и FontSize определяют вид и размер шрифта, а ForeColoer – цвет информации в поле ввода.

  4. Для отображения полей ввода в заданном формате используется свойство Format.

Допустимые форматы и выполняемые ими действия приведены в табл. 1.

Форматы данных Таблица 1.

Код

Назначение

!

Преобразует буквы к верхнему регистру

$

Выводит на экран текущий денежный символ

Код

Назначение

^

Отображает числа в экспоненциальном виде

А

Разрешает ввод только текстовых символов

D

Для редактирования данных типа даты использует текущий формат SET DATE

Е

Редактирует данные, рассматривая их как Европейские даты

К

Выделяет все поле целиком, когда курсор перемещается в данное поле

L

Отображает ведущие нули при их выводе в поле ввода

М

Задает несколько предопределенных значений на выбор

R

Содержит маску формата для поля ввода. Символы маски отображаются на экране, но не сохраняются в источнике данных

Т

Удаляет начальные и конечные пробелы в форме

YS

Отображает дату в кратком формате, используя установки Windows

YL

Отображает дату в полном формате, используя установки Windows

Z

Отображает 0 как пробел, за исключением случая, когда фокус установлен на объекте

  1. Свойство InputMask позволяет задать выражение шаблоны. Символы, которые могут быть использованы в выражении шаблона, представлены в табл. 2

Коды шаблонов PICTURE Таблица 2.

Код

Действие

Х

Допускает ввод любых символов

9

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

#

Позволяет вводить цифры, пробелы и знак

$

Выводит на экран текущей денежный символ (определяемый при помощи SET CURRENCY). По умолчанию этот символ помещается непосредственно до или после поля. Однако, денежный символ и его позиция (SET CURRENCY), разделительный символ (SET SEPARATOR) и символ десятичного знака (SET POINT) могут быть переопределены

$$

Отображает плавающий денежный символ, положение которого определяется расположением цифр в поле ввода или счетчике

Перед числовыми значениями выводятся звездочки. Используется со знаком доллара «$»

.

Задает позицию десятичной точки

Используется для отделения цифр, стоящих слева от десятичной точки

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

  2. Свойство SpecialЕffect имеет два значения для стиля отображения поля: обычный двухмерный и трехмерный.

  3. Как правило, в формате недостаточно места для длинных поясняющих надписей. Их можно вынести в строку состояния. Пояснения к полю, помещаемые в строку состояния, задаются свойством StatusBarText.

  4. Свойство ToolTipText позволяет создать краткое пояснение к полю, которое будет появляться ниже курсора мыши, когда курсор установлен на поле и удерживается на нем некоторое время. Для отображения кратких пояснений устанавливается свойство ShowTips формы равным True.

  5. Для определения значения поля по умолчанию задается свойство Value.

Размещение поля редактирования

Поля редактирования Edit Box очень удобны для редактирования символьных полей большого размера и Memo-полей. Для размещения поля редактирования в форме необходимо выполнить следующие действия:

  1. Выбрать инструментEdit Box на панели инструментов «Form Controls».

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

  3. Для открытия окна свойств созданного объекта нужно выделите его и выполнить команду ViewProperties. На экране раскроется окно «Properties».

  4. Поле редактирования предназначено для просмотра и редактирования полей большого размера, в правой части поля расположена полоса прокрутки, предназначенная для просмотра информации, не поместившейся в окне просмотра. Отличительной особенностью поля редактирования по сравнению с полем ввода является наличие у него свойства ScrollBars. Это свойство может принимать два значения:

  • None – полоса прокрутки отсутствует

  • Vertical – поле имеет вертикальную полосу прокрутки

  1. Если необходимо предоставить пользователю возможность вставлять в редактируемый текст символы табуляции, то нужно установит для свойства AllowTabs значение (.Т.). Если это свойство включено, то для выхода из поля и перемещения на следующий объект пользователь должен нажимать не клавишу Tab, а комбинацию клавиш Ctrl + Tab. При этом необходимо разместить в форме соответствующую подсказку.

Остальные свойства поля редактирования аналогичны свойствам поля ввода.

Размещение полей и текста в форме

Размещение в форме поля таблицы Customer.

  1. Открыть проект Sales.

  2. Установить курсор на форму GetCust и нажать кнопку Modify. На экране откроется окно конструктора экрана, содержащее форму GetCust.

  3. Используя инструменты Label на панели инструментов «Form Controls», создать заголовок «Покупатели», расположив его в верхней части экрана. Чтобы фон текста не отличался от фона формы, для свойства BackStyle установите значение Transparent. Далее установите вид, размер шрифта и цвет заголовка, скорректировав свойства FontName, FontSize и ForeColor.

  4. С помощью инструмента Text Box на панели инструментов «Form Controls» разместите в форме все поля таблицы Customer за исключением cAddress, nDiscont, lPrivileged и mNotes.

  5. С помощью инструмента Edit Box на панели инструментов «Form Controls» разместите в форме поля cAdress и nNotes таблицы Customer, которые имеют достаточно большую длину.

  6. С помощью инструмента Label на панели инструментов «Form Controls» создайте все надписи для созданных полей.

  7. Сохраните форму и закройте ее.

Создание кнопок управления

Для просмотра таблицы необходимо добавить средства перемещения по записям таблицы. В Visual FoxPro наиболее удобным средством для этих целей являются кнопки. Для создания кнопок в Visual FoxPro можно использовать два инструмента на панели инструментов «Form Controls»:

Command Button – создание одиночных кнопок

Command Group – создание набора кнопок

Создание одиночных кнопок

Для создания одиночной кнопки выполняются следующие действия:

  1. Выберите инструмент Command Button на панели инструментов «Form Controls» и поместите кнопку в требуемом месте формы.

  2. Откройте окно свойств созданного объекта Command.

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

  1. Для расположения на кнопке графического изображения нужно выбрать свойство Picture и нажать кнопку, расположенную правее поля ввода. В результате откроется окно диалога «Open». В окне диалога можно выбрать файл с графическим изображением и просмотреть его вид в области «Picture». Для просмотра файла необходимо установить флажок Picture. После выбора файла нажмите кнопку ОК для перенесения изображения на кнопку. Для расположения на кнопке графического изображения помимо свойства Picture служат также свойства DisabledPicture и DownPicture. Свойство Picture определяет изображение на не нажатой кнопке, DownPicture – на нажатой, а DisabledPicture – на неактивной кнопке. В качестве изображения может служить любой ВМР - файл маленького размера.

  2. Когда кнопка создана, необходимо определить команды, которые будут выполняться при нажатии кнопки. Для этой цели служит метод объекта Click, который автоматически вызывается при нажатии на кнопку мыши. Для отображения в окне свойств объекта списка всех методов перейдите на вкладку «Methods».

  3. Для определения текста метода установите курсор на метод Click и нажмите кнопку мыши. На экране откроется окно процедур. В текстовой области окна разместите команды, которые должны выполнятся при нажатии на данную кнопку. Например, при нажатии на кнопку выхода из формы на экран будет выдаваться запрос о том, хотите ли вы действительно выйти из формы. При утвердительном ответе форма будет закрыта. Для выполнения этих действий используется функция Visual FoxPro MESSAGEBOX. Текст процедуры обработки события нажатия на кнопку выглядит следующим образом:

*запрашиваем и выходим, если “ДА”

IF MESSAGEBOX (“Выходить из формы ?”, 4+32+256, “Выход”) = 6

Screen.ActiveForm.Release()

ELSE

Screen.ActiveForm.Refresh()

ENDIF

  1. После ввода текста процедуры закройте окно процедур. Кнопка для выхода из формы создана.

Режим редактирования составных объектов

Некоторые объекты Visual FoxPro, такие как Command Group и Option Group, являются составными объектами. В их состав входят несколько объектов, каждый из которых имеет свои собственные свойства.

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

Для выхода из режима редактирования необходимо нажать мышью пространство вне области составного объекта.

Создание набор кнопок

Инструмент Command Group панели инструментов «Form Controls» используется в том случае, если вам необходимо создать сразу несколько управляющих кнопок. Объект данного типа обладает свойством ButtonCount, которого не имели ранее рассмотренные объекты. Это свойство объекта определяет количество кнопок или команд, размещенных в объекте.

Разместим в форме GetCust кнопки перемещения по записям таблицы, а также кнопку выхода из формы.

  1. Откройте формуGetCust в окне конструктора форм.

  2. Выберите инструмент Command Group на панели инструментов «Form Controls» и поместите объект в нижней части формы.

  3. Откройте окно свойств созданного объекта.

  4. Свойство ButtonCount объекта определяет количество кнопок, размещаемых в объекте. По умолчанию свойство содержит значение, равное 2. Скорректируйте его, задав количество кнопок, равное 5.

  5. Увеличьте с помощью мыши размеры созданного объекта, чтобы в нем разместились все пять кнопок.

  6. Для того чтобы расположить все кнопки горизонтально, необходимо перейти в режим редактирования созданного объекта. Для этого установите курсор мыши внутрь объекта, нажмите правую кнопку мыши и выберите пункт Edit всплывающего меню.

  7. В режиме редактирования объекта типа CommandGroup, поочередно выделяя каждый элемент группы, переместите их, расположив горизонтально вдоль одной линии. Для выхода из режима редактирования после завершения перемещений, нажмите мышью пространство вне области объекта типа Command Group. Скорректируйте размер внешней рамки объекта под новое расположение кнопок.

  8. Откройте окно свойств объекта типа CommandGroup. Нажмите кнопку раскрытия списка в верхней части данного окна. Отметьте, что этот список содержит все элементы, входящие в созданный объект. Выбирая в этом списке поочередно каждый элемент, можно изменить его свойства.

  9. Скорректируйте для каждого элемента объекта свойство Caption, задав название кнопок: Первая, Следующая, Предыдущая, Последняя, Выход.

  10. Определите команды, которые будут выполняться при их нажатии. Для каждого элемента, входящего в составной объект, в окне процедур метода Click поместите следующие команды.

Для кнопки Первая:

*Переходим на первую запись и перевыводим значения полей

IF !BOF()

GO TOP

ENDIF

_screen.ActiveForm.Refresh()

Для кнопки Следующая:

*Переходим на следующую запись и перевыводим значения полей

IF !EOF()

SKIP

ENDIF

_screen.ActiveForm.Refresh()

Для кнопки Предыдущая:

*Переходим на предыдущую запись и перевыводим значения полей

IF !BOF()

SKIP – 1

TNDIF

_screen.ActiveForm.Refresh()

Для кнопки Последняя:

*Переходим на последнюю запись и перевыводим значения полей

IF !EOF ()

GO BOTTOM

ENDIF

_screen.ActiveForm.Refresh()

Для кнопки Выход:

*Завершаем и выходим, если “ДА”

MESSAGEBOX (“Выходить из формы ?”, 4+32+256,”Выход”)=6

_screen.ActiveForm.Release()

ELSE

_screen.ActiveForm.Refresh()

ENDIF

  1. После ввода текста, закройте окна процедур.

  2. Набор кнопок для перемещения по записям таблицы и выхода из формы создан. Закройте форму на выполнение, выполнив команду Form Run Form.

Свойство Value объекта CommandGroup содержит номер нажатой кнопки. Каждая кнопка имеет свой номер, получаемый автоматически по мере ее добавления к группе управления. Основным преимуществом применения группы является возможность написания одного метода обработки для всей группы.

Например, все три кнопки группы выполняют одно и тоже действие – создают отчет, направляя его в различные места. Вместо написания процедуры создания отчета для каждой кнопки имеет смысл объединить кнопки в один объект и написать для него одну процедуру. В процедуре обработки события группы Click можно определить нажатую кнопку, обратившись к свойству Value. Пример определения нажатой кнопки:

DO CASE

CASE This.Value = 1

**Печать отчета на примере

REPORT FORM CUSTOMER.frx NOCONSOLE TO PRINTER

CASE This.Value = 2

**Запись отчета в файл

REPORT FORM CUSTOMER.frx TO FILE Pr_Cust.txt ASCII

CASE This.Value = 3

**Просмотр отчета на экране

REPORT FORM CUSTOMER.frx NOCONSOLE PREVIEW

ENDCASE

Размещение элементов на форме

Размещение флажка. Для индикации состояния, которое может иметь только одно из двух допустимых значений, используются флажки (объекты типа CheckBox). Они могут использоваться по одному или группами. Например, поле lPrivileged (привилегированный покупатель) в таблице Customer может принимать значения 0 или 1. При установке флажка значение будет соответствовать 1, а при снятии флажка – значению 0.

Вид флажка на экране

Значение свойства Value

0

1

Добавьте в таблицу Customer поле lPrivrleged, которое имеет тип Logical. В нем должен храниться статус заказчика. Это поле может принимать значения 0 или 1.

  1. Откройте форму GetCust в окне конструктора проекта.

  2. Выберите инструмент Check Box на панели инструментов «Form Controls».

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

  4. Выделите созданный объект и выполните команду меню View | Properties. На экране откроется окно «Properties» объекта типа CheckBox.

  5. Для связывания флажка с полем таблицы скорректируйте свойство ControlSource, создав в качестве значения свойства поле lPrivrleged таблицы Customer.

  6. Скорректируйте свойство Caption , определяющее заголовок «привилегированный покупатель», отображаемый справа от флажка в окне конструктора форм, а также в форме.

  7. В случае необходимости, скорректируйте другие свойства (например, ForeColor, BackStyle, FontName, определяющие цвет, фон, шрифт и т.д.).

  8. Запустите форму на выполнение. Теперь для установки признака постоянного покупателя достаточно установить флажок (рис.9).

Рис.9. Использование объекта типа Check Box

Размещение переключателя

Объекты типа Option Group (переключатели) позволяет выбрать одно из нескольких значений поля или переменной. Переключатели широко используются не только в Vosual FoxPro, но и в других приложениях Windows. Объекты типа Option Group представляют из себя составные объекты, содержащие внутри себя элементы, наделенные собственными свойствами.

Объекты данного типа характеризуются свойствами, некоторые из которых приведены ниже:

Свойство

Описание

ButtonCount

Задает количество опций

Style

Определяет вид переключателя

Left, Top

Расстояние между кнопками

BorderStyle

Стиль обрамления

Добавьте поле cTypePay (вид оплаты) в таблицу Ordsalem (заказы и продажи), типа Integer. Данное поле может принимать код одного из значений: Наличные/ Безналичные / Бартер / Электронная карточка / В рассрочку.

  1. Создайте форму Ordsalem в конструкторе форм. Расположите в ней заголовок формы, текстовые объекты и все поля, за исключением cTypePay.

  2. Выберите инструмент Option Group на панели инструментов «FormControls».

  3. Установите указатель мыши на место, в котором расположите поле cTypePay. Удерживая кнопку мыши в нажатом состоянии, переместите курсор по диагонали так, чтобы получилась рамка требуемого размера.

  4. Откройте окно «Properties» для вновь созданного объекта.

  5. Скорректируйте свойство ButtonCount, задав количество опций равным 5.

  6. Нажмите кнопку раскрытия списка объектов в верхней части окна «Properties». Из списка объектов выберите первую опцию переключателя Option1. На рис.10 показано, что при этом объект выделяется прямоугольниками.

  7. Для объекта Option1 скорректируйте свойства Caption, ForeColor, BackColor, FontName, определяющие заголовок, цвет шрифта, фон, вид шрифта и т.д.

  8. Аналогично скорректируйте свойства для остальных четырех объектов.

  9. С помощью инструмента Labеl создайте надпись «Вид оплаты:».

Рис.10. Выбор объекта Option1 для коррекции

  1. Сохраните форму и запустите ее на выполнение. Форма примет вид, представленный на рис.11.

Рис.11. Форма с переключателем

Размещение списка

В Visual FoxPro существует несколько вариантов отображение одного того же поля на экране. Например, в предыдущем примере поле cTypePay можно было отобразить как в виде переключателя, так и в виде объекта типа ListBox (списка). Выбор типа объекта определяется пожеланиями пользователя и наличием свободного места в форме.

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

  • Массив

  • Меню

  • Список файлов

  • Значение поля таблицы

  • Структура таблицы и т.д.

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

Допустимые значения свойства RowSourceType Таблица 3.

Значение

Источник данных

0(None)

Значение элементов списка определяются программно, используя методы AddItem или AddListItem

1(Value)

Список задается в виде строки, элементы в которой разделяются запятыми

2(Alias)

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

3(SQL Statement)

Список содержит данные, полученные в результате выполнения SQL оператора

4(Query)

Список содержит данные, полученные в результате выполнения указанного запроса. Запрос задается именем файла с расширением .QPR

5(array)

Источником данных является заданный массив

6(Fields)

Значения элементов списка определяются полями таблицы

7(Files)

Список содержит перечень файлов текущего каталога. Вы можете задать в свойстве RowSource шаблон выбора файлов

8(Structure)

В качестве источника данных используется структура таблицы

9(Popup)

Список содержит пункты всплывающего меню

Объекты типа List Box используют свойства и методы, размещенные в табл. 4.

Таблица 4.

Свойства и методы объектов типа List Box.

Свойства и методы

Назначение

Click

Определяет действие объекта после нажатия на него мышью

ColumnCount

Содержит число столбцов в списке

ColumnWidths

Определяет ширину столбцов

ControlSource

Устанавливает источник данных, с которым связан объект

FirstElement

Задает первый элемент массива, который будет отображаться в списке. Данное свойство доступно только в том случае, если свойство RowSource задано в качестве источника данных массив (RowSource=5)

DblClick

Определяет действие объекта после двойного нажатия на него мышью

IncrementalSearch

Определяет, позволяет ли объект последовательный поиск

KeyPress

Определяет действие объекта после нажатия клавиши

MultiSelect

Определяет, можете ли вы сделать несколько выборов в списке

NumberOfElement

Определяет количество элементов массива, отображаемых в списке. Данное свойство доступно только в том случае, если свойство RowSource задает в качестве источника массив (RowSource=5)

RowSource

Указывает источник данных списка

Рассмотрим создание списка для редактирования поля cCountry (Страна), которое может принимать одно из указанных значений.

  1. Откройте форму GetCust в окне конструктора форм.

  2. Удалите из формы поле ввода страны покупателя, поскольку в данном примере для ввода значения поля cCountry будет использоваться список.

  3. Выберите инструмент ListBox на панели инструментов «Form Controls».

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

  5. Откройте окно «Properties» размещенного в форме списка.

  6. Скорректируйте свойство RowSourceType, которое указывает тип источника данных. Выберите из списка значений «Value», поскольку список стран будет вводиться при создании формы.

  7. Скорректируйте свойство RowSource , задав в поле ввода значения свойства через запятую список стран (рис. 12).

  8. Запустите форму на выполнение. Теперь при редактировании списка покупателей в поле cCountry таблицы Costumer будет заноситься значения, выбираемое из списка (рис. 13).

Рис. 12. Ввод используемых значений в список

Рис. 13. Ввод наименования страны с помощью списка

Размещение раскрывающегося списка

Рассмотрим еще один тип объектов, предназначенных для отображения на экране элементов списка – объект типа Combo Box или раскрывающийся список. Объект данного типа аналогичен объекту List Box, но в отличие от последнего, не занимает много места в форме.

Рассмотрим создание раскрывающегося списка для редактирования поля cCountry (Страна) таблицы Customer. В отличиы от предыдущего примера, в качестве источника данных будем использовать строку с перечнем наименований стран.

  1. Откройте форму GetCust в окне конструктора форм.

  2. Удалите список для ввода значения поля cCountry , созданный ранее.

  3. Выберите инструмент Combo Box на панели инструментов «Form Controls» .

  4. Установите указатель мыши на место удаленного объекта. Удерживая кнопку мыши в нажатом состоянии, переместите курсор по диагонали так, чтобы получилась рамка требуемых размеров.

  5. Откройте окно «Properties» размещенного в форме раскрывающегося списка.

  6. Свяжите раскрывающийся список с полем сCountry таблицы Customer .

  7. Из списка возможных значений свойства RowSourceType выберите «Value», поскольку список создается в виде строки, элементы в которой разделяются запятыми.

  8. Введите в поле ввода значения свойства RowSource перечень допустимых элементов списка через запятую: Россия, Украина, Беларусь, Казахстан.

  9. Запустите форму на выполнение. Теперь при редактировании списка покупателей для заполнения поля cCountry таблицы Customer необходимо нажать кнопку раскрытия списка и выбирать из него нужное значение. Это значение из списка будет заноситься в поле таблицы (рис.14).

Рис. 14. Выбор наименования страны из раскрывающегося списка

Размещение счетчика

При вводе числовых значений, которые имеют заданный диапазон изменения и определенную дискретность, вы можете использовать объект типа Spiner (Счетчик).

Для размещения в форме счетчика выполните следующие действия:

  1. Выберите инструмент Spinner на панели инструментов «Form Controls».

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

  3. Откройте окно «Properties» созданного объекта.

  4. Чтобы связать созданное поле с полем таблицы выберите свойство ControlSource . в поле ввода значения свойства воспользуйтесь кнопкой раскрытия списка, из списка всех полей открытой таблицы выберите требуемое поле.

  5. Свойства SpinnerHighValue, Spinner LowValue объекта определяют соответственно максимальное и минимальное значения, которые можно установить при помощи кнопок изменения значения. Свойства KeyboardHighValue, KeyLowValue определяют соответственно максимальное и минимальное значения, которые можно ввести в поле с клавиатуры. При выходе за установленные границы на экран будет выводиться сообщение о допустимых пределах вводимого числа. Шаг, с которым будет изменяться значение поля, задается свойством Increment.

  6. В случае необходимости скорректируйте другие свойства (например, ForeColor, BackColor, FontName, определяющие цвет, фон, шрифт и т.д.).

  7. Создайте текстовую надпись для поля типа Spinner .

  8. Сохраните форму и запустите ее на выполнение.

На рис. 15 представлена форма, содержащая счетчик для ввода значения в поле yCreditLimit таблицы Customer. При попытке ввода значения дольше допустимого, в правом верхнем углу появляется предупреждение с указанием допустимого диапазона вводимого значения.

Рис. 15. Использование счетчика для ввода значения скидки

Использование линий и прямоугольников

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

Линия. Для добавления в форму линий используется инструмент Line на панели инструментов «Form Controls». Чтобы нарисовать вертикальную или горизонтальную линию на экране, выберите данный инструмент, установите указатель мыши в то место, где должна начинаться линия, и переместите его до получения линии нужной длины. Настройка параметров линии осуществляется с помощью ее свойств.

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

Значения свойства BorderStyle Таблица 5.

Значение

Стиль линии

0-Transparent

Линия отсутствует (имеет цвет фона)

1-Solid (Default)

Тонкая линия

2-Dash

Штриховая

3-Dot

Пунктирная

4-Dash-Dot

Штрих-пунктир

5-Dash-Dot-Dot

Штрих-двойной пунктир

6-Inside Solid

Непрерывная линия

Свойство BoderWidth предназначено для задания толщины линии.

Свойство DrawMode совместно со свойствами цветов определяет, как будет отображаться линия на экране.

Контуры

Для добавления в форму различных прямоугольников и окружностей используется инструмент Shape на панели инструментов «Form Controls».

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

Свойство BackStyle позволяет задать, будет ли созданный объект прозрачным или нет. По умолчанию фон объекта имеет цвет, заданный в свойстве BackColor, а цвет линии объекта определяется свойством FillStyle . Но , если свойство BackStyle установить в значение «Transparent», то свойство BackColor игнорируется.

Свойство FillStyle задает узор заполнения объекта и может принимать значения, приведенные в табл. 6.

Значения свойства FillStyle Таблица 6.

Значение

Узор заполнения

0-Solid

Сплошное заполнение

1-Transparent (Default)

Нет заполнения

2-Horizontal Line

Горизонтальная штриховка

3-Vertical Line

Вертикальная штриховка

4-Upward Diagonal

Штриховка по диагонали слева направо

5-Downward Diagonal

Штриховка по диагонали справа налево

6-Cross

Горизонтально- вертикальная штриховка

7-Diagonal Cross

Штриховка по диагонали в обоих направлениях

Свойство FillColor задает цвет заполнения объекта.

Свойство BorderStyle предназначено для задания стиля обрамления объекта, а DrawMode совместно со свойствами цветов определяет, как будет отображаться линия на экране. Оба эти свойства имеют значения, аналогичные объекту типа Line. Свойство SpetialEffeсt позволяет придать контуру объемность.

Объект типа Shape может иметь форму квадрата, прямоугольника, круга или эллипса. Для придания формы, отличной от прямоугольника, служит свойство Curvature, которое может принимать целочисленное значение от 1 до 99.

Задания

  1. Создайте в конструкторе формы для всех таблиц в базе данных.

  2. Введите при помощи формы в каждую таблицу не менее 10 записей.

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

  4. Усовершенствуйте свой набор форм, добавив в них элементы. При работе руководствуйтесь следующими правилами:

  • заказчики все живут в странах СНГ;

  • кредит не может превышать 100000;

  • при вводе наименования товара на экране в виде ниспадающего списка должны появляться только те товары, которые имеются в справочнике.

  1. Добавьте на формы элементы оформления.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]