Информационные системы

Информационные системы

Электронный учебник

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

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

 

Размещение флажка.

Для индикации состояния, которое может иметь только одно из двух допустимых значений , используются флажки (объекты типа 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.     Запустите форму на выполнение. Теперь для установки признака постоянного покупателя достаточно установить флажок (рис.1).

 

Рис.1. Использование объекта типа 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. На рис.2 показано, что при этом объект выделяется прямоугольниками.

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

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

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

 

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

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

 

 

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

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

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

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

·        Массив

·        Меню

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

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

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

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

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

Значение

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

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 используют свойства и методы, размещенные в табл. 2.

 

 

 

Таблица 2. Свойства и методы объектов типа 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 , задав в поле ввода значения свойства через запятую список стран (рис. 4).

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

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

 

 

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

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

Рассмотрим еще один тип объектов, предназначенных для отображения на экране элементов списка – объект типа 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 необходимо нажать кнопку раскрытия списка и выбирать из него нужное значение. Это значение из списка будет заноситься в поле таблицы (рис.6).

 

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

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

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

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

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

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

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

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

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

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

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

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

 

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

 

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

 

 

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

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

Линия.

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

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

 

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

Значение

Стиль линии

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 задает узор заполнения объекта и может принимать значения, приведенные в табл. 4.

 

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

Значение

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

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. Усовершенствуйте свой набор форм, добавив в них вышеперечисленные элементы. При работе руководствуйтесь следующими правилами:

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

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

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

  1. Добавьте на формы элементы оформления.
  2. Отметьте различия между старым и новым видами форм.

Пример выполнения работы