- •Практикум по изучению системы программирования
- •Знакомство с пользовательской средой Visual FoxPro 8.0
- •Запуск Visual FoxPro
- •Строка меню
- •Стандартная панель инструментов
- •Выход из Visual FoxPro
- •Практическая работа №1
- •Проектирование базы данных и создание таблиц
- •Создание проекта
- •Создание базы данных
- •Создание таблицы
- •Создание таблицы с помощью мастера
- •Практическая работа №2
- •Варианты заданий
- •Создание таблицы с использованием конструктора
- •3. Управление записями: добавление, редактирование, удаление и навигация
- •3.1. Заполнение таблицы
- •3.2. Модификация структуры таблицы
- •Практическая работа №3
- •Варианты заданий
- •4. Создание индексов
- •4.1. Понятие индекса
- •4.2. Создание индексов
- •Практическая работа №4.
- •Варианты заданий
- •5. Отношения между таблицами
- •5.1. Определение отношений между таблицами.
- •5.2. Определение условий целостности данных
- •Практическая работа №5.
- •6.Представления данных
- •6.1.Создание представления данных с помощью конструктора
- •6.1.1. Окно конструктора представления данных.
- •6.1.3. Упорядочивание данных в представлении.
- •6.1.4. Построение условий выбора записей.
- •5.2. Примеры создания представлений данных с помощью конструктора
- •Практическая работа №6
- •Варианты заданий
- •7. Использование форм для ввода и редактирования данных
- •Использование мастера для создания однотабличной формы.
- •Запуск формы на выполнение
- •7.3. Модификация формы в режиме конструктора
- •7.3.1 Окно конструктора форм
- •Панель инструментов Form Controls
- •7.3.2 Свойства и методы объектов формы
- •7.3.3 Размещение графического изображения в форме
- •7.3.4 Создание одиночных кнопок управления
- •Практическая работа №7.
- •8. Создание отчетов
- •8.1. Создание табличного отчета по данным одной таблицы с помощью мастера отчетов.
- •Создание табличного отчета по данным нескольких таблиц с помощью мастера отчетов
- •8. 3. Создание отчета с помощью конструктора отчетов
- •Практическая работа №8.
- •Создание меню приложения средствами Visual FoxPro
- •9.1 Создание строки меню
- •9.2 Работа с окном конструктора меню
- •9.3 Окно диалога Prompt Options
- •9.4 Создание подменю
- •Практическая работа №9.
- •10. Управление разработкой и создание приложения
- •Задание параметров проекта
- •Установка обязательной программы.
- •Построение проекта и создание приложения.
- •Практическая работа №10.
- •Контрольные задания по проектированию и созданию базы данных:
- •Вариант 2.
- •Вариант 3.
- •Вариант 4.
- •Вариант 5.
- •Вариант 6.
- •Вариант 7.
- •Вариант 8.
- •Вариант 9.
- •Вариант 10.
- •Вариант 11.
- •Вариант 12.
- •Вариант 13.
- •Вариант 14.
- •Литература:
4.2. Создание индексов
При создании таблицы с помощью мастера на одном из этапов был создан первичный ключ. Вообще, для создания, изменения или удаления индексов используют конструктор таблиц Table Designer, Чтобы просмотреть список уже созданных индексов нужно в окне конструктора таблиц Table Designer выбрать вкладку Indexes (рис 7) Следует обратить внимание на то, что
1) Каждый индекс имеет имя, на которое можно ссылаться при упорядочивании данных в соответствии с индексом. Имя индекса содержится в поле Name.
С левой стороны имени индекса располагается переключатель, определяющий порядок упорядочивания значений индексного выражения: если стрелка направлена вверх, то значения упорядочены по возрастанию, если вниз - значения упорядочены по убыванию Переключение происходит с помощью клавиши мыши или клавишей Spacebar.
Рис. 4.1 Вкладка Indexes конструктора таблицы
2) В столбце Туре на рис.4.1 индексы имеют разные значения: поле, которое было определено как первичный ключ, имеет тип Primary; дополнительные индексы - тип Regular. Вообще Visual FoxPro создает индексы следующих типов:
Типы индексов:
Тип индекса |
Описание |
Regular |
Хранятся значения индексного выражения для всех записей таблицы. Несколько записей, имеющих одинаковое значение индексного выражения, хранятся отдельно друг от друга и содержат ссылку на связанную с ней запись. |
Unique |
Хранятся только неповторяющиеся значения индексного выражения. Из записей, содержащих одинаковое значение индексного выражения, хранится только одно значение и ссылка на первую из записей с одинаковым значением индексного выражения. Таблица может иметь несколько уникальных индексов. |
Candidate |
Создается уникальный индекс, который не содержит полей с пустыми значениями. Индекс обладает всеми качествами первичного ключа и не является им только потому, что таблица не может содержать более одного первичного ключа. |
Primary |
Создается первичный ключ - уникальный индекс, который используется для связывания таблиц и определения условий целостности данных Поля не должны включать нулевые значения. Таблица может иметь только один первичный ключ. |
Таким образом, первичный ключ имеет тип Primary, а дополнительные индексы - тип Regular.
Чтобы установить или изменить тип индекса, необходимо установить курсор в столбце Tуре в нужной строке и из списка типов индексов выбрать нужный
3) В столбце Expression формируются индексные выражения. Индексные выражения могут вводиться непосредственно в поле ввода Expression или формироваться в окне диалога Expression Builder, которое раскрывается после нажатия кнопки, расположенной правее поля ввода (рис 8)
В окне диалога Expression Builder в поле Expression формируется индексное выражение
путем выбора функций обработки значений и полей таблицы из списков Functions и Fields.
Например, для создания индекса, который будет упорядочивать фамилии покупателей в алфавитном порядке по городам, необходимо в окне диалога Expression Builder установить курсор в поле Fields в строке, содержащей имя нужного поля, в нашем случае city, и дважды нажать кнопку мыши в поле Expression, в результате появится имя выбранного поля Аналогично выбрать поле firstname Затем из списка математических функций выбрать «+» и, нажав дважды на кнопку мыши, установить его между индексными полями city и firstname (рис.4.2). После того, как индексное выражение сформировано, необходимо нажать кнопку ОК.
Рис. 4.2 Окно диалога Expression Builder
В поле Functions представлены функции обработки значений, используемые в Visual FoxPro. Функции разделены на группы в соответствии с типом значений, для обработки которых они используются. В нижеследующей таблице представлены наиболее часто используемые функции обработки значений:
Функции |
Назначение |
String (символьные) |
|
LEN(expC) |
Определяет длину строки |
SUBSTR(Строка, Позиция, Количество символов) |
Вырезает из Строки с определенной Позиции указанное Количество символов |
АТ(Подстрока, Строка) |
Определяет вхождение Подстроки в Строку. Результат -номер самого левого символа части строки, с которой найдено совпадение заданной подстроки. |
UPPER(expC) |
Преобразует строчные буквы Строки в прописные |
LOWER(expC) |
Преобразует прописные буквы Строки в строчные |
SPACE(expN) |
Преобразует символьное значение из заданного Количества пробелов |
STR(expN,,) |
Преобразует вещественное Число, находящееся в первой позиции аргумента, к символьному виду . Во второй позиции аргумента отражается длина заданного Числа, на третьей - количество знаков после запятой. |
CHR(expN) |
Отражает символ, которому в коде ASCII соответствует значение Числового аргумента |
Logical (логические) |
|
() |
Служит для отделения функции от аргумента |
< <= |
«меньше» и «меньше или равно» |
>= |
«больше» и «больше или равно» |
= <> |
«равно»и«не равно» |
Функции |
Назначение |
.Т. |
Логическая истина |
.F. |
Логическая ложь |
NOT |
Логическое отрицание |
AND |
Логическое «И» |
OR |
Логическое «ИЛИ» |
Math (математические) |
|
^ |
Возведение в степень |
* / |
Умножение и деление |
+ - |
Сложение и вычитание |
ABS(expN) |
Вычисление абсолютного значения Числового аргумента |
ACOS(expN) |
Вычисление arccos Числового аргумента |
ASIN(expN) |
Вычисление arcsin Числового аргумента |
ATAN(expN) |
Вычисление arctg Числового аргумента |
COS(expN) |
Вычисление cos Числового аргумента |
SIN(expN) |
Вычисление sin Числового аргумента |
TAN(expN) |
Вычисление tg Числового аргумента |
INT(expN) |
Выделение целой части вещественного значения Числового аргумента |
EXP(expN) |
Возведение основания натурального логарифма в степень Числового аргумента |
LOG(expN) |
Вычисление натурального логарифма от Числового аргумента |
LOG10(expN) |
Вычисление десятичного логарифма от Числового аргумента |
SQRT(expN) |
Вычисление корня квадратного из Числового аргумента. |
ROUND(expN, К) |
Округление дробной части вещественного значения аргумента, который находится в первой позиции, до К знаков после запятой |
MOD(X,Y) |
Вычисление остатка от деления числа X на число Y. |
MIN(X,Y) |
Определение минимального значения из двух чисел X и Y |
MAX(X,Y) |
Определение максимального значения из двух чисел X и Y |
VAL(expC) |
Преобразует символьное значение аргумента в числовое. |
Date (даты) |
|
COD(expC) |
Преобразует символьное значение аргумента в значение типа Дата. |
DATE() |
Выводит значение даты, которое было введено в компьютер при загрузке ОС |
CDOW(expD) |
Выводит название дня недели для заданной Даты. |
DOW(expD) |
Формирует числовое значение номера дня недели для заданной Даты |
DAY(expD) |
Выделяет числовое значение дня месяца из заданной Даты |
CMONTH(expD) |
Формирует символьное значение названия месяца для заданной Даты. |
MONTH(expD) |
Определяет числовое значение номера месяца для заданной Даты |
YEAR (expD) |
Выделяет из заданной Даты два последних символа года и выводит числовое значение года в формате 20ГГ |
DTOC(expD) |
Преобразует заданное значение типа Дата в символьное представление |
4) Для завершения создания индекса необходимо нажать на кнопку ОК.